위키득계정 ↗
기술

B 플러스 트리

B 플러스 트리기술
영어
B+ tree
내부 노드
키 경계와 자식 참조
잎 노드
값 또는 레코드 참조
균형 조건
모든 잎의 깊이가 같음
B 플러스 트리는 내부 노드로 탐색 경로를 안내하고 잎 노드에 데이터 항목이나 레코드 참조를 두는 균형 다진 탐색 트리다. 모든 잎의 깊이를 같게 유지하며 정렬된 키의 탐색과 범위 순회에 활용한다.

많은 분기를 두는 이유

노드 하나에 여러 키와 자식 참조를 담을 수 있다. 저장 장치의 블록이나 페이지에 맞춰 많은 분기를 두면 이진 트리보다 적은 단계로 많은 항목에 접근할 수 있다. 실제 분기 수는 키와 참조의 크기, 페이지 크기 등의 영향을 받는다.

탐색과 범위 순회

내부 노드의 구분 키를 비교하여 해당하는 자식으로 내려가고 잎에서 항목을 찾는다. 순서대로 연결된 잎을 이용하면 시작 키를 찾은 뒤 인접한 항목들을 계속 읽을 수 있다. 예를 들어 120 이상 160 미만의 키를 구하는 질의는 시작점 탐색과 이후의 범위 순회로 나눌 수 있다.

삽입과 삭제

새 항목이 들어갈 잎에 공간이 부족하면 노드를 분할하고 부모의 구분 정보를 갱신한다. 분할이 위로 전파되어 루트가 바뀔 수도 있다. 삭제 뒤 점유 조건이 깨지면 이웃 노드와 재분배하거나 병합한다. 정확한 점유 기준과 예외는 트리 정의와 구현에 따라 확인해야 한다.

용어와 구현

기본 B 트리와 달리 데이터 값은 잎에 모으고 내부 노드는 탐색용으로 사용한다. 다만 제품 문서가 B 트리라는 이름으로 여러 변형을 통칭하기도 한다. 인덱스가 정렬되어 있다는 사실만으로 테이블의 물리적 행 배치까지 같은 순서라고 결론 내릴 수는 없다.

관련 문서

데이터베이스 / 자료구조 / 이진 탐색 트리 / 배열 / 알고리즘 / 시간 복잡도 / 정렬 알고리즘 / 캐시