검수요청.png검수요청.png

후보키

위키원
Asadal (토론 | 기여)님의 2021년 11월 19일 (금) 09:40 판 (개요)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

후보키(Candidate Key)는 유일성과 최소성을 만족하는 속성 또는 속성들의 집합으로 튜플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어지므로 수퍼키 중에서 최소성을 만족하는 것이 후보키가 된다. 후보키가 되기 위해 만족해야 하는 유일성과 최소성의 특성은 새로운 튜플이 삽입되거나 기존 튜플의 속성값이 바뀌어도 유지되어야 한다. [1]

개요[편집]

후보키는 수퍼키중에서 튜플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어진 키이다. [2] 후보키는 기본키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족해야한다. [3] 예를 들어 학번 속성과 이름, 학년 속성이 있다고 하자. 학번 속성은 단독으로 학생 튜플을 유일하게 구별할 수 있으므로 후보키가 될 수 있다. 하지만 이름이나, 학년은 후보키가 될 수 없다. 이름 속성이 없어도 학번 속성만으로 유일성을 만족할 수 있기 때문이다. 새로운 튜플이 삽입되거나 기존 튜플의 속성 값이 바뀌어도 유일성과 최소성은 유지되어야 한다. 또한, 후보키의 경우 하나의 관계(테이블)에서 관계를 정의할 때, 적어도 하나의 후보키가 존재한다. [2]

특징[편집]

후보키는 하나의 릴레이션 내에서는 중복된 튜플들이 있을 수 없으므로 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재한다. 후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다. 여기서 유일성이란 하나의 키값으로 하나의 튜플만을 유일하게 식별할 수 있어야 하는 것을 말하며, 최소성은 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성만으로 구성되어 있어야 하는 것을 말한다. 즉, 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성이다. [4]

예시[3][편집]

후보키 예시

위 테이블에 사람은 3명이 있다. 이 3명을 구분하는 수퍼키들이 모여있는데, 수퍼키들 중에서 속성은 최소한의 갯수로 3명을 구분할 수 있어야 후보키가 될 수 있다. 학번과 주민번호 수퍼키는 속성들이 각 1개씩 이루어져 있다. 하지만 이름+나이 수퍼키는 이름과 나이를 묶어서 2개의 속성으로 되어있다. 즉, 이름+나이 수퍼키는 2개이므로 최소성을 만족하지 못해서 후보키가 될 수 없다.

각주[편집]

  1. , 〈후보키〉, 《기본키》
  2. 2.0 2.1 , 〈후보키 개요〉, 2020-08-05《릴레이션 특징과 릴레이션 키 종류(슈퍼키,후보키,기본키,외래키)》
  3. 3.0 3.1 , 〈후보키 개요 및 특징〉, 2018-04-24《[SQL] 키(슈퍼키,대체키,후보키,기본키,외래키)》
  4. , 〈후보키 특징〉, 2018-08-14《[DB기초] 여러가지 키(기본키,후보키,외래키등)의 종류와 개념》

참고자료[편집]

  • 후보키〈후보키〉, 《Naver 지식백과》
  • [DB기초] 여러가지 키(기본키,후보키,외래키등)의 종류와 개념〈후보키 특징〉, 2018-08-14《Tistory - 코딩팩토리》
  • [SQL] 키(슈퍼키,대체키,후보키,기본키,외래키)〈후보키 개요 및 특징〉, 2018-04-24《Tistory - 쩨리쩨리》
  • 릴레이션 특징과 릴레이션 키 종류(슈퍼키,후보키,기본키,외래키)〈후보키 개요〉, 2020-08-05《Tistory - iamdaeyun》

같이 보기[편집]


  검수요청.png검수요청.png 이 후보키 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.