기본키 Primary key

헬리코박도·2022년 4월 8일
0

기본키 Primary key

  • 후보키 중 하나를 선정하여 대표로 삼는 키
  • 후보키가 하나라면 후보키이자 기본키이며, 여러 개라면 릴레이션의 특성을 고려하여 하나 선택
  • 릴레이션 스키마를 표현할 때 기본키는 밑줄을 그어 표시함 ex) 릴레이션(속성1, 속성2, ..)

기본키 선정 시 고려 사항

  • 튜플 식별 가능한 고유한 값
  • NULL 값이 없어야 함
  • 키 값의 변동이 없어야 함
  • 최대한 적은 수의 속성을 가져야 함
  • 향후 키를 사용하는데 문제가 없어야 함

예시

릴레이션: 학생(학번, 이름, 주민번호, 주소, 휴대전화번호)

학번: 학생 별로 중복 없이 고유한 값을 가지므로 튜플 식별 가능
이름: 동명이인이 있을 수 있으므로 식별 불가
주민번호: 중복 없이 고유한 값을 가지므로 식별 가능
주소: 동거인의 경우 같은 주소를 가짐
휴대전화번호: 한 사람이 여러 개의 번호를 가지거나 핸드폰이 없을 수 있음

모든 학번과 주민번호를 포함한 속성들의 집합들이 슈퍼키가 됨
1개: (학번), (주민번호)
2개: (학번, 주민번호), (학번, 이름), ...
...

이 중 최소성을 만족하는 것은 한 개의 속성 집합인 (학번)과 (주민번호)임
따라서 학생 릴레이션의 후보키는 (학번)과 (주민번호)

후보키 중 주민번호보다는 학번이 학생 릴레이션의 특성을 고려했을 때 기본키로 적합함

profile
Data Engineer

0개의 댓글