59. 테이블 두 개를 조인하여 뷰 V_1을 정의하고, V_1을 이용하여 뷰 V_2를 정의하였다. 다음 명령 수행 후 결과로 옳은 것은?
① V_1만 삭제된다.
② V_2만 삭제된다.
❸ V_1과 V_2 모두 삭제된다.
④ V_1과 V_2 모두 삭제되지 않는다.
이 문제는 SQL에서 **뷰(View)**와 DROP VIEW 명령어의 동작을 이해하는 문제입니다.
문제 분석
먼저, 주어진 상황을 정확히 분석해 봅시다.
- V_1은 두 테이블을 조인하여 정의된 뷰입니다.
- V_1을 이용하여 V_2라는 또 다른 뷰를 정의한 상황입니다.
- DROP VIEW V_1 CASCADE 명령어가 실행되면, V_1 뷰를 삭제하는 명령인데, CASCADE 옵션이 추가되었습니다.
CASCADE 옵션의 의미
- CASCADE는 해당 뷰를 참조하고 있는 다른 객체들(뷰나 의존 관계가 있는 객체들)을 함께 삭제하라는 의미입니다.
- 즉, V_1 뷰를 삭제하면, V_1을 참조하고 있는 V_2 뷰도 자동으로 삭제됩니다.
각 선택지 분석
① V_1만 삭제된다.
- 틀린 답변입니다. DROP VIEW V_1 CASCADE 명령을 실행하면 V_1과 V_1을 참조하는 V_2도 삭제됩니다. 따라서 V_1만 삭제되는 것은 아닙니다.
② V_2만 삭제된다.
- 틀린 답변입니다. DROP VIEW V_1 CASCADE 명령은 V_1을 삭제하고, 이를 참조하고 있는 V_2도 삭제되므로 V_2만 삭제되는 상황은 발생하지 않습니다.
❸ V_1과 V_2 모두 삭제된다.
- 맞는 답변입니다. DROP VIEW V_1 CASCADE 명령은 V_1을 삭제하고, V_1을 참조하고 있는 V_2도 삭제됩니다. CASCADE 옵션은 참조하고 있는 객체들까지 삭제하므로 두 뷰 모두 삭제됩니다.
④ V_1과 V_2 모두 삭제되지 않는다.
- 틀린 답변입니다. CASCADE 옵션을 사용하면 V_1을 삭제하면서 V_2도 삭제됩니다. 따라서 V_1과 V_2가 모두 삭제되지 않는다는 말은 틀린 설명입니다.
예시
- 예를 들어, V_1 뷰가 두 테이블을 조인하여 정의되었다고 가정합시다.
- CREATE VIEW V_1 AS SELECT A.id, B.name FROM A JOIN B ON A.id = B.id;
- 그리고 V_2 뷰가 V_1을 이용하여 정의된 경우입니다.
- CREATE VIEW V_2 AS SELECT id, name FROM V_1 WHERE id > 100;
- 이때 DROP VIEW V_1 CASCADE; 명령을 실행하면, V_1 뷰와 이를 참조하는 V_2 뷰가 모두 삭제됩니다.
결론
따라서, 정답은 ❸ V_1과 V_2 모두 삭제된다입니다. DROP VIEW V_1 CASCADE 명령은 V_1을 삭제하면서, 그 뷰를 참조하고 있는 V_2도 함께 삭제하게 됩니다.
반응형
'기출문제 > 정보처리기사' 카테고리의 다른 글
2022년 1회 정보처리기사 기출문제 61번 (0) | 2025.03.06 |
---|---|
2022년 1회 정보처리기사 기출문제 60번 (0) | 2025.03.06 |
2022년 1회 정보처리기사 기출문제 58번 (0) | 2025.03.06 |
2022년 1회 정보처리기사 기출문제 57번 (0) | 2025.03.06 |
2022년 1회 정보처리기사 기출문제 56번 (0) | 2025.03.06 |