공부/데이터베이스

[데이터베이스] key

ghhong 2021. 10. 21. 14:44

1.    KEY

키는 db에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플과 구별할 수 있는 기준이 되는 속성이다.

1.     후보키

ㅇ 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 속성들의 부분집합

ㅇ 모든 릴레이션을 반드시 하나 이상의 후보키를 가져야한다.

ㅇ 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족해야한다.

2.    기본키

ㅇ 후보키 중에서 선택한 주키(primary key)

ㅇ 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성

null값을 가질 수 없다.( not null )

ㅇ 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다. ( 중복 x )

3.    대체키

ㅇ 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키

ㅇ 후보키 기본키

4.    슈퍼키

ㅇ 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

ㅇ 유일성은 만족하지만 최소성은 만족하지 않는다.

ㅇ 학번, 주민번호, 성명을 복합키로 설정했을 때 다른 튜플과 구별이 가능하지만(유일성), 성명을 단독으로 사용하면 구별할 수 없기 때문에 최소성은 만족하지 않는다.

5.    외래키

ㅇ 관계를 맺고있는 릴레이션 R1,R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1의 릴레이션 속성

ㅇ 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 사용된다.

ㅇ 외래키로 지정되면 참조 테이블의 기본키에 없는 값을 입력할 수 없다.(참조 무결성)

ㅇ 두 가지 기본 옵션이 적용된다.

   -ON DELETE RESTRICT : 삭제시 제약

   -ON UPDATE RESTRICT : 갱신시 제약

CASCADE 적용하면 부모테이블에서 삭제/갱신시 자식테이블에도 적용된다.

ON DELETE SET NULL -> 삭제하면 NULL로 변경