k-dimensional 트리
특징
삽입
검색 : 위치 (4,8)의 점은 무엇인가?
삭제
단점
k-dimentional B-tree
→ 2-d-B 트리 예
다중키 레코드 검색을 위한 인덱스 레코드 구조
범위 질의 지원
구조
특성
검색
부분 범위 질의
→ 차원이 모두 범위로 명세
부분 일치 질의
→ 차원의 일부가 점, 나머지는 범위
완전 일치 질의
→ 모든 차원이 점으로 명세
root-id = NULL → 종료
아니면 변수 page는 루트 페이지 가리킴
변수 page가 점페이지 가리키면
변수 page가 영역 페이지인 경우
삽입
원소 값 xi에 따라 영역 Ix * Iy 분할하는 방법
원소 값 xi에 따라 점페이지 분할 방법
원소 값 xi에 따라 영역 페이지 분할 방법
영역의 엔트리들 분할 방법
인덱스 레코드 <점, 주소> 쌍 삽입하는 알고리즘
root-id = NULL
<점, 주소> 쌍이 삽입되어야 할 페이지를 완전 일치 질의 수행으로 탐색
점 페이지에 오버플로 발생
분할된 페이지의 부모 영역 페이지에 있는 원래의 <영역, 페이지-id>를 새로운 <왼쪽 영역, 페이지-id>, <오른쪽 영역, 페이지-id>로 대체
루트 페이지가 분할하게 되면 새로운 루트 페이지 생성하여 조정
→ k-d-B트리의 높이 하나 증가
삭제
점 페이지에서 <점, 주소> 쌍을 완전 일치 질의로 검색 후 삭제
공간 이용률 높이기 위한 재구성
두 영역의 합이 보다 큰 직사각형 형태의 영역을 구성하게 되면 합병 가능
→ (A, B), (A, C) 합병 불가
→ (B, C)는 가능
격자 화일
특징
구성
삽입
격자 화일의 질의
선형 눈금자 (SX, SY) 검사
격자 배열 인덱스 (2,1) 결정
디스크에 있는 격자 배열 G[2,1] 접근
→ 데이터 페이지 번호 P3 검색
디스크 데이터 페이지 P3 접근
→ 페이지 P3에서 데이터 d 검색
삭제
점, 영역, 곡선, 표면, 볼륨 데이터
곡선이나 표면같은 개체의 경계 표현하는 경우
영역이나 볼륨같은 개체 내부 표현하는 경우
→ 두 경우 상이한 자료구조 사용
영역 사분 트리
2차원 영역 데이터 표현에 많이 사용
이미지를 표현하는 2진수의 배열을 동일한 크기의 사분면으로 연속적으로 분할 → 서브사분면으로 분할, 가변 해상도 자료 구조
루트 노드는 이진 배열 전체에 대응
점 사분 트리
R-트리
MBR
특성
R-트리 표현
검색
영역 검색 질의
k-NN 질의
삽입
리프노드 선택
리프노드에 데이터 저장
트리 재조정
트리 높이 증가
- 루트 노드가 분할되어야 한다면 → 새로운 루트 노드 만들어 저장
- 이때 높이가 1증가한다.
⇒ 리프 노드 선택, 노드 분할 방법에 따라 성능에 영향
MBR이 크면
MBR이 작으면
삽입으로 인한 노드 분할 방법
분할된 두 노드 MBR의 합이 최소가 되도록 분할
→ 검색시 불필요한 노드 탐색 감소 (질의 성능 증가)
삽입 결과
삭제
분석
k차원 데이터를 처리하기 위한 B-트리의 확장으로서 중간노드와 리프노드로 구성된 높이 균형 트리
탐색 연산 : 포함과 중첩 관계 중요
- 포함과 중첩 관계가 최소일 때 가장 효율적
- 최소 포함 : 죽은 공간, 빈 공간의 양 감소시킴
- 중첩 : 높이 h, 레벨 h-i에서 k개의 노드 중첩
→ 최악은 리프노드에 대해 k개의 경로 접근 필요
→ i에서 ik페이지 접근 필요
→ 각 노드의 분기율이 적어도 m이 되기 때문
루트를 제외한 모든 노드에서 최악의 공간 활용도 : m/M
→ 트리의 높이를 감소시키면 공간 활용도는 증가