-
SQLD 자격검증실전문제 143번 문제<자격증>/[SQLD] 2023. 3. 19. 17:06728x90
143. 다음 중 아래와 같은 SQL에서 나타날 수 있는 Join 기법으로 가장 적절한 것은?[DEPT 테이블 INDEX 정보] PK DEPT DEPTNO [EMP 테이블 INDEX 정보] PK EMP EMPNO IDX_EMP_01: DEPTNO [SQL] SELECT * FROM DEPT D WHERE D. DEPTNO = 'A001' AND EXISTS (SELECT 'X' FROM EMP E WHERE D. DEPTNO E. DEPTNO)
1 HASH ANTI JOIN
2 HASH SEMI JOIN
3 NESTED LOOP ANTI JOIN
4 NESTED LOOP SEMI JOIN1 NESTED LOOP ANTI JOIN이 가장 적절하다.
해당 SQL은 DEPT 테이블의 DEPTNO가 'A001'인 부서를 조회하면서, EMP 테이블에서 해당 부서에 속한 직원이 존재하는지 검사하는 조건이 포함되어 있다. 이때, EXISTS 구문이 사용되어 EMP 테이블과 DEPT 테이블 간의 관계를 나타낸다.
이러한 경우, EMP 테이블에서 해당 부서에 속한 직원을 찾아야 하므로, EMP 테이블의 DEPTNO 컬럼에 대한 인덱스인 IDX_EMP_01이 사용될 것이다. 또한, DEPT 테이블에서는 DEPTNO를 기준으로 검색하므로 DEPTNO 컬럼에 대한 인덱스도 사용될 것이다.
이때, EMP 테이블과 DEPT 테이블 간의 관계를 조인하는 방법으로는 NESTED LOOP JOIN이 가장 적절하다. ANTI JOIN과 SEMI JOIN은 EXISTS 구문과 함께 사용될 때, 서브쿼리 결과가 존재하지 않는 경우를 처리하기 위한 방법으로 사용되는데, 이 경우 해당되지 않으므로 선택할 수 없다. 따라서, 3번 NESTED LOOP ANTI JOIN이 가장 적절한 선택지이다.
728x90728x90'<자격증> > [SQLD]' 카테고리의 다른 글
SQLD 자격검증실전문제 117번 문제 (0) 2023.03.19 SQLD 자격검증실전문제 146번 문제 (0) 2023.03.19 SQLD 자격검증실전문제 138번 문제 (0) 2023.03.19 SQLD 자격검증실전문제 130번 문제 (0) 2023.03.19 SQLD 자격검증실전문제 131번 문제 (0) 2023.03.19