기출문제/정보처리기사

2020년 1회,2회(통합) 정보처리기사 기출문제 54번

엉클지니 2025. 4. 13. 18:15

54. 참조 무결성을 유지하기 위하여 DROP문에서 부모 테이블의 항목 값을 삭제할 경우 자동적으로 자식 테이블의 해당          레 코드를 삭제하기 위한 옵션은?

     CLUSTER         CASCADE

     SET-NULL        RESTRICTED

 

 

이번엔 정보처리기사 문제 54번을 쉽게 풀이해보겠습니다. 핵심 개념은 참조 무결성DROP 시 자식 테이블 처리 옵션입니다.


✅ 문제

참조 무결성을 유지하기 위해 DROP 문에서 부모 테이블의 항목 값을 삭제할 경우, 자동으로 자식 테이블의 해당 레코드를 삭제하기 위한 옵션은?

① CLUSTER
② CASCADE
③ SET NULL
④ RESTRICTED


🔍 1. 핵심 개념 분석

  • 참조 무결성(Referential Integrity)
    외래 키(Foreign Key)가 부모 테이블의 기본 키를 참조할 때 반드시 유효한 값을 가져야 하는 제약 조건입니다.
  • DROP 문
    데이터베이스 객체(테이블, 뷰 등)를 삭제하는 명령입니다.
  • 문제 요점
    부모 테이블을 삭제할 때, 그걸 참조하는 자식 테이블의 데이터까지 자동으로 삭제하려면 어떤 옵션을 써야 할까?

📘 보기 해설

번호 보기 설명 정답 여부

① CLUSTER 테이블을 물리적으로 재배치하는 기능 ❌ 무관  
② CASCADE 부모가 삭제될 때 자식도 자동 삭제 ✅ 정답  
③ SET NULL 부모가 삭제되면 자식의 외래 키를 NULL로 설정 ❌ 삭제 아님  
④ RESTRICTED 부모 삭제를 막음 (자식이 있으면 삭제 안 됨) ❌ 정반대 옵션  

✅ 정답: ② CASCADE

  • CASCADE는 외래 키 또는 객체 삭제 시 연쇄적으로 다른 객체나 레코드도 같이 삭제되게 합니다.
  • 즉, 부모 테이블이 DROP되거나 행이 DELETE될 때, 자식 테이블도 같이 반응하게 만드는 옵션이에요.

🧠 예시로 쉽게 이해하기

-- 자식 테이블에서 외래 키를 만들 때
FOREIGN KEY (부모_id) REFERENCES 부모테이블(id)
ON DELETE CASCADE

이렇게 해두면 부모 테이블의 특정 행을 삭제할 때,
자식 테이블의 관련 행도 자동으로 삭제됩니다.


🔄 비교 요약표

옵션 동작 사용 목적

CASCADE 부모 삭제 시 자식도 삭제됨 연쇄 삭제
SET NULL 부모 삭제 시 자식의 외래 키를 NULL로 관계만 끊음
RESTRICT 부모 삭제 못 함 (자식이 존재하면 에러) 무결성 엄격 유지
CLUSTER 테이블 물리적 재배치 무관한 옵션

📝 정리

  • 문제 요점: 부모 테이블 삭제 시 자식 테이블도 같이 삭제되게 하는 옵션은?
  • 정답: ② CASCADE
  • 기억법:
  • CASCADE = 도미노처럼 같이 무너짐