Gidhub BE Developer

DB에서 Key란?

2017-10-11
goodGid
DB

Concept

  • Key란 데이터베이스에서 조건에 맞는 튜플을 찾거나 검색 시 기준이 되는 속성이다.

Key

Super Key

  • 릴레이션을 구성하는 모든 Tuple에 대해

    유일성(Unique)은 만족하지만 최소성(Minimality)은 만족하지 못한다.

  • 슈퍼키는 최소성과 관계없이 튜플을 유일하게 구분할 수 있으면 된다.

<학생> 릴레이션에서는
학번, 주민등록번호, (학번, 주민등록번호), (학번, 주민등록번호, 성명)등이 [슈퍼키]이다.

(학번, 주민등록번호)를 사용한 슈퍼키는 다른 튜플들과 구분할 수 있는 [유일성]은 만족하지만, 
학번이나 주민등록번호 1개 만으로도 다른 튜플들을 구분할 수 있으므로 [최소성]은 만족하지 못한다.

유일성

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

최소성

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

Candidate Key

  • 후보키는 유일성최소성을 모두 만족한다.

  • 슈퍼키 중에서 유일성최소성을 만족시키는 것

  • 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

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

Primary Key

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

  • 기본키는 유일성최소성을 갖는다.

  • 후보키의 성질을 갖는다.

<학생> 릴레이션에서는 후보키인 학번이나 주민등록번호 중에서 선택하여 [기본키]로 설정할 수 있다.
<수강> 릴레이션에서는 (학번, 과목명)을 조합해서 [기본키]로 설정할 수 있다.

Alternate Key

  • 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미
<학생> 릴레이션에서 학번이 기본키로 설정되면 주민등록번호는 [대체키]가 된다.

Foreign Key

  • 다른 릴레이션의 기본키를 참조하는 속성
<수강> 릴레이션의 학번은 <학생> 릴레이션의 기본키인 학번을 참조하고 있으므로 
<수강> 릴레이션에서 학번은 [외래키]가 된다.

Recommend

Index