2023 국가직7급 데이터베이스론 21번 해설 — 조인 구현
정답 ②번출제 쟁점 조인 구현발문 옳지 않은 것 고르기
문제
릴레이션 R과 S에 대한 조인 연산의 구현 방법을 설명한 것으로 옳지 않은 것은?
- ① 중첩 루프 조인(nested loop join): R과 S의 레코드들에 대한 별도의 인덱스나 정렬을 필요로 하지 않는다
- ② 단일 루프 조인(single loop join): R과 S 중 하나의 릴레이션에 있는 레코드들은 조인 속성 값에 따라 물리적으로 정렬되어 있어야 한다 ← 정답
- ③ 정렬-합병 조인(sort-merge join): R과 S의 레코드들이 조인 속성 값에 따라 물리적으로 정렬되어 있을 때 가장 효율적이다
- ④ 해시 조인(hash join): R과 S의 레코드들은 조인 속성을 해시 키로 하고 동일한 해시 함수를 이용해 해시되어 있어야 한다
선지별 해설
① 중첩 루프 조인(nested loop join): R과 S의 레코드들에 대한 별도의 인덱스나 정렬을 필요로 하지 않는다
이 선지 진술은 옳음(O)
중첩 루프 조인은 두 릴레이션의 모든 레코드 쌍을 비교하므로 인덱스나 정렬이 필수가 아니다. 옳은 설명이다.
② 단일 루프 조인(single loop join): R과 S 중 하나의 릴레이션에 있는 레코드들은 조인 속성 값에 따라 물리적으로 정렬되어 있어야 한다
이 선지 진술은 틀림(X)
단일 루프 조인(인덱스 조인)은 한쪽 릴레이션의 조인 속성에 '인덱스'가 존재해야 적용되는 방식이지 물리적 정렬을 요구하지 않는다. 물리적 정렬을 요구하는 것은 정렬-합병 조인이므로 옳지 않은 설명이다.
③ 정렬-합병 조인(sort-merge join): R과 S의 레코드들이 조인 속성 값에 따라 물리적으로 정렬되어 있을 때 가장 효율적이다
이 선지 진술은 옳음(O)
정렬-합병 조인은 양쪽 릴레이션이 조인 속성으로 이미 정렬되어 있을 때 정렬 비용 없이 한 번의 합병으로 처리할 수 있어 가장 효율적이다. 옳은 설명이다.
④ 해시 조인(hash join): R과 S의 레코드들은 조인 속성을 해시 키로 하고 동일한 해시 함수를 이용해 해시되어 있어야 한다
이 선지 진술은 옳음(O)
해시 조인은 양쪽 릴레이션을 동일한 해시 함수로 조인 속성에 대해 해싱하여 같은 버킷 내에서만 비교한다. 옳은 설명이다.
핵심 요약 (Q&A)
- Q. 2023 국가직7급 데이터베이스론 21번의 핵심 쟁점은 무엇인가?
- A. 2023 국가직7급 데이터베이스론 21번은 조인 구현에 관한 문항으로, "옳지 않은 것"을 고르는 문제입니다.
- Q. 2023 국가직7급 데이터베이스론 21번의 정답은?
- A. 정답은 ②번입니다. 단일 루프 조인(인덱스 조인)은 한쪽 릴레이션의 조인 속성에 '인덱스'가 존재해야 적용되는 방식이지 물리적 정렬을 요구하지 않는다. 물리적 정렬을 요구하는 것은 정렬-합병 조인이므로 옳지 않은 설명이다.