되자!백엔드개발자

[DB기초] 관계형 데이터베이스 용어 - 키(key) 본문

개발공부/DB기초

[DB기초] 관계형 데이터베이스 용어 - 키(key)

HyunJng 2022. 9. 9. 00:40

키(key)


특정 튜플을 식별할 떄 사용하는 속성(attribute) 혹은 속성의 집합을 의미한다.

반드시 중복되지않고 다른 튜플과 구별할 수 있어야한다.

* 튜플 : 릴레이션 각가의 행(row)

 

<키의 종류>

먼저 알아두기
유일성 : 하나의 키 값으로 튜플을 유일하게 식별할 수 있는 성질 
최소성 : 키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질.

1.  슈퍼키 : 유일성 O, 최소성 X

튜플을 유일하게 식별할 수 있는 속성 혹은 속성의 집합이다. 여러개 존재할 수 있다. 그렇기에 '유일성'은 만족하지만 '최소성'은 만족하지 않는다.

위의 고객 릴레이션을 예를 들어보자. 속성 중 '고객번호' 와 '주민번호'는 절대 중복될 수 없는 속성이다.그렇기에 이 둘을 포함한 모든 속성의 집합이 슈퍼키가 된다.

ex) {주민번호}, {고객번호}, {주민번호, 주소}, {고객번호, 이름, 고객번호}, ...

 

2. 후보키 : 유일성 O, 최소성 O

슈퍼키 중에 최소성까지 만족하는 집합을 의미한다. 

ex) {주민번호}, {고객번호}

 

3. 기본키 : 후보키 중 선택한 하나의 키

여러 후보키 중 택한 하나를 선정하여 대표로 삼은 키이다.

기본키 선정 시 고려사항

  • Null 값은 허용하지 않는다.
  • 키 값은 변동이 일어나서는 안된다.
  • 최대한 적은 수의 속성을 가진 것이여야한다.

4. 대체키 : 후보키 중 선택받지 못한 키

5. 대리키 : 가상의 속성으로 만든 기본키

기본키가 보안을 요하거나, 여러 개의 속성으로 구성되어 복잡하는 등, 마땅한 기본키가 없을 때는 일렬번호 같은 가상의 속성을 만들어 기본키로 삼는 경우가 있다. 이러한 키를 대리키(surrogate key) 또는 인조키( artificial key)라고 한다. 요즘은 대리키를 기본키로 쓰는 경우가 많다고 한다.

6. 외래키 : 다른 릴레이션의 기본키를 참조하는 속성

다른 릴레이션의 기본키를 참조하여 관계 데이터 모델의 특징인 릴레이션간의 관계(relationship)을 표현한다.

외래키의 특징

  • 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션 도메인(domain)은 동일해야한다.
  • 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경된다.
  • Null 값과 중복 값이 허용된다.
  • 자기 자신의 기본키를 참조하는 외래키도 가능하다.
  • 외래키가 기본키의 일부가 될 수 있다.