본문 바로가기

CS

[db] 키의 종류 및 구분 -수퍼키, 후보키, 기본키, 대체키, 외래키

키(Key)란?


  • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 정렬할 때, 기준이 되는 속성(attribute)을 말함
  • 즉 무언가를 식별하는 고유한 식별자(identifier) 역할

키의 종류 및 구분


수퍼키(super key)란?

  • 키 만으로 특정한 tuple을 보장한다면 K를 R(attribute의 집합, 릴레이션)의 superkey라고 부른다.
  • 즉 특정가능하면 슈퍼키라 할 수 있다.
  • 따라서 유일성(Unique) 만족, 최소성(Minimality)은 충족 못 함

후보키(Candidate Key)란?

  • 수퍼키 중 최소성(Minimality)을 만족시키는 key
  • 즉 minial super key = candidate key

기본키(Primary key)란?

  • 수퍼키의 특징을 지님(유일성, 최소성, 튜플을 식별)
  • 중복값이 없으며 NULL 값을 가질 수 없음
  • 각 테이블의 프라이머리 키는 경우에 따라 다르다.(후보키들 중에서 하나를 선택)

대체키(Alternate Key)란?

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

외래키(Foreign Key)란?

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 릴레이션 간의 관계를 표현
  • 예를 들어 과목 테이블의 primary key를 이용해 다른 테이블을 만들 때 이 attribute를 foreign key라 부름