390 likes | 643 Views
Introduction to Spatial Databases. Donghui Zhang CCIS Northeastern University. What is spatial database?. A database system that is optimized to store and query spatial objects: Point: a hotel, a car Line: a road segment Polygon: landmarks, layout of VLSI. Road Network.
E N D
Introduction to Spatial Databases Donghui Zhang CCIS Northeastern University
What is spatial database? • A database system that is optimized to store and query spatial objects: • Point: a hotel, a car • Line: a road segment • Polygon: landmarks, layout of VLSI Road Network Satellite Image VLSI Layout
Are spatial databases useful? • Geographical Information Systems • e.g. data: road network and places of interest. • e.g. usage: driving directions, emergency calls, standalone applications. • Environmental Systems • e.g. data: land cover, climate, rainfall, and forest fire. • e.g. usage: find total rainfall precipitation. • Corporate Decision-Support Systems • e.g. data: store locations and customer locations. • e.g. usage: determine the optimal location for a new store. • Battlefield Soldier Monitoring Systems • e.g. data: locations of soldiers (w/wo medical equipments). • e.g. usage: monitor soldiers that may need help from each one with medical equipment.
Shortest-Path Query Fastest-Path Query MapQuest.com
Driving directions as you go. • Find nearest Wal-Mart or hospital. NN Query
Range query ArcGIS 9.2, ESRI
Are spatial databases useful? • Geographical Information Systems • e.g. data: road network and places of interest. • e.g. usage: driving directions, emergency calls, standalone applications. • Environmental Systems • e.g. data: land cover, climate, rainfall, and forest fire. • e.g. usage: find total rainfall precipitation. • Corporate Decision-Support Systems • e.g. data: store locations and customer locations. • e.g. usage: determine the optimal location for a new store. • Battlefield Soldier Monitoring Systems • e.g. data: locations of soldiers (w/wo medical equipments). • e.g. usage: monitor soldiers that may need help from each one with medical equipment.
Are spatial databases useful? • Geographical Information Systems • e.g. data: road network and places of interest. • e.g. usage: driving directions, emergency calls, standalone applications. • Environmental Systems • e.g. data: land cover, climate, rainfall, and forest fire. • e.g. usage: find total rainfall precipitation. • Corporate Decision-Support Systems • e.g. data: store locations and customer locations. • e.g. usage: determine the optimal location for a new store. • Battlefield Soldier Monitoring Systems • e.g. data: locations of soldiers (w/wo medical equipments). • e.g. usage: monitor soldiers that may need help from each one with medical equipment.
Are spatial databases useful? • Geographical Information Systems • e.g. data: road network and places of interest. • e.g. usage: driving directions, emergency calls, standalone applications. • Environmental Systems • e.g. data: land cover, climate, rainfall, and forest fire. • e.g. usage: find total rainfall precipitation. • Corporate Decision-Support Systems • e.g. data: store locations and customer locations. • e.g. usage: determine the optimal location for a new store. • Battlefield Soldier Monitoring Systems • e.g. data: locations of soldiers (w/wo medical equipments). • e.g. usage: monitor soldiers that may need help from each one with medical equipment.
NN(Bob) = George George John Bob Bill Mike
Who will seek help from me? RNN(Bob) = {John, Mike} George John Bob Bill Mike RNN query
And beyond the “space” … • 2004 NBA dataset*: each player has 17 attributes • “Spatial Data”: an object is a point in a 17-dimensional space • Who are the best players? • i.e. not “dominated” by any other player. Skyline query * www.databaseBasketball.com
And beyond the “space” … • 2004 NBA dataset*: each player has 17 attributes • “Spatial Data”: an object is a point in a 17-dimensional space • Who are the best players? • i.e. not “dominated” by any other player. Skyline query * www.databaseBasketball.com
And beyond the “space” … • 2004 NBA dataset*: each player has 17 attributes • “Spatial Data”: an object is a point in a 17-dimensional space • Who are the best players? • i.e. not “dominated” by any other player. Skyline query * www.databaseBasketball.com
And beyond the “space” … • 2004 NBA dataset*: each player has 17 attributes • “Spatial Data”: an object is a point in a 17-dimensional space • Who are the best players? • i.e. not “dominated” by any other player. Skyline query * www.databaseBasketball.com
And beyond the “space” … • 2004 NBA dataset*: each player has 17 attributes • “Spatial Data”: an object is a point in a 17-dimensional space • Who are the best players? • i.e. not “dominated” by any other player. Skyline query * www.databaseBasketball.com
And beyond the “space” … • 2004 NBA dataset*: each player has 17 attributes • “Spatial Data”: an object is a point in a 17-dimensional space • Who are the best players? • i.e. not “dominated” by any other player. Skyline query * www.databaseBasketball.com
Research goals in spatial databases • Support spatial database queries efficiently! • range query, aggregation query, NN query, RNN query, optimal-location query, fastest-path query, skyline query, … • Which statement is the best in a large spatial database? (a) Both an O(n2) algorithm and an O(n) algorithm are efficient. (b) An O(n2) algorithm is not efficient, but an O(n) algorithm is. (c) Neither an O(n2) algorithm nor an O(n) algorithm is efficient. Answer: (c)! Even a linear algorithm is not efficient!
Research goals in spatial databases • Example of a linear algorithm: to find my nearest Wal-mart, compare my location with all Wal-marts in the world. • Example of a quadratic algorithm: to find the skyline of NBA players, compare every player against all other players (to see if it is dominated). • Sample scenario: • Disk page size: 8KB. • Database size: 1GB = 131,072 disk page. • Let each disk I/O be 10-3 second. • O(n): 131 seconds 2 minutes. (Not efficient!) • O(n2): 200 days! (Out of the question!)
How can you do better than O(n)? • Answer: use (disk-based) index structures! • However, 1-dim index structures, e.g. the B+-tree, are not efficient. • E.g. to search for hotels in Boston…
A 1-dim index is not good enough Suppose a B+-tree exists on X.
B+-tree Root • disk-based: stored on disk, load to memory the needed part. • paginated: every node is a disk page of fixed size (e.g. 8KB). • balanced: all leaf nodes have the same distance from root. • dynamically-updateable: dynamic insertion/deletion • leaf-storage: all records are stored in leaf nodes. • min-capacity: every node (except the root) is at least half full. 17 24 5 13 30 39* 2* 3* 5* 7* 8* 19* 20* 22* 24* 27* 38* 29* 33* 34* 14* 16*
B+-tree Root • Exact match query: find the record with key=15. • Load to memory the nodes along a single path from root to leaf. 17 24 5 13 30 39* 2* 3* 5* 7* 8* 19* 20* 22* 24* 27* 38* 29* 33* 34* 14* 16*
B+-tree Root • Range search query: find the records [15, 25]. • Note that leaf nodes are linked together. • So a range search = exact match + horizontal scan. 17 24 5 13 30 39* 2* 3* 5* 7* 8* 19* 20* 22* 24* 27* 38* 29* 33* 34* 14* 16*
A 1-dim index is not good enough Suppose a B+-tree exists on X.
A 1-dim index is not good enough Suppose a B+-tree exists on X.
A 1-dim index is not good enough Suppose a B+-tree exists on Y.
Solution: spatial index! • E.g. the R-tree, the HB-tree. • Similar to the B+-tree: disk-based, paginated, balanced, dynamically updateable, leaf-storage, min-capacity. • Different from the B+-tree: clusters objects which are close to each other in multiple dimensions (vs. one).
Selected spatial queries (I) • Range query: find the objects in a given range. • Aggregation query: find some aggregate value (e.g. COUNT) of the objects in a given range. • NN query: find the nearest neighbor of a query location. • RNN query: find the objects closer to a given location than to other objects. • shortest/fastest query: find the shortest/fastest path in a road network.
Selected spatial queries (II) • Optimal-location query: find the optimal location in a given region to build a new franchise store. • Skyline query: find the objects not dominated (i.e. worse in all dimensions) by any other object. • Join query: find all pairs of intersecting objects, one in each dataset (e.g. find cities near lakes).