본문 바로가기

데이터베이스(DB)/MySQL

[SQL] 키 (Key)

키(Key)

데이터 베이스에서 특정 데이터를 식별할 수 있는 고유한 식별자(identifier)

조건에 만족하는 레코드를 찾거나 순서대로 정렬할 때 레코드를 구분할 수 있는 기준이 되는 속성을 말한다.

 

키의 종류

- Super Key (슈퍼키)

- Candidate Key (후보키)

- Primary Key (기본키)

- Alternate Key (대체키)

- Foreign Key (외래키)

- Composite Key (복합키)

 

키의 속성

- 유일성 : 하나 또는 그 이상의 키 값으로 유일한 레코드를 식별할 수 있는 성질 ( 중복 X )

- 최소성 : 특정 레코드를 구분할 때 필요한 최소한의 속성들로만 구성되는 성질

 

Super Key (슈퍼키)

- 각 레코드를 유일하게 식별할 수 있는 속성들의 집합

- 유일성은 만족해야 하지만 최소성은 만족하지 않아도 된다.

 

Candidate Key (후보키)

- 슈퍼키들 중에서 최소성도 만족하는 키를 말한다.

- 유일성도 만족, 최소성도 만족

 

Primary Key (기본키)

- 주 키, 프라이머리 키, PK 등 다양한 명칭으로 불린다.

- 후보키들 중에서 메인으로 선정되는 키를 말한다.

 

Alternate Key (대체키)

- 후보키들 중에서 기본키로 선정된 키를 제외한 나머지 키들을 말한다.

 

Foreign Key (외래키)

- 테이블이 다른 테이블의 기본키를 참조하여 테이블 간 관계를 형성하는 키를 말한다.

- 외래키의 목적은 데이터의 무결성을 유지하기 위함이다.

- 데이터의 무결성은 데이터가 항상 정확한 값을 유지하려는 성질을 말한다.

- 참조하는 테이블을 자식 테이블, 참조 당하는 테이블을 부모 테이블이라 한다. 부모 테이블을 삭제하기 위해서는 반드시 자식 테이블을 먼저 삭제해야 한다.

 

Composite Key (복합키)

- 두 개 이상의 속성을 묶어서 하나의 기본키로 지정된 키를 말한다.

- 기본키가 복합키라면, 당연히 유일성과 최소성을 만족해야 한다.

 

기본키 선정 조건

- 값의 변동이 잦은 후보키는 피한다.

- NULL 값을 가질 수 없다.

- 단순할수록 좋다.

- 하나의 테이블에는 반드시 하나의 기본키만 존재한다.