[Database] Key의 종류와 특징

·2021년 8월 2일
0

Database

목록 보기
1/3

Key란?

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)이다.


1. Candidate Key (후보키)

튜플을 유일하게 식별할 수 있는 속성들의 부분집합

  • 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야한다.

  • 2가지 조건을 만족해야함 : 유일성, 최소성

  • ex <학생> 릴레이션에서 '학번'이나 '주민번호'는 다른 레코드를 유일하게 구별할 수 있는 기본키로 사용할 수 있으므로 후보키가 될 수 있다. 즉 기본키가 될 수 있는 키들을 후보키라고 한다.


2. Primary Key (기본키)

후보키 중에서 선택한 주키(Main Key)

  • Null 값을 가질 수 없다.
  • 동일한 값이 중복될 수 없다.
  • ex <학생> 릴레이션에서 '학번'을 기본키로 정의되면 이미 입력된 '1001'은 다른 튜플의 '학번' 속성 값으로 입력할 수 없다.

3. Alternate Key (대체키)

후보키 중 기본키를 제외한 나머지 키 = 보조키

  • ex <학생> 릴레이션에서 '학번'을 기본키로 정의하면 '주민번호'는 대체키가 된다.

4. Super Key (슈퍼키)

유일성은 만족하지만, 최소성은 만족하지 못하는 키

  • ex <학생> 릴레이션에서는 학번, 주민번호, 학번+주민번호, 학번+주민번호+성명 등으로 슈퍼키를 구성할 수 있다. 또한 여기서 최소성을 만족시키지 못한다는 말은 학번+주민번호+성명 가 슈퍼키인 경우 3개의 속성 조합을 통해 다른 튜플과 구별이 가능하지만, 성명 단독적으로는 유일성을 만족시키지 못한다. 즉, 뭉쳤을 경우 유일성이 생기고, 흩어지면 몇몇 속성들은 유일성있는 키로 사용할 수 없는데, 이것을 최소성을 만족하지 못한다고 한다.

5. Foreign Key (외래키)

다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합

  • 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구로 사용된다.
  • 외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없다. (참조 무결성 조건)



출처

https://limkydev.tistory.com/108
https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Database/%5BDB%5D%20Key.md

profile
당근먹고 자라나는 개발자

0개의 댓글