A spatial database is a database
that is optimized for storing and querying data that represents objects defined in a geometric space. Most spatial databases allow the representation of simple geometric objects such as points, lines and polygons. Some spatial databases handle more complex structures such as 3D objects, topological coverages, linear networks, and TINs
. While typical databases have developed to manage various numeric and character types of data
, such databases require additional functionality to process spatial data types efficiently, and developers have often added ''geometry'' or ''feature'' data types. The Open Geospatial Consortium (OGC)
developed the Simple Features
specification (first released in 1997) and sets standards for adding spatial functionality to database systems. The ''SQL/MM Spatial'' ISO/IEC standard is a part the SQL/MM multimedia standard and extends the Simple Features standard with data types that support circular interpolations.
A geodatabase (also geographical database and geospatial database) is a database
of geographic data
, such as countries
, administrative divisions
, and related information. Such databases can be useful for websites that wish to identify the locations of their visitors for customization purposes.
Database systems use indexes to quickly look up values; however, this way of indexing data is not optimal for spatial queries
. 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 operations and many more are specified by the Open Geospatial Consortium
*Spatial Measurements: Computes line length, polygon area, the distance between geometries, 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 about spatial relationships between geometries. Examples include "do two polygons overlap" or 'is there a residence located within a mile of the area we are planning to build the landfill?' (see DE-9IM
*Geometry Constructors: Creates new geometries, usually by specifying the vertices (points or nodes) which define the shape.
*Observer Functions: Queries which return specific information about a feature such as the location of the center of a circle
Some databases support only simplified or modified sets of these operations, especially in cases of NoSQL
systems like MongoDB
Spatial indices are used by spatial databases (databases which store information related to objects in space) to optimize spatial queries
. Conventional index types do not efficiently handle spatial queries such as how far two points differ, or whether points fall within a spatial area of interest. Common spatial index methods include:
*Grid (spatial index)
: Typically the preferred method for indexing spatial data. Objects (shapes, lines and points) are grouped using the minimum bounding rectangle
(MBR). Objects are added to an MBR within the index that will lead to the smallest increase in its size.
– an m-tree index can be used for the efficient resolution of similarity queries on complex objects as compared using an arbitrary metric.
*Binary space partitioning
(BSP-Tree): Subdividing space by hyperplanes.
A spatial query is a special type of database query
supported by spatial databases, including geodatabases. The queries differ from non-spatial SQL
queries in several important ways. Two of the most important are that they allow for the use of geometry data types such as points, lines and polygons and that these queries consider the spatial relationship between these geometries.
The function names for queries differ across geodatabases. The following list contains commonly used functions built into PostGIS
, a free geodatabase which is a PostgreSQL extension (the term 'geometry' refers to a point, line, box or other two or three dimensional shape):
Function prototype: ''functionName (parameter(s)) : return type ''
*Distance(geometry, geometry) : number
*Equals(geometry, geometry) : boolean
*Disjoint(geometry, geometry) : boolean
*Intersects(geometry, geometry) : boolean
*Touches(geometry, geometry) : boolean
*Crosses(geometry, geometry) : boolean
*Overlaps(geometry, geometry) : boolean
*Contains(geometry, geometry) : boolean
*Length(geometry) : number
*Area(geometry) : number
(geometry) : geometry
Spatial database management systems
– a graph database
which provides a mechanism for efficient storage and retrieval of two-dimensional geospatial coordinates for Resource Description Framework
data. It includes an extension syntax for SPARQL
- a multi-model database which provides geoindexing capability.
extends the Raima
Data Manager with spatial datatypes, functions, and utilities.
a document-based database system that can be spatially enabled by a plugin called Geocouch
is a document-based database system that supports two types of geo data: geo_point fields which support lat/lon pairs, and geo_shape fields, which support points, lines, circles, polygons, multi-polygons, etc.
is a cloud-based spatio-temporal database built on top of Apache Accumulo
and Apache Hadoop
(also supports Apache HBase
, Google Bigtable
, Apache Cassandra
, and Apache Kafka
). GeoMesa supports full OGC Simple Features
and a GeoServer plugin.
supports geometry types and spatial indices as of version 1.3.173 (2013-07-28). An extension called H2GIS available on Maven Central gives full OGC Simple Features
* Any edition of IBM DB2
can be spatially-enabled to implement the OpenGIS spatial functionality with SQL spatial types and functions.
* IBM Informix
Geodetic and Spatial datablade extensions auto-install on use and expand Informix's datatypes to include multiple standard coordinate systems and support for RTree indexes. Geodetic and Spatial data can also be incorporated with Informix's Timeseries data support for tracking objects in motion over time.
* Linter SQL Server
supports spatial types and spatial functions according to the OpenGIS specifications.
* Microsoft SQL Server
has support for spatial types since version 2008
extension for MonetDB
adds OGS Simple Features to the relational column-store
DBMS implements the datatype ''geometry'', plus some spatial functions implemented according to the OpenGIS specifications. However, in MySQL version 5.5 and earlier, 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.
– a graph database
that can build 1D and 2D indexes as B-tree
and Hilbert curve
directly in the graph
* OpenLink Virtuoso
has supported SQL/MM since version 6.01.3126, with significant enhancements including GeoSPARQL
in Open Source Edition 7.2.6, and in Enterprise Edition 8.2.0
* Oracle Spatial
DBMS (database management system) uses the spatial extension PostGIS
to implement the standardized datatype ''geometry'' and corresponding functions.
with the Geo API.
supports geospatial indexes in 2D.
* SAP HANA
supports geospatial with SPS08.
* Smallworld VMDS
, the native GE Smallworld
* Spatial Query Server
spatially enables Sybase ASE.
with spatial datatypes, functions, and utilities.
supports geospatial queries with RTREE index.
* Teradata Geospatial
includes 2D spatial functionality (OGC-compliant) in its data warehouse system.
* Vertica Place
, the geo-spatial extension for HP Vertica
, adds OGC-compliant spatial features to the relational column-store
Table of free systems especially for spatial data processing
* Geographic information system
* Glacio-geological databases
* Location intelligence
* Multimedia database
* Nearest neighbor search
* Object-based spatial database
* Simple Features
* Spatial analysis
* Spatial ETL
* Spatiotemporal database
Further readingSpatial Databases: A Tour
Shashi Shekhar and Sanjay Chawla, Prentice Hall, 2003 ()Spatial Databases – With Application to GIS
Philippe Rigaux, Michel Scholl and Agnes Voisard. Morgan Kaufmann Publishers
. 2002 ()Evaluation of Data Management Systems for Geospatial Big Data
Pouria Amirian, Anahid Basiri and Adam Winstanley. Springer. 2014 ()
External linksAn introduction to PostgreSQL PostGISSOAA Trigger Based Security Alarming Scheme for Moving Objects on Road Networks
Sajimon Abraham, P. Sojan Lal, Published by Springer Berlin / Heidelberg-2008.
ArcGIS Resource Center description of a geodatabase