Key: tuple 을 찾거나 순서대로 정렬할 때, 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성

키(Key)의

Key 의 속성 두 가지

유일성 (Unique)

  • 하나의 키 값으로 각 튜플을 유일하게 식별할 수 있어야 하는 것

최소성 (Minimality)

  • 꼭 필요한 최소의 속성으로 구성되어야 하는것
  • 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없어야 함

img

B) 키 종류

C) 슈퍼키 (Super Key)

튜플들에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키

  • 예) <학생> 릴레이션에서는 (학번), (주민등록번호), (학번, 주민등록번호), (학번, 주민등록번호, 이름) 등이 슈퍼키이다.

D) 후보키

슈퍼키 중에서 유일성과 최소성을 모두 만족하는 키

  • 예 1) <학생> 릴레이션에서 학번이나 주민등록번호는 유일성과 최소성을 만족하므로 후보키가 된다.
  • 예 2) <수강> 릴레이션에서는 (학번, 과목명) 으로 조합해야 유일성과 최소성을 만족하기 때문에 (학번, 과목명) 으로 조합된 것이 후보키가 된다.

E) 기본키

후보키 중에서 특별히 선정된 키

  • 개체 무결성을 만족한다
    • 릴레이션에서 기본키를 구성하는 속성은 NULL 값이나 중복값을 가질 수 없다는 규정
  • 예 1) <학생> 릴레이션에서 후보키인 학번이나 주민등록번호 중에서 선택하여 기본키로 설정할 수 있고, <수강> 릴레이션에서는 (학번, 과목명) 을 조합해서 기본키로 설정할 수 있다.
  • 예 2) 학번이 <학생> 릴레이션의 기본키로 정의되면 이미 입력된 학번 ‘190001’은 다른 튜플의 학번 속성 값으로 입력할 수 없다.

F) 대체키 (Alternate Key)

후보키 중 기본키로 선택되지 못한 키

  • 예) <학생> 릴레이션에서 학번이 기본키로 설정되면 주민등록번호는 대체키가 된다.

G) 외래키 (Foreign Key)

다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다.

  • 한 릴레이션에 속한 속성 A 와 참조 릴레이션의 기본키인 B 가 동일한 도메인 상에서 정의 되었을 때, 속성 A 를 외래키라고 한다.
  • 참조 릴레이션의 기본키와 동일한 키 속성을 가진다.
  • 예 1) <수강> 릴레이션의 학번은 <학생> 릴레이션의 기본키인 학번을 참조하고 있으므로 <수강> 릴레이션에서 학번은 외래키가 된다.
  • 예 2) <수강> 릴레이션의 학번 속성에는 <학생> 릴레이션의 학번 속성에 없는 값을 입력할 수 없다.
  • 예 3) <학생> 릴레이션과 <수강> 릴레이션은 학번을 기준으로 관계가 설정된 것이다.

H) Reference

https://moonibot.tistory.com/61