문제
다음 중 참조 무결성에 대한 설명으로 옳지 않은 것은?
① 참조 무결성은 참조하고 참조되는 테이블 간의 참조 관계에 아무런 문제가 없는 상태를 의미한다. ② 다른 테이블을 참조하는 테이블 즉, 외래 키 값이 있는 테이블의 레코드 삭제 시에는 참조 무결성이 위배될 수 있다. ③ 다른 테이블을 참조하는 테이블의 레코드 추가 시 외래 키 값이 널(Null)인 경우에는 참조 무결성이 유지된다. ④ 다른 테이블에 의해 참조되는 테이블에서 레코드를 추가하는 경우에는 참조 무결성이 유지된다.
정답
2번
해설
정답: 2. 외래 키를 가진(다른 테이블을 참조하는) 자식 테이블의 레코드를 삭제하는 것은, 그 행만 사라질 뿐 참조 대상이 없어지지 않으므로 참조 무결성을 위배하지 않는다. 무결성 위배 위험은 참조되는(기본 키) 부모 테이블의 레코드를 삭제할 때 발생한다.
오답 풀이
- 1번: 참조 관계에 문제가 없는 상태가 참조 무결성이므로 옳다.
- 2번: 외래 키를 가진 테이블의 레코드 삭제는 무결성을 위배하지 않으므로 옳지 않다.
- 3번: 외래 키 값이 Null이면 참조하는 대상이 없어 무결성이 유지되므로 옳다.
- 4번: 참조되는 테이블에 레코드를 추가하는 것은 기존 참조 관계에 영향이 없으므로 옳다.
보충 개념 참조 무결성은 외래 키 값이 반드시 부모 테이블의 기본 키 값으로 존재하거나 Null이어야 한다는 규칙이다. 부모 레코드 삭제·기본 키 변경 시 위배가 발생할 수 있다.