외래키(FK)는 다른 릴레이션의 기본키(PK) 필드를 참조하는 데이터의 ‘참조 무결성’을 확인하기 위해 사용되는 키
외래키는 한 릴레이션과 다른 릴레이션을 연결해주는 역할
→ 하나의 릴레이션이 다른 릴레이션에 의존하게 만듬
관계 데이터 모델의 릴레이션 간의 관계를 표현하고, 다른 릴레이션의 기본키를 참조
참조하고(FK) 참조되는(PK) 양쪽 릴레이션의 도메인은 같아야 함 (참조 무결성)
→ 도메인: 릴레이션에 포함된 각각의 속성들이 가질 수 있는 집합
참조되는 값(PK)이 변경되면 참조하는 값(FK)도 변경된다.
NULL과 중복 값이 허용된다.
→ 기본키는 데이터를 구별하는 유일한 속성, 외래키는 릴레이션을 참조하기 때문에 없는 값은 NULL
자기 자신의 기본키를 참조하는 외래키 가능
외래키가 기본키의 일부가 될 수 있다.
제약 조건
외래키의 제약 조건에 의해 참조되는 기본키의 릴레이션에서 데이터의 수정이나 삭제가 발생하면, 참조하는 외래키의 릴레이션이 영향을 받게된다. (전파 특성)
동작
종류
CASCADE: 참조되는 릴레이션(PK)에서 데이터를 수정하거나 삭제하면, 참조하는 릴레이션(FK)에서도 수정과 삭제가 같이 발생
SET NULL: 참조되는 릴레이션(PK)에서 데이터를 수정하거나 삭제하면, 참조되는 릴레이션(FK)의 데이터는 NULL로 변경
NO ACTION: 참조되는 릴레이션(PK)에서 데이터를 수정하거나 삭제해도, 참조되는 릴레이션(FK)의 데이터는 변경되지 않는다.
⇒ 각 릴레이션이 서로 영향을 받지 않는 독립적인 릴레이션에만 사용해야 함
SET DEFAULT: 참조되는 릴레이션(PK)에서 데이터를 수정하거나 삭제하면, 참조하는 릴레이션(FK)의 데이터는 필드의 기본 값으로 설정
RESTRICT: 참조하는 릴레이션(FK)에 데이터가 남아 있으면, 참조되는 릴레이션(PK)의 데이터를 삭제하거나 수정할 수 없음.