정의
기본 키(primary key)는 관계형 데이터베이스 테이블에서 각 레코드를 고유하게 식별할 수 있도록 하는 하나 이상의 열(컬럼) 집합이다. 기본 키에 지정된 값은 테이블 내에서 중복될 수 없으며, NULL 값을 허용하지 않는다.
주요 특성
- 고유성(uniqueness): 기본 키에 포함된 각 값은 테이블 전체에서 유일해야 한다.
- 무결성(constraint): 데이터베이스 관리 시스템(DBMS)은 기본 키 제약을 자동으로 강제한다.
- 불변성(stability): 일반적으로 기본 키는 레코드가 생성된 뒤 변경되지 않는 값으로 설계한다.
- 인덱스 자동 생성: 대부분의 DBMS는 기본 키에 대해 자동으로 인덱스를 생성하여 조회 성능을 향상시킨다.
구성 방식
- 단일 컬럼 기본 키: 한 개의 열만으로 구성한다. 예)
id(정수형) - 복합 기본 키: 두 개 이상의 열을 조합하여 고유성을 보장한다. 예)
order_id와product_id의 조합
관련 개념
- 외래 키(Foreign Key): 다른 테이블의 기본 키를 참조하여 테이블 간의 관계를 정의한다.
- 대체 키(Alternate Key): 기본 키가 아니라도 고유성을 가진 후보키 중 하나로, 필요에 따라 기본 키로 선택될 수 있다.
- 유니크 제약(Unique Constraint): 기본 키와 유사하게 중복을 방지하지만, NULL 값을 허용할 수 있다.
활용 맥락
- 데이터 모델링: ER(Entity‑Relationship) 다이어그램에서 엔터티(테이블)의 식별자를 명시할 때 사용한다.
- SQL 정의:
CREATE TABLE문에서PRIMARY KEY절을 통해 지정한다. 예시)CREATE TABLE 고객 ( 고객ID INT PRIMARY KEY, 이름 VARCHAR(50), 이메일 VARCHAR(100) ); - ORM(Object‑Relational Mapping): 객체와 관계형 데이터베이스 간 매핑 시 기본 키를 객체 식별자로 활용한다.
어원 및 용어 사용
‘기본(key)’은 한국어에서 ‘핵심’, ‘핵심이 되는 것’이라는 의미를 갖는다. ‘키(key)’는 영어 key를 차용한 용어로, 데이터베이스에서는 ‘식별자’를 의미한다. 따라서 ‘기본 키’는 ‘핵심 식별자’라는 의미로 사용된다.
참고
다수의 데이터베이스 관련 교과서, 표준(SQL:2016) 및 주요 DBMS 문서(Oracle, MySQL, PostgreSQL, Microsoft SQL Server 등)에서 기본 키 개념을 정의하고 있다.