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 |