본문 바로가기

Coding Note

[MySQL] relational database. Keys


candidate key (후보키) : 어느 relation 안에 모든 tuple들에 대해서 unique하고 minimal한 attribute 들
               -uniqueness : 유일하게 구분지을 수 있는 성질
               -minimality : 유일성을 파괴하지 않고, 기본키에 속한 속성의 일부를 제거할 수 없는 성질

primary key (주 키) : 어느 relation 에서 모든 tuple들 중 특정 tuple을 구분할 수 있는 attribute. (후보키 중 하나)

alternate key (대체키) : primary key를 대신할 수 있는 unique하고 minimal한 키 (주 키가 되지 못한 후보키들)

super key (슈퍼키) : uniqueness만 성립하고 minimality는 만족하지 않는, 여러 attribute를 조합하여 구성한 unique한 키.

foreign key (외래키) : 다른 relation R1의 attribute가 relation R2의 primary key가 된다고 할 때,
                               R1의 attribute를 R1의 foreign key라고 함




mysql 에서 primary key와 foreign key 지정하기(만들기)

ALTER TABLE tb_name ADD [COLUMN col_name col_type [col_opt]],
              PRIMARY KEY(col_name)

ALTER TABLE tb_name ADD [COLUMN col_name col_type col_opt], 
             INDEX idx_name( col_name),
             FOREIGN KEY(col_name) REFERENCES ref_tb_name(ref_col_name),
             [[ON DELETE | ON UPDATE]  [CASCADE | SET NULL | RESTRICT | SET DEFAULT]]


foreign key 해두면, anomy일어날일 없어서 좋다.
그리고 inner join으로 한번에 두 relation으로부터 데이터를 얻어오기에도, 관계가 명확해서 실수가 적어진다.

'Coding Note' 카테고리의 다른 글

[CUDA] kernel 호출방법  (0) 2012.03.14
[CUDA] hello cuda  (0) 2012.03.10
[CUDA] syntax highlighting at visual studio 2010  (1) 2012.03.08
[CUDA] visual studio 2010 configuration at x64  (0) 2012.03.08
[WPF] User Dependency Property  (0) 2012.01.21