정의
외래 키(Foreign Key)는 관계형 데이터베이스에서 한 테이블의 컬럼(또는 컬럼 집합)이 다른 테이블의 기본 키(Primary Key)와 대응하도록 설정된 제약 조건을 말한다. 이를 통해 두 테이블 간에 논리적인 연관성을 정의하고, 데이터 무결성을 유지한다.
개요
관계형 데이터베이스 관리 시스템(RDBMS)에서는 테이블 간의 관계를 표현하기 위해 외래 키를 사용한다. 외래 키가 지정된 컬럼은 반드시 참조 대상 테이블에 존재하는 값이어야 하며, 이를 통해 삽입·갱신·삭제 연산 시 일관성을 확보한다. 외래 키 제약은 ON DELETE·ON UPDATE와 같은 옵션을 통해 참조된 행이 삭제되거나 수정될 때의 동작(예: CASCADE, SET NULL, RESTRICT 등)을 지정할 수 있다.
어원/유래
‘외래(Foreign)’는 ‘다른 테이블에 속한’이라는 의미이며, ‘키(Key)’는 ‘키 값, 식별자’를 뜻한다. 영어 표현 “foreign key”는 1970년대 초반 관계형 데이터베이스 이론이 정립될 때부터 사용된 용어이며, 한국어 표기인 ‘외래 키’는 이 용어를 그대로 번역한 형태이다. 정확한 최초 사용 시점에 대한 구체적인 문헌은 확인되지 않는다.
특징
- 참조 무결성 유지: 외래 키는 참조 대상 테이블에 존재하지 않는 값을 허용하지 않는다.
- 관계 정의: 1대다(N:1), 1대1(1:1) 등 다양한 테이블 간 관계를 명시한다.
- 제약 옵션:
ON DELETE CASCADE,ON UPDATE SET NULL등으로 연관된 행에 대한 동작을 제어한다. - 인덱스 자동 생성 여부: DBMS마다 외래 키에 자동으로 인덱스를 생성하거나 수동으로 생성하도록 요구한다.
- 성능 고려: 외래 키 제약은 삽입·삭제·갱신 시 추가적인 무결성 검사를 수행하므로, 대용량 환경에서는 인덱스 설계와 트랜잭션 관리가 중요하다.
관련 항목
- 기본 키 (Primary Key)
- 후보 키 (Candidate Key)
- 고유 제약(Unique Constraint)
- 참조 무결성(Referential Integrity)
- 관계형 데이터베이스 관리 시스템(RDBMS)
- 정규화(Normalization)
- 인덱스(Index)
본 내용은 관계형 데이터베이스 분야의 일반적인 학술·기술 자료와 주요 DBMS 매뉴얼을 토대로 작성되었으며, 최신 버전의 DBMS에 따라 세부 동작이 다를 수 있다.