"후보키"의 두 판 사이의 차이
잔글 (→같이 보기) |
(→개요) |
||
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월 18일 (목) 13:26 판
후보키(Candidate Key)는 유일성과 최소성을 만족하는 속성 또는 속성들의 집합으로 튜플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어지므로 수퍼키 중에서 최소성을 만족하는 것이 후보키가 된다. 후보키가 되기 위해 만족해야 하는 유일성과 최소성의 특성은 새로운 튜플이 삽입되거나 기존 튜플의 속성값이 바뀌어도 유지되어야 한다. [1]
개요
후보키는 수퍼키중에서 튜플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어진 키이다. [2] 후보키는 기본키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족해야한다. [3] 예를들어 학번 속성과 이름, 학년 속성이 있다고 하자. 학번 속성은 단독으로 학생 튜플을 유일하게 구별할 수 있으므로 후보키가 될 수 있다. 하지만 이름이나, 학년은 후보키가 될 수 없다. 이름 속성이 없어도 학번 속성만으로 유일성을 만족할 수 있기 때문이다. 새로운 튜플이 삽입되거나 기존 튜플의 속성 값이 바뀌어도 유일성과 최소성은 유지되어야 한다. 또한, 후보키의 경우 하나의 관계(테이블)에서 관계를 정의할 때, 적어도 하나의 후보키가 존재한다. [2]
특징
후보키는 하나의 릴레이션 내에서는 중복된 튜플들이 있을 수 없으므로 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재한다. 후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다. 여기서 유일성이란 하나의 키값으로 하나의 튜플만을 유일하게 식별할 수 있어야 하는 것을 말하며, 최소성은 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성만으로 구성되어 있어야 하는 것을 말한다. 즉, 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성이다. [4]
예시[3]
위 테이블에 사람은 3명이 있다. 이 3명을 구분하는 수퍼키들이 모여있는데, 수퍼키들 중에서 속성은 최소한의 갯수로 3명을 구분할 수 있어야 후보키가 될 수 있다. 학번과 주민번호 수퍼키는 속성들이 각 1개씩 이루어져 있다. 하지만 이름+나이 수퍼키는 이름과 나이를 묶어서 2개의 속성으로 되어있다. 즉, 이름+나이 수퍼키는 2개이므로 최소성을 만족하지 못해서 후보키가 될 수 없다.
각주
참고자료
- 후보키〈후보키〉, 《Naver 지식백과》
- [DB기초] 여러가지 키(기본키,후보키,외래키등)의 종류와 개념〈후보키 특징〉, 2018-08-14《Tistory - 코딩팩토리》
- [SQL] 키(슈퍼키,대체키,후보키,기본키,외래키)〈후보키 개요 및 특징〉, 2018-04-24《Tistory - 쩨리쩨리》
- 릴레이션 특징과 릴레이션 키 종류(슈퍼키,후보키,기본키,외래키)〈후보키 개요〉, 2020-08-05《Tistory - iamdaeyun》
같이 보기