검사 기준

외래키는 부모 기본키 집합 안에 있거나, 관계가 없음을 뜻하는 NULL이어야 합니다.

핵심은 숫자 자체가 아니라 부모 테이블에 실제로 존재하는 키를 가리키는지입니다. 이 기준이 깨지면 두 테이블 사이의 연결이 설명되지 않습니다.

허용 범위는 부모의 기본키가 만든다

students.id에 실제로 저장된 값만 자식의 student_id가 참조할 수 있습니다.

id name
1 김철수
2 이영희
허용 가능한 참조 값{1, 2}NULL입니다. 부모에 없는 값은 후보에 들어오지 못합니다.

같은 규칙으로 보면 허용과 위반이 바로 갈립니다

자식 값
부모와 대조
결과
1
students.id = 1이 있으므로 실제 부모 행과 연결됩니다.
유효한 참조
NULL
부모를 가리키지 않는 상태입니다. 선택 관계라면 허용됩니다.
관계 없음, 허용
3
students.id = 3이 없어서 어떤 부모 행과도 연결되지 않습니다.
참조 무결성 위반
참조 무결성은 "자식 값이 누구를 가리키는지 끝까지 설명 가능해야 한다"는 규칙입니다. 부모 PK 집합 밖의 값만 들어오면 관계가 즉시 깨집니다.