키(Key)
- 데이터베이스에서 키란 단어가 있는데.. 도대체 키가 뭘까?🔑
- 열쇠처럼 조건에 맞는 튜플(행)을 찾거나 정렬할 때 다른 튜플과 구별할 수 있는 속성또는 속성의 집합
키의 특성
- 슈퍼키(super key), 후보키(candidate key), 기본키(primary key), 대체키(alternate key), 외래키(foreign key)가 있다.
- 유일성과 최소성을 만족한다.
- 유일성: 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가짐
- 최소성: 꼭 필요한 최소한의 속성으로만 키를 구성
키의 종류
- 슈퍼키: 튜플을 유일하게 식별하는 하나의 속성 혹은 속성의 집합 (유일성 만족, {학번+이름})
- 후보키: 튜플을 유일하게 식별하는 속성의 최소 집합
- 모든 릴레이션은 반드시 1개 이상의 후보키를 가져야함
- 기본키: 여러 후보키 중 하나를 선정해 대표로 삼는 키
- NULL값을 가질 수 없다!
- 릴레이션 스키마에서 _ (밑줄)을 그어 표현
- 동일한 값이 중복되어 저장될 수 없음
- 대체키: 후보키가 2개이상 일때 기본키를 제외한 나머지 키
- 외래키: 다른 릴레이션의 기본키를 참조하는 속성
- 외래키와 다른 릴레이션의 기본키의 도메인은 동일해야함
- NULL값과 중복값 허용
- 자기 자신 참조 가능
- 참조되는 기본키가 변경되면 참조하는 외래키도 변경