Spatial database

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

A spatial database, or geodatabase is a database that is optimized to store and query 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 are designed to manage various numeric and character types of data, additional functionality needs to be added for databases to process spatial data types efficiently. 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.[1]

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 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

Some databases support only simplified or modified sets of these operations, especially in cases of NoSQL systems like MongoDB and CouchDB.

Spatial index

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:

Spatial database systems

List

  • All OpenGIS Specifications compliant products[2]
  • Open source spatial databases and APIs, some of which are OpenGIS compliant[3]
  • 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 be used to 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
  • Vertica Place the geo-spatial extension for HP Vertica adds OGC compliant spatial features to the relational column-store database.[4]
  • 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.[5]
  • Linter SQL Server supports spatial types and spatial functions according to the OpenGIS specifications.
  • MySQL DBMS implements the datatype geometry plus some spatial functions that have been implemented according to the OpenGIS specifications.[6] 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.
  • Neo4jGraph database that can build 1D and 2D indexes as Btree, Quadtree and Hilbert curve directly in the graph
  • AllegroGraph – a Graph database 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
  • MongoDB, RavenDB, and RethinkDB support geospatial indexes in 2D
  • Esri has a number of both single-user and multiuser geodatabases.
  • SpaceBase is a real-time spatial database.[7]
  • CouchDB a document based database system that can be spatially enabled by a plugin called Geocouch
  • CartoDB is a cloud based geospatial database on top of PostgreSQL with PostGIS.
  • StormDB is an upcoming cloud based database on top of PostgreSQL with geospatial capabilities.
  • AsterixDB is an open source Big Data Management System with native geospatial capabilities.
  • SpatialDB by MineRP is the world's first open standards (OGC) spatial database with spatial type extensions for the Mining Industry.[8]
  • H2 supports geometry types[9] and spatial indices[10] 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.[11]
  • Tarantool supports geospatial queries with RTREE index.
  • SAP HANA supports geospatial with SPS08 [1].

Table of free systems especially for spatial data processing

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 funcions, 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 GPL 3 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

See also

References

Further reading

External links