키(KEY)
키는 DB에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다.
무엇인가를 유일하게 식별한다는 의미가 있으며, 키의 종류로는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다.
[ 유일성 ]
- 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질
- 여러 개의 튜플이 존재할 때 각각의 튜플을 서로 구분할 수 있어야한다. 즉, 각각의 튜플은 유일해야 한다.
[ 최소성 ]
- 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질
- 키를 구성하는 속성들이 각 튜플을 구분하는데 곡 필요한 속성들로 구성되어 있는가?
슈퍼키 (Super Key)
[유일성 O, 최소성 X]
테이블에서 각 행을 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합이다.
슈퍼키는 유일성의 특성을 만족하며, 키 값이 같은 튜플은 존재할 수 없다.
어떤 속성끼리 묶던 중복값이 안 나오고 서로 구별이 가능하면 슈퍼키가 될 수 있다.
후보키 (Candidate Key)
[유일성 O, 최소성 O]
후보키는 슈퍼키 중 최소성을 만족하는, 즉 유일성과 최소성을 모두 만족하는 속성들의 집합이다.
후보키는 기본키가 될 수 있는 후보들을 의미한다.
기본키 (Primary Key)
[ 기본키 속성 : NULL 값을 절대 가질 수 없음 + 중복된 값 가질 수 없음 ]
위에서 각 튜플을 구별할 수 있으며, 유일성과 최소성을 모두 만족하는 후보키가 구해졌다.
후보키는 한 테이블 내에서 여러 개 존재할 수 있는데, 여기서 기본 키는 여러 후보키 중 오직 1개만 지정할 수 있다.
모든 후보키가 기본키가 되는 것은 아니다.
다음의 기준을 통과해야한다.
- NULL 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적절하다.
- 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적절하다.
- 단순한 후보키를 기본키로 선택한다.
대체키 (Alternate Key)
후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미한다.
대체키는 기본키를 대신할 수 있는 자격은 있지만, 기본키의 기준에 부합하지 않아 선택받지 못한 키들을 의미한다.
대체키는 '보조키'라는 이름으로도 불린다.
외래키 (Foreign Key)
[다른 릴레이션의 기본키 참조]
테이블이 다른 테이블의 데이터를 참조하여 테이블 간의 관계를 연결하는 것이다.
- 참조 될 A 테이블이 먼저 만들어지고 참조하는 B테이블에 값이 입력
- 참조될(A) 열의 값은 참조될(A) 테이블에서 기본키(Primary Key)로 설정
- 외래키는 참조되는 테이블의 기본키와 동일한 키 속성을 가짐
- 참조되는 부모테이블이 먼저 생성된 뒤, 데이터를 넣고, 참조하는 자식 테이블이 그 다음에 생김
- 부모 테이블 먼저 삭제 될 수 없다. 왜냐하면 부모 테이블을 참조하는데 부모 테이블이 삭제되면 자식테이블은 참조하는 것이 없어지기 때문에 외래키 오류가 발생한다.
- 외래키 관계에서는 자식테이블을 먼저 삭제해주어야한다.
참고
| https://jerryjerryjerry.tistory.com/49
| https://ggop-n.tistory.com/78
'Database' 카테고리의 다른 글
[DB] 정규화 & 비정규화 (0) | 2022.10.07 |
---|---|
[DB] Index & B-Tree (2) | 2022.10.05 |
[DB] SQL vs NoSQL (4) | 2022.10.03 |
[DB] SQL Injection (2) | 2022.09.30 |
[DB] 조인(JOIN) 정리 (0) | 2022.09.28 |