Download presentation
Presentation is loading. Please wait.
1
Multidimensional Index
K-D-B Tree Multidimensional Index
2
Characteristics Multi-way branch Height-balanced tree
Repeatedly divide area of the domain into disjoint sub-area A node in a tree corresponds to a (set of consecutive) disk page(s) Jaruloj Chongstitvatana K-D-B Tree
3
Example of Data Records
Table (stdntID, courseID, grade, year, smstr) Table (accID, branchID, saving, name, addr) Table (custID, age, gender, occupation, salary, children, promotion, since) Jaruloj Chongstitvatana K-D-B Tree
4
Nodes = Pages Region pages Point pages
Contain a set of <region, ptr. to page> Internal nodes Point pages Contain a set of <point, ptr. to data record> Leaf nodes Jaruloj Chongstitvatana K-D-B Tree
5
Region Pages Region The branching factor is determined by the
Xmax Xmin Ymax Ymin … Xmax Xmin Ymax Ymin Region PAGE PAGE The branching factor is determined by the page size and the size of each entry. Jaruloj Chongstitvatana K-D-B Tree
6
Point Pages X Y X Y X Y The branching factor of a point page is
… X Y X Y X Y DATA RECORD DATA RECORD DATA RECORD POINT The branching factor of a point page is usually larger than that of a region page. Jaruloj Chongstitvatana K-D-B Tree
7
Example Point page Point page Point page Point page
Jaruloj Chongstitvatana K-D-B Tree
8
Search Point query Point page Point page Point page Point page
Jaruloj Chongstitvatana K-D-B Tree
9
Insert Insert a point here and the point page overflows.
Jaruloj Chongstitvatana K-D-B Tree
10
Split Split a region r with page id p along xi
If r is on the right/page of xi then put <r, p> in the right/left page. Otherwise; For each children pc of p , split pc along xi Split r along xi into rleft and rright. Create 2 new pages with page id pleft and pright. Move children of p in the left region into pleft and children in the right region into pright. Return <rleft, pleft> and <rright, pright> . Jaruloj Chongstitvatana K-D-B Tree
11
Split: Example The page overflows, and is splitted.
This region is also splitted. This region is splitted. Jaruloj Chongstitvatana K-D-B Tree
12
Split: Example The region page is splitted.
The point page is also splitted. Children pages are transferred. Create a new region page. Jaruloj Chongstitvatana K-D-B Tree
13
How to find split axis Cyclic: x -> y -> x -> y -> …
Priority: x -> x -> y -> x -> x -> y -> … Possible one Jaruloj Chongstitvatana K-D-B Tree
14
Insert Insert a record with point a and location l in a tree with root r If r is NIL, then create a point page p and insert the record with <a,l> in p and return p. Otherwise; Search for a in the tree with root r until a point page, say p, is reached. Insert the record in the point page p. Jaruloj Chongstitvatana K-D-B Tree
15
Insert (cont’d) Insert a record with point a and location l in a tree with root r If the point page p is overflowed, then find an appropriate axis to split p into pleft and pright. If p is not the root, then change to p and pleft, and insert pright into the parent of p. If p is the root, then create a new root node with two children of pleft and pright. Jaruloj Chongstitvatana K-D-B Tree
16
Insert: Example Insert here and split point page if overflows.
Search for the given point until the point page is found. Insert here and split point page if overflows. Divide region. Jaruloj Chongstitvatana K-D-B Tree
17
Insert: Example Parent page overflows, then split the page.
This region is splitted. Jaruloj Chongstitvatana K-D-B Tree
18
Insert: Example The point page is splitted.
The region page is splitted. Jaruloj Chongstitvatana K-D-B Tree
19
Insert: Example The root node is overflowed, and then splitted.
Insert the new region page in its parent. Jaruloj Chongstitvatana K-D-B Tree
20
Insert: Example Create the new root node Jaruloj Chongstitvatana
K-D-B Tree
21
Delete Simple, if storage utilization is ignored.
Otherwise, an underfull page should be merged with another page. When 2 pages are merged, the region of the new page must be a valid region. A number of regions are joinable if their union is also a region. Jaruloj Chongstitvatana K-D-B Tree
22
Joinable Regions Jaruloj Chongstitvatana K-D-B Tree
23
Unjoinable Regions Jaruloj Chongstitvatana K-D-B Tree
24
Delete (cont’d) If a page p is underfull, merge sibling pages of p whose regions are joinable. If the newly-created page is overflowed, then split the page. Jaruloj Chongstitvatana K-D-B Tree
25
Further Discussion
26
Splitting Criteria Combine the two decisions ? Axis Value Cyclic
Priority Shape ? Value Area Number of data points Ratio ? Random ? Combine the two decisions ? Jaruloj Chongstitvatana K-D-B Tree
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.