Title: Spatial Information Systems SIS
1Spatial Information Systems (SIS) COMP
4025 Spatial access methods Indexing
2Spatial Indexes
Used to speed up spatial queries Example Point
query return the geometric object that contains
a given query point Sequentially scanning all
objects of a large collection to check whether
they contain the query point involves a high
number of disk accesses and the repetition of the
evaluation of computationally expensive geometric
predicates (e.g., containment, intersection,
etc.) Reducing the set of objects to be
processed is highly desirable
3Indexes for object-based and space-based
representations
Indexes for raster data based on recursive
subdivision of the space Example
quadtrees Indexes for vector data differ
depending on the type data (extensions of
quadtrees are used also for vector data)
4Vector Data Indexing
- Different indexing methods are used for point,
linear and polygonal data - In the case of collections of polygons, instead
of indexing the object geometries themselves,
whose shapes might be complex, we consider an
approximation of the geometry and index it
instead - Most commonly used approximation minimum
bounding rectangle (MBR) also called minimum
bounding box (MBB)
5MBRs
- By using the MBR as the geometric key for
building the spatial index, we save the cost of
evaluating expensive geometric predicates during
index traversal (as geometric tests againsts an
MBR is constant) - Example point-in-polygon test
- In addition, the space required to store a
rectangle is constant (2 points)
(x,y)
(x,y)
6MBRs (cont.d)
- An operation involving a spatial predicate on a
collection of objects indexed on their MBRs is
performed in two steps - Filter step selects the objects whose MBR
satisfies the spatial predicate (by traversing
the spatial index and applying the predicate to
the MBRs) - Refinement step the objects that pass the
filter step are a superset of the solution. An
MBR might satisfy the predicate but the
corresponding object might not
P
MBR
obj
7Refinement step
Refinement step the objects that pass the
filter step are a superset of the solution. An
MBR might satisfy the predicate but the
corresponding object might not Therefore, in
this step the spatial predicate is applied to the
actual geometry of the object
8Oracle Spatial Query Model
Exact Result Set
9Oracle Spatial Indexing Methods
- Two types of indexes are implemented in Oracle
Spatial - R-trees
- Quadtrees
10R-trees
- Based on MBRs (minimum bounding rectangles)
- Defined for indexing 2D objects (can be extended
to higher dimensions but implemented only for 2D
in Oracle Spatial) - MBRs of geometric objects form the leaves of the
index tree - Multiple MBRs are grouped into larger rectangles
(MBRs) to form intermediate nodes in the tree - Repeat until one rectangle is left that contains
everything
11R-trees
R-tree
1
2
3
4
8
6
5
9
7
12Remark nodes
- Intermediate nodes store
- MBRs of collections of objects
- Leaf nodes store
- MBRs of individual object
- Pointers to storage location of the exact
geometry
13Searching R-tree
- We consider two types of queries
- point query what object contains the query
point - window query what objects intersect the query
window
14Basic spatial queries (1)
- Containment Query Given a spatial object O, find
all objects in the collection that completely
contain O. When O is a point, the query is called
Point Query
P
Containment Query
Point Query (also Point-in-polygon, or Point
Location)
15Basic spatial queries (2)
- Region Query Given a region R, find all objects
in the collection that intersect R. When R is a
rectangle, the query is called Window Query
R
R
Region Query
Window Query
16Searching R-trees window query
- Compare search window with MBRs stored at each
node - starting at root node
- Stop at leaf nodes
- compare contained geometries with search window
17Searching R-trees window query
R-tree
1
2
3
4
8
6
5
9
7
18Example remarks
- If no MBRs are used check the query window
against all geometries for intersection
(computationally expensive) - In some cases, using R-trees to structure the set
of MBRs can cause more tests (against MBRs) to be
done. In general, this is not the case
19Searching R-trees point query
- Test query point for inclusion in MBRs stored at
each node - starting at root node
- Stop at leaf nodes
- Test query point for inclusion in exact
geometries
20Searching R-trees window query
R-tree
1
2
3
4
8
6
5
9
7
21Building R-trees
- An R-tree is a depth-balanced tree in which each
node corresponds to a disk page (i.e., the number
of entries in each node is limited) - The structure satisfies the following properties
- For all nodes in the tree (except the root) the
number of entries is between m and M - The root has at least two children (unless it is
a leaf) - All leaves are at the same level
22Example (1)
R-tree
1
2
3
4
8
6
5
9
7
m 2 M 3
23Example (2)
R-tree
m 2 M 4
24Important remarks
- Note that the MBRs (at all levels) can overlap
- A rectangle is stored as child of a bigger
rectangle only if completely contained in it - Example