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

"후보키"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글 (같이 보기)
잔글 (개요)
 
(다른 사용자 한 명의 중간 판 하나는 보이지 않습니다)
7번째 줄: 7번째 줄:
 
후보키는 기본키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족해야한다.  
 
후보키는 기본키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족해야한다.  
 
<ref name="후보키 개요 및 특징"> , 〈[https://jerryjerryjerry.tistory.com/49 후보키 개요 및 특징]〉, 2018-04-24《[SQL] 키(슈퍼키,대체키,후보키,기본키,외래키)》</ref>  
 
<ref name="후보키 개요 및 특징"> , 〈[https://jerryjerryjerry.tistory.com/49 후보키 개요 및 특징]〉, 2018-04-24《[SQL] 키(슈퍼키,대체키,후보키,기본키,외래키)》</ref>  
예를들어 학번 속성과 이름, 학년 속성이 있다고 하자. 학번 속성은 단독으로 학생 튜플을 유일하게 구별할 수 있으므로 후보키가 될 수 있다. 하지만 이름이나, 학년은 후보키가 될 수 . 이름 속성이 없어도 학번 속성만으로 유일성을 만족할 수 있기 때문이다. 새로운 튜플이 삽입되거나 기존 튜플의 속성 값이 바뀌어도 유일성과 최소성은 유지되어야 한다.  
+
예를 들어 학번 속성과 이름, 학년 속성이 있다고 하자. 학번 속성은 단독으로 학생 튜플을 유일하게 구별할 수 있으므로 후보키가 될 수 있다. 하지만 이름이나, 학년은 후보키가 될 수 없다. 이름 속성이 없어도 학번 속성만으로 유일성을 만족할 수 있기 때문이다. 새로운 튜플이 삽입되거나 기존 튜플의 속성 값이 바뀌어도 유일성과 최소성은 유지되어야 한다.  
 
또한, 후보키의 경우 하나의 관계(테이블)에서 관계를 정의할 때, 적어도 하나의 후보키가 존재한다.  
 
또한, 후보키의 경우 하나의 관계(테이블)에서 관계를 정의할 때, 적어도 하나의 후보키가 존재한다.  
<ref name="후보키 개요"/>  
+
<ref name="후보키 개요"/>
  
 
==특징==
 
==특징==

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