키 (Key)
키(Key)란?
데이터베이스에서 키 (Key) 는 조건에 만족하는 튜플을 찾거나, 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성
* 튜플이란, 테이블의 행을 의미
유일성과 최소성
유일성 : 하나의 키값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
→ 문자 그대로 유일해야 한다는 특징
최소성 : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함
→ 키를 구성하는 속성의 갯수가 최소여야 한다는 특징
키의 종류
* 기본키
- 특정 튜플을 유일하게 구별할 수 있는 속성
- 후보키 중에서도 특별히 선정된 주키(Main Key)
- 유일성 O, 최소성 O
- 중복값 가질 수 없음 (기본키 주요 특징)
- NULL값 가질 수 없음 (기본키 주요 특징)
* 대체키
- 기본키를 제외한 나머지 후보키
- 보조키라고도 함
* 후보키
- 테이블을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 유일성 O, 최소성 O
* 슈퍼키
- 유일성의 특성을 만족하는 속성 또는 속성들의 집합
- 최소성은 만족 X
- EX : 환자ID는 고유하기 때문에 슈퍼키가 될 수 있음. 나이, 직업 등은 중복된 값이 존재하기 때문에 슈퍼키가 될 수 없음.
→ (환자ID, 나이, 직업)은 환자ID가 각 튜플을 구별할 수 있기에 슈퍼키가 될 수 있음. 이때 유일성은 만족하지만, 최소성은 만족하지 못함.
* 외래키
- 다른 릴레이션(테이블)의 기본키를 그대로 참조하는 속성의 집합
※ 외래키가 필요한 이유?
for 데이터 무결성
→ 데이터 무결성이란, 데이터가 항상 정확한 값을 유지하려는 성질을 의미한다.
예를 들어 환자 테이블의 환자ID가 변경이 되었는데, 진단기록 테이블의 환자ID가 변경이 되지 않는다면 두 값은 서로 같은 값이어야 하는데 다른 값이 되어버린다. 이를 무결성이 깨졌다고 표현한다.