데이터베이스 기본 키
IT위키
더 많은 작업
(기본 키에서 넘어옴)
기본 키(Primary Key, PK)는 후보 키 가운데 설계자가 골라 테이블의 각 행(튜플)을 대표로 식별하는 데 쓰는 키이다.
기본 키는 데이터베이스 키의 하나로, 후보 키처럼 유일성(같은 값을 가진 행이 둘 이상 없음)과 최소성(속성을 하나라도 빼면 유일하게 식별할 수 없음)을 함께 만족한다. 여기에 더해 NULL 값을 가질 수 없고(개체 무결성), 한 테이블에 하나만 정한다. 하나의 기본 키가 여러 속성(필드)으로 이루어질 수 있는데, 이것을 복합 키(Composite Key)라 한다. 기본 키는 다른 테이블의 외래 키가 참조하는 대상이 된다.
| 키 | 유일성 | 최소성 | 설명 |
|---|---|---|---|
| 슈퍼 키 | O | X | 행을 유일하게 식별하는 속성의 집합. 불필요한 속성이 섞여 있어도 된다 |
| 후보 키 | O | O | 슈퍼 키 중 최소성까지 만족하는 것. 기본 키가 될 수 있는 후보 |
| 기본 키 | O | O | 후보 키 중 하나를 골라 정한 대표 키. NULL 불가 |
| 대체 키 | O | O | 기본 키로 뽑히지 않고 남은 후보 키 |
| 외래 키 | - | - | 다른 테이블의 기본 키를 참조하는 속성. 테이블 사이의 관계를 만든다 → 데이터베이스 참조 무결성 |
- 기본 키는 튜플을 식별하기 위한 것이지, 검색할 때 반드시 써야 하는 것은 아니다. SELECT 의 WHERE 조건에는 어떤 속성이든 쓸 수 있다
- DBMS 는 기본 키에 유일 인덱스를 자동으로 만들므로 기본 키 값으로 찾으면 빠를 뿐이다 → 데이터베이스 인덱스
- 기본 키에는 NOT NULL 과 UNIQUE 제약이 함께 걸리고(개체 무결성), 다른 테이블의 외래 키가 기본 키를 참조할 수 있다
- 값이 바뀌지 않는 속성을 고른다(불변성)
- 되도록 속성 수가 적고 짧은 값을 고른다
- 이름처럼 중복될 수 있는 값보다 사번·학번 같은 식별 번호, 또는 일련번호를 쓴다
마이크로소프트 액세스는 테이블 디자인 보기에서 필드를 고른 뒤 [기본 키] 단추로 지정한다.
- 기본 키 지정은 필수가 아니다. 기본 키 없이도 테이블을 저장할 수 있다. 다만 저장할 때 기본 키를 만들지 묻고, 관계 설정과 중복 방지를 위해 지정하는 것이 좋다
- 여러 필드를 함께 기본 키로 지정할 수 있다(복합 키). Ctrl 키로 필드를 여러 개 골라 [기본 키] 를 누른다. "한 개의 필드에만 지정할 수 있다" 는 틀린 말이다
- 데이터시트 보기에서 새 테이블을 만들면 ID 필드가 자동으로 만들어지고 일련 번호 형식의 기본 키가 된다
- 기본 키 필드에는 자동으로 '예(중복 불가능)' 인덱스가 붙는다 → 액세스 필드 속성
- 기본 키에는 빈 값(NULL)이나 중복 값을 넣을 수 없다
- 하나 이상의 관계에 쓰이고 있는 테이블의 기본 키를 바꾸거나 없애려면 관계를 먼저 삭제해야 한다