키값 2, 3, 5를 차례대로 삽입하여 다음과 같은 B+-트리가 생성되… | [7급 국가직 데이터베이스론] 26년 1회차 기출문제 상세 페이지
1[7급 국가직 데이터베이스론] 26년 1회차
키값 2, 3, 5를 차례대로 삽입하여 다음과 같은 B+-트리가 생성되었다. 이후 9, 8, 7을 차례대로 삽입한 후 B+-트리로 옳은 것은? (단, B+-트리의 차수는 3이다)
1
[그림]
2
[그림]
3
[그림]
4
[그림]
해설
차수 3의 B+ 트리에서 9, 8, 7을 차례로 넣으면 루트 5 아래 내부 노드 3과 8이 있고, 리프가 2 / 3 / 5·7 / 8·9인 높이 3의 트리가 된다.
노드당 키는 최대 2개이며, 처음 트리(2·3·5 삽입 → 리프 2 / 3·5)에서 보듯 넘친 리프는 왼쪽 1개·오른쪽 2개로 분할하고 오른쪽 리프의 첫 키를 부모로 복사한다.
9 삽입: 리프 3·5·9가 넘쳐 3 / 5·9로 분할, 5가 루트로 올라가 루트는 3·5가 된다.
8 삽입: 리프 5·8·9가 넘쳐 5 / 8·9로 분할, 8이 올라가 루트가 3·5·8로 넘친다. 내부 노드는 가운데 키 5를 새 루트로 올리고 3과 8로 나뉜다.
7 삽입: 리프 5에 여유가 있어 5·7이 된다.
- 루트 5·8 아래 리프가 2·3 / 5·7 / 8·9인 높이 2 트리: 9 삽입 시 생긴 리프 2와 3이 합쳐질 일이 없고 루트 분할도 반영되지 않았다.
- 루트 7 아래 내부 노드가 3·5와 8인 트리: 루트로 올라가는 키는 넘친 내부 노드 3·5·8의 가운데 키 5여야 하며, 7은 마지막 삽입으로 분할을 일으키지 않는다.
- 오른쪽 내부 노드가 7·8이고 리프 5와 7이 분리된 트리: 7 삽입 시 리프 5에 빈자리가 있으므로 분할이 일어나지 않는다.
오류나 개정된 내용이 보이면 알려주세요
