[데이터베이스] 데이터베이스 키(key)의 개념 및 종류

2022. 8. 12. 23:48CS/데이터베이스

  • 데이터베이스에서 키(key)는 조건에 만족하는 튜플을 찾거나, 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성이다.
튜플(Tuple) : 릴레이션을 구성하는 각각의 행, 속성의 모임으로 구성된다.
  • 키의 종류로는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다.

 

  • 키를 알아보기에 앞서, 최소성과 유일성의 개념을 먼저 짚을 필요가 있다.

▷ 유일성

  • 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질을 뜻한다.
  • 여러 개의 튜플이 존재할 때 서로 구분할 수 있는 속성이 존재해야 함.

▷ 최소성

  • 키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질을 말한다.
  • 만약, (주민번호, 나이) 가 키로 지정이 되어 있다면 이 키로 튜플(개개인의 정보)을 구별할 수 있는 것은 맞다. 하지만, 주민번호만 가지고도 튜플을 구별할 수 있기 때문에 (주민번호, 나이)로 지정된 키는 최소성을 만족하지 않는다고 할 수 있고, 여기서 나이를 뺀 주민번호로 지정된 키는 최소성을 만족한다고 할 수 있다.

 

① 슈퍼키 (Super Key) : 유일성 O, 최소성 X

  • 슈퍼키는 한 릴레이션 내에서 유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.
  • 만약, 고객의 아이디의 경우 아이디가 같은 고객은 없기 때문에 슈퍼키가 될 수 없지만, (나이, 직업, 등급) 의 경우 나이, 직업, 등급이 같은 고객은 얼마든지 존재할 수 있기 때문에 슈퍼키가 될 수 없다.

② 후보키 (Candidate Key) : 유일성 O,  최소성 O

  • 슈퍼키 중 최소성을 만족하는 속성들의 집합이다.
  • 하나의 릴레이션 내에서 중복된 튜플이 존재할 수 없으므로 모든 릴레이션은 반드시 하나 이상의 후보키가 존재한다.
  • 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족한다.

③ 기본키 (Primary Key) : 후보키 중 선택받은 키

  • 후보키 중 선택한 주키(Main Key) → 최소성과 유일성 만족
  • Null 값을 가질 수 없다. (개체 무결성의 첫 번째 조건)
  • 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다. (개체 무결성의 두 번째 조건)
  • 여러 후보키들 중 기본키를 선택하는 데 있어 기준이 존재한다.
  1. 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적절
  2. 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적절
  3. 단순한 후보키를 기본키로 선택

④ 대체키 (Alternative Key) : 후보키 중 선택받지 못한 키

  • 기본키로 선택되지 못한 후보키들이다.
  • 기본키를 대신할 수 있지만 3.1~3.3의 이유로 기본키로 선택되지 못한 키들이다.

⑤ 외래키 (Foreign Key) : 다른 릴레이션의 기본키를 참조

  • 관계(Relation)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성
  • 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구로써 사용된다.
  • 외래키로 지정되면 참조 테이블의 기본 키에 없는 값은 입력할 수 없다. (참조 무결성 조건)
  • 외래키의 존재 이유는 데이터 무결성 때문이다.
  • 고객 릴레이션의 고객 아이디가 변경되었다고 가정했을 때, 주문 릴레이션의 주문 고객의 아이디는 변경되지 않았다면 두 값은 서로 같은 값이어야 하는데 다른 값이 되어버리고, 이 경우 데이터 무결성이 깨졌다고 표현한다.
  • 이를 예방하기 위해 외래키가 존재한다.

 

 

[출처]

[DB] 키의 개념과 종류 :: 꼽행착오 (tistory.com)