Spatial databases are specialized database management systems designed to handle and store data containing geographic or spatial information. In 1994, R.H. Güting defined spatial databases not just as database management systems but as systems providing spatial data types with support for spatial operations within query languages. These databases optimize spatial data processing through spatial indexes and efficient join algorithms, such as spatial joins.
Spatial databases are closely related to Geographic Information Systems (GIS), which are systems used to collect, store, manage, analyze, and display various types of geographic data. Spatial databases form the core component of GIS, managing and processing spatial data. GIS, integrated with spatial databases, facilitates the querying, editing, and analysis of geographic information.
Spatial Database Architectures
Spatial database architectures primarily fall into three categories:
- Layered Architecture: Adds spatial extensions as an independent module on top of traditional DBMS.
- Integrated Architecture: Natively incorporates spatial functions within the database software.
- Extensible Architecture: Uses DBMS’s own customizable data types to support spatial functionality.
Types and Formats of Spatial Databases
A variety of spatial database products are available, including commercial and open-source types.
- Commercial spatial databases: Oracle Spatial, Informix spatial data blade, IBM DB2 Spatial Extender, and ESRI SDE are popular examples, often offering comprehensive functions and support.
- Open-source spatial databases: MySQL and PostgreSQL/PostGIS are widely adopted due to their open-source nature.
Spatial Data Standards and Formats
The Open Geospatial Consortium (OGC), formerly known as OpenGIS, is an international organization dedicated to developing standards to achieve interoperability between different systems. OpenGIS specifications include the Simple Features Specification (SFS), which defines representations and manipulations for geometric objects (e.g., points, lines, surfaces) across various programming environments. Spatial data formats for data exchange include Well-Known Text (WKT).
Spatial Data Types in MySQL
MySQL supports spatial data types such as Geometry (non-instantiable), Point, Curve, LineString, Surface, Polygon, GeometryCollection, MultiPoint, MultiCurve, MultiLineString, MultiSurface, and MultiPolygon. These types enable storing various complex spatial objects.