본문 바로가기

이론/DB

[DB] 8-2 ER to RDB - (3) & indexing

- intersection table

 

- association table  

 

multivalued : 그것을 새로운 weak entity로 뽑아서 id dependent하게 만든다. 

 

solid line , id dependent 한거다. 추가적인 속성 section number을 붙여서 section을 만들었다.

 

이런경우 테이블을 만들게 되면 그대로 옮기고 다만 className을 외래키 속성으로 추가하면된다. 

 

만약 non id-dependent이면, 추가적인 외래키가 더 들어가줘야한다. 

 

오늘은 recursive한 relationship을 볼거다. 

객실과 기차에서 객실 하나를 boxcar라고 한다. 내 앞에 있는 것이 어떤것인가 boxcar ahead이다. 

 

1:1관계이다.

 

1:1이기 때문에, 자기자신으로 가는 strong relationship이기때문에 자기 자신안에 외래키를 하나 더 넣어준다. 

 

BoxCar sql문 

create table BoxCar (boxcar_id int primary key, capacity int, type varchar(10) not null, enter_date datetime default now(), boxcar_ahead int, foreign key boxcar_ahead references boxcar(boxcar_id)); 

 

boxcar_ahead : 내 앞에 있는 boxcar의 id가 무엇인가?에 대한 int값, 외래키 지정도 해줘야한다. 

 

**시험문제 create table 만드는 문제 , E-R 다이어그램 그리는 문제 나온다 ** 

 

create table Employee (emp_no int primary key, emp_name varchar(50) not null, salary)int, hire_date datetime, enter_date datetime default now(), manager_id int, foreign key manager_id references Employee(emp_no));

 

intersection table이 필요하다. 양쪽의 테이블로부터 부모의 기본키를 가져다가 기본키쌍을 만든다. 

 

create table Part(part_id int primary key, part_name varchar(30) not null, enter_date datetime default now());

 

 

part부터 두개의 기본키를 가져다가 써야된다. 포함을 하는 

 

*기말고사 : recursive하게 create 하는 것을 낼것이다. 

 

* sql , e-r 다이어그램, create table, 인덱싱나옴 


1. random access 
2. sequential access : 정해진 순서로만 접근가능

DBMS 의 목적 : 하드의 접근을 최소화한다. 접근하더라도 random access를 피하고 sequential 하게 접근한다. 

버퍼메모리를 통해 cache를 사용한다.

하드디스크 접근을 최소화하는 것이 DBMS성능을 좌우한다.