기출문제/정보처리기사
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 = 도미노처럼 같이 무너짐