문제
오라클(Oracle)의 계층형 질의(Hierarchical Query)에 대한 설명으로 가장 틀린 것은?
① START WITH 절은 계층 구조의 시작점을 지정하는 역할을 한다. ② CONNECT BY 절에 PRIOR 키워드를 사용하여 부모와 자식 간의 관계를 정의한다. ③ ORDER SIBLINGS BY 구문은 동일한 부모를 가진 형제 노드 사이의 정렬을 위해 사용된다. ④ WHERE 절은 START WITH 및 CONNECT BY 전개 이전에 먼저 적용되어 계층 구조를 형성할 대상 데이터를 제한한다.
정답
4번
해설
정답: 4. WHERE 절(조인 조건 제외)은 START WITH와 CONNECT BY로 계층을 전개한 '이후'에 적용되어 결과 행을 걸러낸다. 따라서 '전개 이전에 먼저 적용된다'는 설명은 틀렸다.
오답 풀이
- ①: START WITH는 계층 전개의 루트(시작점)를 지정하므로 옳다.
- ②: CONNECT BY의 PRIOR는 부모-자식 연결 방향을 정의하므로 옳다.
- ③: ORDER SIBLINGS BY는 같은 부모를 가진 형제 노드 간 정렬에 사용되므로 옳다.
- ④: 정답(틀린 설명). WHERE는 계층 전개 후에 적용되어 개별 행을 필터링하며, 전개 대상 자체를 사전에 제한하지 않는다.
보충 개념 오라클 계층형 질의의 처리 순서는 (1) START WITH로 루트 선정 → (2) CONNECT BY로 계층 전개 → (3) WHERE로 결과 필터링 순이다. 다만 CONNECT BY 절 내부에 명시한 조인 조건은 전개 과정에서 함께 평가된다.