CS/데이터베이스

데이터베이스 기본키, 후보키, 대체키, 슈퍼키, 외래키란?

딩코딩 2023. 8. 15. 13:53

학생 릴레이션(테이블)

학번 (primary key) 이름  학과  주민등록번호 성별 전화번호
20230001 A학과 000000-1231230 1
20230002 A학과 000000-1931231 2
20230003 B학과 000000-2731232 3
20230004 D학과 000000-2631233 4
20230005 C학과 000000-2531234 5
20230006 A학과 000000-1431235 6

 

기본키 (primary key) 

  •  릴레이션에서 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합입니다. 예를 들어, 학생 릴레이션에서 학번이 기본키가 될 수 있습니다. 기본키는 유일성과 최소성을 만족해야 합니다. 즉, 중복되거나 불필요한 속성이 없어야 합니다.

 

후보키 (candidate key)

  • 기본키(primary key)로 사용할 수 있는 속성들의 부분집합입니다. 예를 들어, 학생 릴레이션에서 주민등록번호나 전화번호도 후보키가 될 수 있습니다. 후보키도 유일성과 최소성을 만족해야 합니다

 

대체키 (alternate key)

  • 후보키(candidate key) 중에서 기본키로 선택되지 않은 키입니다. 예를 들어, 학생 릴레이션에서 학번을 기본키로 정하면 주민등록번호나 전화번호가 대체키가 됩니다.

 

슈퍼키 (super key)

  • 튜플을 유일하게 식별할 수 있는 속성들의 집합입니다. 예를 들어, 학생 릴레이션에서 학번+주민등록번호나 전화번호+학번+주민등록번호가 슈퍼키가 될 수 있습니다. 슈퍼키는 유일성은 만족하지만 최소성은 만족하지 않습니다. 즉, 불필요한 속성이 포함될 수 있습니다.

 

외래키 (foreign key)

  • 다른 릴레이션의 기본키를 참조하는 속성입니다. 예를 들어, 수강 릴레이션에서 학번은 외래키가 됩니다.

수강 릴레이션(테이블)

ID (primery key) 학번 (foreign key) 과목
1 20230001 수학
2 20230004 국어