Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
R-Trees
Index Structures for Spatial Data
Outlines
Spatial Applications
Requirements for indexing spatial data
Properties of R-trees
Insertion
Deletion
2
R-Trees: Index Structures for Spartial Data
2301474
Spatial Applications
Maps
3
Google Earth
Navigation Systems
Computer Aided Design
Automobile design
Interior design
Computer Graphics
R-Trees: Index Structures for Spartial Data
2301474
Requirements for Indexing Spatial Data
Support both point and region data.
Support data in 2-, 3-, 4-dimensional spaces.
Support spatial queries such as overlap, adjacent,
in, contain, to the north of, …
4
R-Trees: Index Structures for Spartial Data
2301474
Types of Spatial Data
Point Data
Points in a multidimensional space
E.g., Raster data such as satellite imagery, where
each pixel stores a measured value
E.g., Feature vectors extracted from text
Region Data
Objects have spatial extent with location and
Boundary
DB typically uses geometric approximations
constructed using line segments, polygons, etc.,
called vector data.
5
II. Spatial Databases
2301474
Types of Spatial Queries
Spatial Range Queries
Nearest-Neighbor Queries
Find the 10 cities nearest to Madison
Results must be ordered by proximity
Spatial Join Queries
6
Find all cities within 50 miles of Madison
Query has associated region (location, boundary)
Answer includes ovelapping or contained data regions
Find all cities near a lake
Expensive, join condition involves regions and proximity
II. Spatial Databases
2301474
Applications of Spatial Data
Geographic Information Systems (GIS)
Computer-Aided Design/Manufacturing
Store spatial objects such as surface of airplane
fuselage
Range queries and spatial join queries are common
Multimedia Databases
7
E.g., ESRI’s ArcInfo; OpenGIS Consortium
Geospatial information
All classes of spatial queries and data are common
Images, video, text, etc. stored and retrieved by content
First converted to feature vector form; high
dimensionality
Nearest-neighbor queries are the most common
II. Spatial Databases
2301474
Single-Dimensional Indexes
B+ trees are fundamentally single-dimensional indexes.
When we create a composite search key B+ tree, e.g., an index
on <age, sal>, we effectively linearize the 2-dimensional space
since we sort entries first by age and then by sal.
Consider entries:
<11, 80>, <12, 10>
<12, 20>, <13, 75>
90
80
70
60
50
40
30
20
10
0
B+ tree
order
10
8
II. Spatial Databases
11
12
13
14
2301474
Concepts of R-Trees
9
The minimum bounding
rectangle (MBR) of an object is
the smallest box in the ndimensional space bounding
the object.
In an n-dimensional space, the
index of a set of spatial objects
is an n-dimensional box
bounding the set of objects.
Bounding boxes are used as
indices in R-trees.
Similar to B+ trees, but indices
are allowed to be overlapped.
R-Trees: Index Structures for Spartial Data
2301474
Properties of R-Trees
An index record is composed of
10
R
Q
P
S
Each node contains at most M
index records.
a bounding rectangle B, and
a pointer to a child node or a
pointer to a data record.
Non-root nodes contain between
M/2 and M index records.
The root node contains at least 2
index records.
Q
R S
R-trees are height-balanced.
R-Trees: Index Structures for Spartial Data
P
2301474
Example
A
H
C
D
I
J
A
B
E
K
D
L
P
Q
J
R
E
L
M
I
Q
P
F
11
N
K
H
C
M
G
F
N
R
G
R-Trees: Index Structures for Spartial Data
B
2301474
Query I
A
H
C
D
I
J
A
B
E
K
D
L
P
Q
J
R
E
L
M
I
Q
P
F
12
N
K
H
C
M
G
F
N
R
G
R-Trees: Index Structures for Spartial Data
B
2301474
Query II
A
H
C
D
I
J
A
B
E
K
D
L
P
Q
J
R
E
L
M
I
Q
P
F
13
N
K
H
C
M
G
F
N
R
G
R-Trees: Index Structures for Spartial Data
B
2301474
Insertion
Choose a leaf node L to insert
the new record E.
IF there is a room in L:
14
Different criteria for choosing
the node.
1
THEN insert E in L.
ELSE split L into L and L’, with
records in L and E.
4
2
3
5
4
5
Add the index of L’ in the
parent of L.
R-Trees: Index Structures for Spartial Data
2301474
Insertion
1
15
2
3
4
5
4
5
R-Trees: Index Structures for Spartial Data
2301474
Insert without Split
A
H
C
D
I
J
A
B
E
K
D
L
P
Q
J
R
E
L
M
I
Q
P
F
16
N
K
H
C
M
G
F
N
R
G
R-Trees: Index Structures for Spartial Data
B
2301474
Insert with Split
A
C
H
I
D
J
A
B
E
L
K
D
M
J
N
Q
P
L
X
R
E
Y
M
I
Q
P
F
17
Y
K
H
C
X
G
F
N
R
G
R-Trees: Index Structures for Spartial Data
B
2301474
Splitting a Node
Splitting can be propagated up the tree.
If the root node is split, a new root node is created.
18
R-Trees: Index Structures for Spartial Data
2301474
Splitting
A
C
D
E
L
19
B
M
X
G
F
Y
N
R-Trees: Index Structures for Spartial Data
P
Q
R
2301474
Splitting
A
C
E’
D
L
20
B
X
E
M
G
F
Y
N
R-Trees: Index Structures for Spartial Data
P
Q
R
2301474
Splitting
A
C
E’
D
L
21
B
X
E
M
G
F
Y
N
R-Trees: Index Structures for Spartial Data
P
Q
R
2301474
Splitting
A
C
E’
D
L
22
B’
B
X
E
M
G
F
Y
N
R-Trees: Index Structures for Spartial Data
P
Q
R
2301474
Deletion
Find the leaf node L containing the record E to be
deleted.
Remove E from L.
Set Q = {}.
WHILE (E is not the root and has < m elements)
Remove the pointer to E from its parent node.
Adjust the bounding rectangle of the parent of E.
Set Q = Q U {E}, E=parent of E.
For each node N in Q
23
Re-insert all elements in N in the correct level.
R-Trees: Index Structures for Spartial Data
2301474
How to split
24
R-Trees: Index Structures for Spartial Data
2301474
Variations of R-trees
25
R-Trees: Index Structures for Spartial Data
2301474