Referential Integrity

외래키 값은 설명 가능한 부모 키를 가리켜야 한다

자식 테이블의 외래키는 같은 테이블 또는 다른 테이블의 참조 대상 키에 존재하는 값이어야 합니다. NULL은 컬럼이 허용할 때만 관계 미지정을 뜻합니다.

참조 대상

departments

dept_id가 기본키 또는 UNIQUE 키라고 가정합니다.

dept_id dept_name
10 컴퓨터
20 경영학
외래키 보유

students

students.dept_id가 departments.dept_id를 참조합니다.

student_id name dept_id
1 김철수 10
2 이영희 NULL
dept_id = 10 허용 참조 대상 키에 10이 존재합니다.
dept_id = NULL 조건부 허용 선택 관계이고 FK 컬럼이 NULL을 허용할 때만 가능합니다.
dept_id = 99 거부 참조 대상에 99가 없으므로 고아 참조가 됩니다.
정리: 외래키는 “부모 테이블만 가리킨다”보다, “선언된 참조 대상 키의 값 집합 안에 있어야 한다”로 이해하는 편이 정확합니다.