데이터 베이스 키 종류
- 데이터베이스에서 사용되는 Key의 종류들에 대해 기재한다.
Key란?
- 특정한 데이터 항목을 고유하게 식별할 수 있는 값 및 값의 집합이 된다.
- Key는 DB의 무결성, 속도, 데이터 참조 등의 기능을 보장하는 매우 중요한 요소이다.
Candidate Key (후보 키)
- 테이블 내에서 고유하게 식별할 수 있는 속성 및 속성들의 집합이 된다.
- 즉, 기본 키로 선택 될 수 있는 모든 키를 의미한다.
- 후보 키는 Null값을 가질 수 없으며, 고유해야 한다.
학생 테이블에서 {학생 번호, 휴대폰 번호}는 후보 키에 해당된다. {이름, 나이} 컬럼은 중복 될 수 있으므로, 유일성이 보장되지 않는다.
Primary Key (기본 키)
- 테이블 내에서 고유하게 식별 되는 유일한 값이다.
- Null값을 가질 수 없으며, 1개의 컬럼이 기본키가 될 수 있고 2개 이상의 컬럼이 기본 키가 될 수도 있다.
- 기본 키는 중복 값을 저장할 수 없다.
후보 키인 {학생 번호, 휴대폰 번호} 중에서 기본 키를 지정할 수 있다.
Alternate Key (대체 키, 보조 키)
- 후보 키가 2개 이상일 때 기본 키를 제외한 나머지 Key들을 의미한다.
만약 {학생 번호}가 기본 키라면, 대체 키는 {휴대폰 번호}가 된다.
Composite Key (복합 키)
- 2개 이상의 컬럼들이 묶여서 하나의 기본 키로 지정한 것이다.
- 기본 키가 복합 키라면, 복합 키는 당연히 고유성을 반드시 보장되어야 한다.
{학생 번호, 휴대폰 번호}를 기본키로 지정한다면 학생 테이블의 복합키가 되는 것이다.
Super Key (슈퍼 키)
- 유일성은 보장 받지만 최소성을 보장 받지 못하는 키를 의미한다.
- 예를 들면 {학생 번호, 이름}은 슈퍼키에 해당된다.
- 3번 김덕배와 4번 김덕배는 서로 동명이인이지만, {학생 번호}로 값을 식별할 수 있기 때문이다.
{학생 번호, 이름}, {학생 번호, 나이}, {휴대폰 번호, 이름} 등등은 슈퍼 키가 될 수 있다.
Foreign key (외래 키)
- 외래 키는 해당 테이블에서 다른 테이블의 컬럼 및 컬럼 집합의 기본 키를 참조하는 제약 조건 키다.
- 참조 무결성을 정하는데 중요하며, 두 테이블간의 관계를 정의하고 사상수를 정의할 수 있다.
- 1 : 1, 1 : N, N : 1, N : N
- 업데이트 및 삭제 시 무결성 제약 조건에 의해 오류가 발생하므로 특정 옵션을 통한 액션으로 해결해야 한다.
- 또한 삽입 시 외래 키의 기본 키가 반드시 지정 되어야 한다.
EX )
[주문 테이블]의 {고객 Id}는 [고객 테이블]의 기본 키로 지정되어 있다. 즉, [주문 테이블]의 FK는 {고객 Id}가 된다!