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 representing 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 developed the Simple Features specification (first released in 1997) and sets standards for adding spatial functionality to database systems. The SQL/MM Spatial ISO/EIC 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, cities, and related information. Such databases can be useful for websites that wish to identify the locations of their visitors for customization purposes.
Features of spatial databasesEdit
Database systems use indexes to quickly look up values and the way that most databases index 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 standard:
- 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
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)
- Z-order (curve)
- R-tree: 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.
- R+ tree
- R* tree
- Hilbert R-tree
- m-tree – an m-tree index can be used for the efficient resolution of similarity queries on complex objects as compared using an arbitrary metric.
- Point access method
- Binary space partitioning (BSP-Tree): Subdividing space by hyperplanes.
Spatial database systemsEdit
- All OpenGIS specifications compliant products
- Open-source spatial databases and APIs, some of which are OpenGIS-compliant
- Caliper extends the Raima Data Manager with spatial datatypes, functions, and utilities.
- Boeing's Spatial Query Server spatially enables Sybase ASE.
- Smallworld VMDS, the native GE Smallworld GIS database
- SpatiaLite extends Sqlite with spatial datatypes, functions, and utilities.
- IBM DB2 Spatial Extender can spatially-enable any edition of DB2, including the free DB2 Express-C, with support for spatial types
- ClusterPoint offers native indexed support for distances, range matching and polygon matching, as well as aggregation.
- Oracle Spatial
- Oracle Locator
- Vertica Place, the geo-spatial extension for HP Vertica, adds OGC-compliant spatial features to the relational column-store database.
- Microsoft SQL Server has support for spatial types since version 2008
- PostgreSQL DBMS (database management system) uses the spatial extension PostGIS to implement the standardized datatype geometry and corresponding functions.
- Teradata Geospatial includes 2D spatial functionality (OGC-compliant) in its data warehouse system.
- MonetDB/GIS extension for MonetDB adds OGS Simple Features to the relational column-store database.
- Linter SQL Server supports spatial types and spatial functions according to the OpenGIS specifications.
- MySQL 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.
- Neo4j – a graph database that can build 1D and 2D indexes as B-tree, Quadtree and Hilbert curve directly in the graph
- AllegroGraph – a graph database which provides a novel mechanism for efficient storage and retrieval of two-dimensional geospatial coordinates for Resource Description Framework data. It includes an extension syntax for SPARQL queries.
- MarkLogic, MongoDB, RavenDB, and RethinkDB support geospatial indexes in 2D.
- Esri has a number of both single-user and multiuser geodatabases.
- SpaceBase, a real-time spatial database.
- CouchDB a document-based database system that can be spatially enabled by a plugin called Geocouch
- CartoDB, a cloud-based geospatial database on top of PostgreSQL with PostGIS
- AsterixDB, an open-source big data management system with native geospatial capabilities
- Kinetica, a GPU-accelerated analytics database optimized for geospatial analytics on large datasets.
- MapD, an open source GPU-accelerated database and visualization platform for real-time analytics on large datasets, with a focus on geospatial data.
- SpatialDB by MineRP, the world's first open-standards (OGC) spatial database with spatial type extensions for the Mining Industry[need quotation to verify]
- H2 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 support.
- GeoMesa is a cloud-based spatio-temporal database built on top of Apache Accumulo and Apache Hadoop. GeoMesa supports full OGC Simple Features support and a GeoServer plugin.
- Ingres 10S and 10.2 include native comprehensive spatial support. Ingres includes the Geospatial Data Abstraction Library cross-platform spatial data translator.
- Tarantool supports geospatial queries with RTREE index.
- SAP HANA supports geospatial with SPS08 .
- Redis with the Geo API 
Table of free systems especially for spatial data processingEdit
|DBS||License||Distributed||Spatial objects||Spatial functions||PostgreSQL interface||UMN MapServer interface||Documentation||Modifiable||HDFS|
|GeoMesa||Apache License 2.0||yes||yes (Simple Features)||yes (JTS)||no (manufacturable with GeoTools)||no||parts of the functions, a few examples||with Simple Feature Access in Java Virtual Machine and Apache Spark are all kinds of tasks solvable||yes|
|ESRI GIS Tools for Hadoop||Apache License 2.0||yes||yes (own specific API)||yes (union, difference, intersect, clip, cut, buffer, equals, within, contains, crosses, and touches)||no||no||just briefly||forking||yes|
|Rasdaman||server GPL, client LGPL, enterprise proprietary||yes||just raster||raster manipulation with rasql||yes||with Web Coverage Service or Web Processing Service||detailed wiki||own defined function in enterprise edition||no|
|PostgreSQL with PostGIS||GNU General Public License||no||yes (Simple Features and raster)||yes (Simple Feature Access and raster functions)||yes||yes||detailed||SQL, in connection with R||no|
|Neo4J-spatial||GNU affero general public license||no||yes (Simple Features)||yes (contain, cover, covered by, cross, disjoint, intersect, intersect window, overlap, touch, within and within distance)||no||no||just briefly||fork of JTS||no|
|Postgres-XL with PostGIS||Mozilla public license and GNU general public license||yes||yes (Simple Features and raster)||yes (Simple Feature Access and raster functions)||yes||yes||PostGIS: yes, Postgres-XL: briefly||SQL, in connection with R or Tcl or Python||no|
|AsterixDB||Apache License 2.0||yes||yes (custom)||center, radius, distance, area, intersect and cell||no||no||good in Google Code||own datatypes, functions and indexes||possible|
|HadoopGIS||GNU General Public License||yes||yes (custom, no raster)||yes (contain, cover, covered by, cross, disjoint, intersect, overlap, within and nearest neighbor)||no||no||just briefly||forking||yes|
|H2GIS||LGPL 3 (since v1.3), GPL 3 before||no||yes (custom, no raster)||Simple Feature Access and custom functions for H2Network||yes||no||yes (homepage)||SQL||no|
|Ingres||GPL or proprietary||yes (if extension is installed)||yes (custom, no raster)||Geometry Engine, Open Source||no||with MapScript||just briefly||with C and OME||no|
- McKee, Lance (2016). "OGC History (detailed)". OGC. Retrieved 2016-07-12.
[...] 1997 [...] OGC released the OpenGIS Simple Features Specification, which specifies the interface that enables diverse systems to communicate in terms of 'simple features' which are based on 2D geometry. The supported geometry types include points, lines, linestrings, curves, and polygons. Each geometric object is associated with a Spatial Reference System, which describes the coordinate space in which the geometric object is defined.
- OGC Homepage
- (eds.), Wolfgang Kresse, David M. Danko (2010). Springer handbook of geographic information (1. ed.). Berlin: Springer. pp. 82–83. ISBN 9783540726807.
- All Registered Products at opengeospatial.org
- Open Source GIS website
- Wei Li (2008). "2.1 Spatio-temporal Databases". An Efficient Query System for High-dimensional Spatio-temporal Data. ProQuest. p. 12. ISBN 9780549797593. Retrieved 2016-07-07.
Commercial spatial database management systems include IBM DB2's Spatial Extender , Oracle's Spatial and Oracle Locator , and Microsoft's SQL Server 2008 , etc.
- "HP Vertica Place". 2 December 2015.
- "GeoSpatial – MonetDB". 4 March 2014.
- SpaceBase product page on the Parallel Universe website
- SpatialDB product page on the MineRP website
- H2 geometry type documentation
- H2 create spatial index documentation
- Ingres 10S datasheet on Actian website
- 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 Kaufmann Publishers. 2002 (ISBN 1-55860-588-6)
- Evaluation of Data Management Systems for Geospatial Big Data Pouria Amirian, Anahid Basiri and Adam Winstanley. Springer. 2014 (ISBN 9783319091563)
- An introduction to PostgreSQL PostGIS
- PostgreSQL PostGIS as components in a Service Oriented Architecture SOA
- A Trigger Based Security Alarming Scheme for Moving Objects on Road Networks Sajimon Abraham, P. Sojan Lal, Published by Springer Berlin / Heidelberg-2008.
- geodatabase ArcGIS Resource Center description of a geodatabase