문제
다음 중 참조 무결성 제약조건의 CASCADE 옵션에 대한 설명으로 옳지 않은 것은?
① DELETE CASCADE는 부모 테이블의 레코드 삭제 시 자식 테이블의 관련 레코드들도 함께 삭제한다 ② UPDATE CASCADE는 부모 테이블의 기본키 값 변경 시 자식 테이블의 외래키 값도 자동으로 변경한다 ③ SET NULL 옵션은 부모 레코드 삭제 시 자식 테이블의 외래키 값을 NULL로 설정하며, 이때 외래키 속성이 NOT NULL 제약을 가져도 예외적으로 허용된다 ④ RESTRICT 옵션은 자식 테이블에 관련 레코드가 존재하는 경우 부모 테이블의 레코드 삭제나 기본키 변경을 차단한다
정답
3번
해설
SET NULL 옵션은 외래키 값을 NULL로 설정하지만, 해당 외래키 속성에 NOT NULL 제약이 있다면 오류가 발생합니다. NOT NULL 제약을 예외적으로 허용하지 않습니다. ①번과 ②번은 CASCADE 옵션의 올바른 동작이며, ④번은 RESTRICT 옵션의 정확한 설명입니다.