토픽 53 / 66·확률적 자료구조
R-Tree
R-Tree
다차원 공간 객체(점, 선, 면)를 경계 상자(MBR, Minimum Bounding Rectangle)로 그룹화하여 계층적으로 인덱싱하는 트리 자료구조로, 공간 데이터베이스와 GIS에서 범위 쿼리와 공간 조인에 사용
목적: 공간 인덱싱, 범위 쿼리, 최근접 이웃, GIS 데이터 관리
특징: MBR 기반, B-트리 변형, 중복 가능, 디스크 최적화
구성요소: ① MBR(Minimum Bounding Rectangle): 객체를 감싸는 최소 경계 사각형 ② 내부 노드: 하위 MBR 그룹 ③ 리프 노드: 실제 객체 저장 ④ 최대/최소 항목 수
동작
- •삽입: 면적 증가 최소 MBR 선택 → 재귀 삽입 → 오버플로우 시 분할
- •검색: MBR 겹침 확인 → 재귀 탐색
- •범위 쿼리: 쿼리 MBR과 겹치는 모든 노드 탐색
분할 전략: 선형 분할(빠름), 제곱 분할(품질), R*-트리(최적화)
시간 복잡도: 삽입·검색·삭제 O(log n), 범위 쿼리 O(k + log n) - k는 결과 수
공간 복잡도: O(n)
장점: 공간 쿼리 효율, 범위·KNN 지원, 디스크 I/O 최적화, 다양한 객체 타입
단점: 구현 복잡도, MBR 중복(검색 효율↓), 고차원 비효율
적용사례: GIS(지리 정보 시스템), 공간 데이터베이스(PostgreSQL PostGIS), CAD, 게임 엔진
변형: R+-Tree(중복 제거), R*-Tree(최적화), Hilbert R-Tree
비교: R-Tree(공간객체/MBR) vs KD-Tree(점/분할) vs B-Tree(1차원/정렬)
연관: GIS, 공간 인덱스, MBR, PostgreSQL PostGIS