문제
다음 중 복합 참조 무결성 제약에서 자식 테이블의 복합 외래키 값 중 일부가 NULL인 튜플의 처리에 대한 설명으로 가장 적절한 것은?
① 복합 외래키의 일부가 NULL이면 전체 참조가 유효하지 않으므로 삽입을 거부해야 한다 ② 복합 외래키의 모든 구성 컬럼이 NULL이 아닌 경우에만 참조 무결성을 검사한다 ③ 복합 외래키의 일부만 NULL인 경우 해당 부분만 별도로 참조 무결성을 검사한다 ④ 복합 외래키에서 NULL 부분은 무시하고 나머지 부분만으로 참조 무결성을 판단한다
정답
2번
해설
일반적인 SQL의 MATCH SIMPLE 방식에서는 복합 외래키의 구성 컬럼 중 하나라도 NULL이면 참조 무결성 검사를 통과한 것으로 본다. 모든 구성 컬럼이 NULL이 아닌 경우에만 부모 테이블의 참조 대상 키와 일치하는지 검사한다. 단, 각 컬럼에 NOT NULL 제약이 있으면 NULL 입력 자체는 별도의 제약 위반이 될 수 있다.