하나의 테이블에서 각 로우(ROW)를 고유(UNIQUE)하게 식별(IDENTIFY)할 수 있는 칼럼(COLUMN)또는 칼럼 조합을 의미한다.
종류 :
테이블을 생성할 때 기본키(PK)와 외래키(FK)는 명시적으로 선언해야 한다.
고객 테이블
- 테이블의 각 로우(Row)들을 식별할 수 있는 칼럼(Column) 또는 칼럼의 집합
- 고객 테이블을 분석하여 슈퍼키가 될 수 있는 칼럼이나 칼럼의 집합을 선정한다.
판단기준 : 모든 로우(Row)가 서로 다른 값을 가질 수 있는가?유일성(Unique)
(중복x)- 선정된 슈퍼키의 예시
- 고객번호
- 아이디
- 휴대폰번호
- 주민번호
- 고객명+직업
- 최소한의 칼럼(가장 적은 수의 칼럼)으로 구성된 슈퍼키(Super Key)만 선정한 것
- 후보키는
유일성 + 최소성
의 특징을 가진다.- 선정된 후보키의 예시
- 고객번호
- 아이디
- 휴대폰번호
- 주민번호
- 후보키((Candidate Key) 중에서 DBA가 선택한 키를 의미
- 기본키(Primary Key, PK, 주키)는
유일성 + 최소성
의 특징을 가짐- 기본키는
개체 무결성
의 특징을 가짐
- NOT NULL : 널(NULL) 값을 가질 수 없음
- UNIQUE : 중복된 값을 가질 수 없음
- 값이 변경되거나 의미가 변경될 수 있는 칼럼은 기본키로 부적절함
- 선정된 기본키의 예시
- 고객번호
기본키의 종류
- Auto Increment : 자동 증가 값을 가지는 컬럼으로 값을 직접 대입할 수 없으며, 중간에 값을 삭제한다고 해서, 삭제된 값을 재사용하지 않고 레코드가 적재될 때마다 1씩 증가하게 된다.
고객 테이블의 기본키 선정 사유
고객번호
: 아이디
: 휴대폰번호
: 주민번호
:기본키(Primary Key)키를 제외한 나머지 후보키(Candidate Key)를 의미함
보조키라고도 함
선정된 대체키의 예시