B* 트리

From CS Wiki
현대 RDBMS에서 가장 많이 사용되는 인덱스 구조로, B 트리의 개선 버전

특징[edit | edit source]

  • 노드의 약 2/3이상이 채워지는 B트리
  • 노드가 꽉 차면 분리하지 않고, 키와 포인터를 재배치하여 다른 형제 노드로 옮김
  • 삽입/ 삭제 시 발생하는 노드 분리를 줄이려고 고안됨
  • 데이터가 기본적으로 정렬되어 저장됨
  • Max/Min의 효율적 처리 가능

구성[edit | edit source]

  • Root 노드
  • Branch 노드
  • Leaf 노드

규칙[edit | edit source]

차수가 m인 B*트리는 다음 조건을 만족하는 B 트리이다

  • 공집합이거나 높이가 1이상인 m원 탐색 트리이다.
  • Root 노드는 2개 이상 2(2m-2)/3+1 개 이하의 자식노드를 갖는다.
  • 내부노드는 최소한 (2m-1)/3개의 자식노드 를 갖다.
  • 모든 Leaf 노드는 동일한 레벨에 놓인다.
  • 포인터가 k개인 Leaf가 아닌 노드는 k-1개의 키를 갖는다. (Root 노드 포함)

같이 보기[edit | edit source]