Spatial Database
Encyclopedia
A spatial database is a database
that is optimized to store and query data that is related to objects in space, including points, lines and polygons. While typical databases can understand various numeric and character types of data, additional functionality needs to be added for databases to process spatial data types. These are typically called geometry or feature. The Open Geospatial Consortium
created the Simple Features
specification and sets standards for adding spatial functionality to database systems.
. Instead, spatial databases use a spatial index to speed up database operations.
In addition to typical SQL queries such as SELECT statements, spatial databases can perform a wide variety of spatial operations. The following query types and many more are supported by the Open Geospatial Consortium
:
Not all spatial databases support these query types.
s (databases which store information related to objects in space) to optimize spatial queries
. Indexes used by non-spatial databases cannot effectively handle features such as how far two points differ and whether points fall within a spatial area of interest. Common spatial index methods include:
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
that is optimized to store and query data that is related to objects in space, including points, lines and polygons. While typical databases can understand various numeric and character types of data, additional functionality needs to be added for databases to process spatial data types. These are typically called geometry or feature. The Open Geospatial Consortium
Open Geospatial Consortium
The Open Geospatial Consortium , an international voluntary consensus standards organization, originated in 1994. In the OGC, more than 400 commercial, governmental, nonprofit and research organizations worldwide collaborate in a consensus process encouraging development and implementation of open...
created the Simple Features
Simple Features
Simple feature access , is both an OpenGIS and ISO Standard that specifies a common storage model of geographical data using well-known text . The geometries are also associated with spatial reference systems...
specification and sets standards for adding spatial functionality to database systems.
Features of spatial databases
Database systems use indexes to quickly look up values and the way that most databases index data is not optimal for spatial queriesSpatial query
A spatial query is a special type of database query supported by geodatabases and spatial databases. The queries differ from SQL queries in several important ways...
. Instead, spatial databases use a spatial index to speed up database operations.
In addition to typical SQL queries such as SELECT statements, spatial databases can perform a wide variety of spatial operations. The following query types and many more are supported by the Open Geospatial Consortium
Open Geospatial Consortium
The Open Geospatial Consortium , an international voluntary consensus standards organization, originated in 1994. In the OGC, more than 400 commercial, governmental, nonprofit and research organizations worldwide collaborate in a consensus process encouraging development and implementation of open...
:
- Spatial Measurements: Finds the distance between points, polygon area, etc.
- Spatial Functions: Modify existing features to create new ones, for example by providing a buffer around them, intersecting features, etc.
- Spatial Predicates: Allows true/false queries such as 'is there a residence located within a mile of the area we are planning to build the landfill?' (see DE-9IMDE-9IMIn geometry, a dimensionally extended nine-intersection model is a topological model used to describe the spatial relation of two geometries in two-dimensions...
) - Constructor Functions: Creates new features with an SQL query specifying the vertices (points of nodes) which can make up lines. If the first and last vertex of a line are identical the feature can also be of the type polygon (a closed line).
- Observer Functions: Queries which return specific information about a feature such as the location of the center of a circle
Not all spatial databases support these query types.
Spatial Index
Spatial indexes are used by spatial databaseSpatial Database
A spatial database is a database that is optimized to store and query data that is related to objects in space, including points, lines and polygons. While typical databases can understand various numeric and character types of data, additional functionality needs to be added for databases to...
s (databases which store information related to objects in space) to optimize spatial queries
Spatial query
A spatial query is a special type of database query supported by geodatabases and spatial databases. The queries differ from SQL queries in several important ways...
. Indexes used by non-spatial databases cannot effectively handle features such as how far two points differ and whether points fall within a spatial area of interest. Common spatial index methods include:
- Grid (spatial index)Grid (spatial index)In the context of a spatial index, a grid is a regular tessellation of a manifold or 2-D surface that divides it into a series of contiguous cells, which can then be assigned unique identifiers and used for spatial indexing purposes...
- Z-order (curve)Z-order (curve)In mathematical analysis and computer science, Z-order, Morton order, or Morton code is a space-filling curve which maps multidimensional data to one dimension while preserving locality of the data points. It was introduced in 1966 by G. M. Morton...
- QuadtreeQuadtreeA quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes. This...
- OctreeOctreeAn octree is a tree data structure in which each internal node has exactly eight children. Octrees are most often used to partition a three dimensional space by recursively subdividing it into eight octants. Octrees are the three-dimensional analog of quadtrees. The name is formed from oct + tree,...
- UB-treeUB-treeThe UB-tree as proposed by Rudolf Bayer and Volker Markl is a balanced tree for storing and efficiently retrieving multidimensional data. It is basically a B+ tree with records stored according to Z-order, also called Morton order...
- R-treeR-treeR-trees are tree data structures used for spatial access methods, i.e., for indexing multi-dimensional information such as geographical coordinates, rectangles or polygons. The R-tree was proposed by Antonin Guttman in 1984 and has found significant use in both research and real-world applications...
: Typically the preferred method for indexing spatial data. Objects (shapes, lines and points) are grouped using the minimum bounding rectangleMinimum bounding rectangleThe minimum bounding rectangle , also known as bounding box or envelope, is an expression of the maximum extents of a 2-dimensional object within its 2-D coordinate system, in other words min, max, min, max...
(MBR). Objects are added to an MBR within the index that will lead to the smallest increase in its size. - R+ treeR+ treeAn R+ tree is a method for looking up data using a location, often coordinates, and often for locations on the surface of the earth. Searching on one number is a solved problem; searching on two or more, and asking for locations that are nearby in both x and y directions, requires craftier...
- R* tree
- Hilbert R-treeHilbert R-treeHilbert R-tree, an R-tree variant, is an index for multidimensional objects like lines, regions, 3-D objects, or high dimensional feature-based parametric objects. It can be thought of as an extension to B+-tree for multidimensional objects....
- X-treeX-treeIn computer science, an X-tree is an index tree structure based on the R-tree used for storing data in many dimensions. It differs from R-trees, R+-trees and R*-trees because it emphasizes prevention of overlap in the bounding boxes, which increasingly becomes a problem in high dimensions...
- kd-treeKd-treeIn computer science, a k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are a useful data structure for several applications, such as searches involving a multidimensional search key...
- m-treeM-treeM-trees are tree data structures that are similar to R-trees and B-trees. It is constructed using a metric and relies on the triangle inequality for efficient range and k-NN queries....
- an m-tree index can be used for the efficient resolution of similarity queries on complex objects as compared using an arbitrary metric.
Geography
A geodatabase is a database designed to store, query, and manipulate geographic information and spatial data of low dimensionality. It is a specialized type of spatial database often with optimizations for 2 and 3 dimensions, raster data and Euclidean distance.Spatial database systems
- All OpenGIS Specifications compliant products
- Open sourceOpen sourceThe term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
spatial databases and APIs, some of which are OpenGIS compliant - Boeing's Spatial Query ServerSpatial Query ServerThe Boeing Company's Spatial Query Server is a commercially available product which enables a Sybase database to contain spatial features.-Geometric Types:*Circle*Ellipse*Point - a point in 2D space. plane.*Voxel - a point in 3D space...
(Official Site) spatially enables Sybase ASE. - SmallworldSmallworldSmallworld was a GIS company founded in Cambridge, England, in 1989 by Dick Newell and others. It grew to become the global market leader for GIS in utilities and communications, according to Daratech. In September 2000, it was acquired by GE Energy, a division of General Electric...
VMDSVMDSVMDS abbreviates the relational database technology called Version Managed Data Store provided by GE Energy as part of its Smallworld technology platform and was designed from the outset to store and analyse the highly complex spatial and topological networks typically used by enterprise utilities...
, the native GE SmallworldSmallworldSmallworld was a GIS company founded in Cambridge, England, in 1989 by Dick Newell and others. It grew to become the global market leader for GIS in utilities and communications, according to Daratech. In September 2000, it was acquired by GE Energy, a division of General Electric...
GIS database - SpatiaLiteSpatialiteSpatiaLite is a spatial extension to SQLite, providing vector geodatabase functionality. It is similar to PostGIS, Oracle Spatial, and SQL Server with spatial extensions, although SQLite/SpatiaLite aren't based on client-server architecture: they adopt a simpler personal architecture. i.e...
extends SqliteSQLiteSQLite is an ACID-compliant embedded relational database management system contained in a relatively small C programming library. The source code for SQLite is in the public domain and implements most of the SQL standard...
with spatial datatypes, functions, and utilities. - IBM DB2IBM DB2The IBM DB2 Enterprise Server Edition is a relational model database server developed by IBM. It primarily runs on Unix , Linux, IBM i , z/OS and Windows servers. DB2 also powers the different IBM InfoSphere Warehouse editions...
Spatial Extender can be used to enable any edition of DB2, including the free DB2 Express-CIBM DB2 Express-CIBM DB2 Express-C is a free to download, use and redistribute edition of the IBM DB2 data server, which has both XML database and relational database management system features.-History:...
, with support for spatial types - OracleOracle DatabaseThe Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....
Spatial - Microsoft SQL ServerMicrosoft SQL ServerMicrosoft SQL Server is a relational database server, developed by Microsoft: It is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network...
has support for spatial types since version 2008 - PostgreSQLPostgreSQLPostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...
DBMS (database management system) uses the spatial extension PostGISPostGISPostGIS is an open source software program that adds support for geographic objects to the PostgreSQL object-relational database. PostGIS follows the Simple Features for SQL specification from the Open Geospatial Consortium .-Features:...
to implement the standardized datatype geometry and corresponding functions. - MySQLMySQLMySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...
DBMS implements the datatype geometry plus some spatial functions that haven't been implemented according to the OpenGIS specifications. Functions that test spatial relationships are limited to working with minimum bounding rectangles rather than the actual geometries. MySQL versions earlier than 5.0.16 only supported spatial data in MyISAM tables. As of MySQL 5.0.16, InnoDB, NDB, BDB, and ARCHIVE also support spatial features. - Neo4j - Graph databaseGraph databaseA graph database uses graph structures with nodes, edges, and properties to represent and store data. By definition, a graph database is any storage system that provides index-free adjacency. General graph databases that can store any graph are distinct from specialized graph databases such as...
that can build 1D and 2D indexes as Btree, QuadtreeQuadtreeA quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes. This...
and Hilbert curveHilbert curveA Hilbert curve is a continuous fractal space-filling curve first described by the German mathematician David Hilbert in 1891, as a variant of the space-filling curves discovered by Giuseppe Peano in 1890....
directly in the graphGraph (mathematics)In mathematics, a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected objects are represented by mathematical abstractions called vertices, and the links that connect some pairs of vertices are called edges... - AllegroGraphAllegroGraphAllegroGraph is a closed source Graph database, an emerging category of databases. In contrast with a Relational database, a graph database considers each stored item to have any number of relationships. These relationships can be viewed as links, which together form a network, or graph....
- a Graph databaseGraph databaseA graph database uses graph structures with nodes, edges, and properties to represent and store data. By definition, a graph database is any storage system that provides index-free adjacency. General graph databases that can store any graph are distinct from specialized graph databases such as...
provides a novel mechanism for efficient storage and retrieval of two-dimensional geospatial coordinates for Resource Description FrameworkResource Description FrameworkThe Resource Description Framework is a family of World Wide Web Consortium specifications originally designed as a metadata data model...
data. It includes an extension syntax for SPARQLSPARQLSPARQL is an RDF query language; its name is an acronym that stands for SPARQL Protocol and RDF Query Language. It was made a standard by the RDF Data Access Working Group of the World Wide Web Consortium, and considered as one of the key technologies of semantic web...
queries - MongoDBMongoDBMongoDB is an open source, high-performance, schema-free, document-oriented database written in the C++ programming language...
supports geospatial indexes in 2D
See also
- Object-based spatial databaseObject-based spatial databaseAn object-based spatial database is a spatial database that stores the location as objects.The object-based spatial model treats the world as surface littered with recognizable objects An object-based spatial database is a spatial database that stores the location as objects.The object-based...
- Spatial index
- Spatial querySpatial queryA spatial query is a special type of database query supported by geodatabases and spatial databases. The queries differ from SQL queries in several important ways...
- Spatial analysisSpatial analysisSpatial analysis or spatial statistics includes any of the formal techniques which study entities using their topological, geometric, or geographic properties...
- Location intelligenceLocation intelligenceLocation Intelligence is the capacity to organize and understand complex phenomena through the use of geographic relationships inherent in all information. By combining geographic- and location-related data with other business data, organizations can gain critical insights, make better decisions...
Further reading
- Spatial Databases: A Tour, Shashi Shekhar and Sanjay Chawla, Prentice Hall, 2003 (ISBN 0-13-017480-7)
- ESRI Press. ESRI Press titles include Modeling Our World: The ESRI Guide to Geodatabase Design, and Designing Geodatabases: Case Studies in GIS Data Modeling , 2005 Ben Franklin Award winner, PMA, The Independent Book Publishers Association.
- Spatial Databases - With Application to GIS Philippe Rigaux, Michel Scholl and Agnes Voisard. Morgan-Kauffman Publishers. 2002 (ISBN 1-55860-588-6)
External links
- An introduction to PostgreSQL PostGIS
- PostgreSQL PostGIS as components in a Service Oriented Architecture SOAService-oriented architectureIn software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
- A Trigger Based Security Alarming Scheme for Moving Objects on Road Networks Sajimon Abraham, P. Sojan Lal, Published by Springer Berlin / Heidelberg-2008.