Base de datos optimizada para datos que representan objetos en un espacio geométrico
Una base de datos espacial es una base de datos de propósito general (generalmente una base de datos relacional ) que se ha mejorado para incluir datos espaciales que representan objetos definidos en un espacio geométrico , junto con herramientas para consultar y analizar dichos datos.
La mayoría de las bases de datos espaciales permiten la representación de objetos geométricos simples, como puntos , líneas y polígonos . Algunas bases de datos espaciales manejan estructuras más complejas, como objetos 3D , coberturas topológicas , redes lineales y redes irregulares trianguladas (TIN). Si bien las bases de datos típicas se han desarrollado para gestionar varios tipos de datos numéricos y de caracteres , dichas bases de datos requieren una funcionalidad adicional para procesar los tipos de datos espaciales de manera eficiente, y los desarrolladores a menudo han agregado tipos de datos geométricos o de características .
Una base de datos geográfica (o geodatabase ) es una base de datos espacial georreferenciada que se utiliza para almacenar y manipular datos geográficos (o geodatos, es decir, datos asociados a una ubicación en la Tierra), [a] especialmente en sistemas de información geográfica (SIG). Casi todos los sistemas de gestión de bases de datos relacionales y relacionales de objetos actuales tienen extensiones espaciales, y algunos proveedores de software SIG han desarrollado sus propias extensiones espaciales para sistemas de gestión de bases de datos.
El Consorcio Geoespacial Abierto (OGC) desarrolló la especificación Simple Features (publicada por primera vez en 1997) [1] y establece estándares para agregar funcionalidad espacial a los sistemas de bases de datos. [2] El estándar SQL/MM Spatial ISO/IEC es parte del lenguaje de consulta estructurado y el estándar multimedia que extiende Simple Features. [3]
Características
La funcionalidad principal agregada por una extensión espacial a una base de datos es uno o más tipos de datos espaciales , que permiten el almacenamiento de datos espaciales como valores de atributos en una tabla. [4] Lo más común es que un único valor espacial sea un primitivo geométrico (punto, línea, polígono, etc.) basado en el modelo de datos vectoriales . Los tipos de datos en la mayoría de las bases de datos espaciales se basan en la especificación OGC Simple Features para representar primitivos geométricos. Algunas bases de datos espaciales también admiten el almacenamiento de datos ráster . Debido a que todas las ubicaciones geográficas deben especificarse de acuerdo con un sistema de referencia espacial , las bases de datos espaciales también deben permitir el seguimiento y la transformación de los sistemas de coordenadas. En muchos sistemas, cuando se define una columna espacial en una tabla, también incluye una opción de sistema de coordenadas, elegido de una lista de sistemas disponibles que se almacena en una tabla de búsqueda.
La segunda extensión de funcionalidad importante en una base de datos espacial es la adición de capacidades espaciales al lenguaje de consulta (por ejemplo, SQL ); estas proporcionan a la base de datos espacial las mismas operaciones de consulta, análisis y manipulación que están disponibles en el software SIG tradicional. En la mayoría de los sistemas de gestión de bases de datos relacionales, esta funcionalidad se implementa como un conjunto de nuevas funciones que se pueden utilizar en las instrucciones SQL SELECT. El estándar del Open Geospatial Consortium especifica varios tipos de operaciones :
- Medición: Calcula la longitud de una línea, el área de un polígono, la distancia entre geometrías, etc.
- Geoprocesamiento: modificar entidades existentes para crear otras nuevas, por ejemplo creando una zona de influencia alrededor de ellas, intersectando entidades, etc.
- Predicados: Permite realizar consultas de tipo verdadero/falso sobre relaciones espaciales entre geometrías. Algunos ejemplos son "¿se superponen dos polígonos?" o "¿hay alguna residencia ubicada a una milla del área en la que planeamos construir el vertedero?" (consulte DE-9IM ).
- Constructores de geometría: crea nuevas geometrías, generalmente especificando los vértices (puntos o nodos) que definen la forma.
- Funciones de observador: consultas que devuelven información específica sobre una característica, como la ubicación del centro de un círculo.
Algunas bases de datos sólo admiten conjuntos simplificados o modificados de estas operaciones, especialmente en los casos de sistemas NoSQL como MongoDB y CouchDB .
Índice espacial
Una base de datos espacial utiliza un índice espacial para optimizar las consultas espaciales . Los sistemas de bases de datos utilizan índices para buscar rápidamente valores ordenando los valores de los datos en un orden lineal (por ejemplo, alfabético); sin embargo, esta forma de indexar los datos no es óptima para las consultas espaciales en un espacio bidimensional o tridimensional. En cambio, las bases de datos espaciales utilizan un índice espacial diseñado específicamente para el ordenamiento multidimensional. [5] Los métodos de índice espacial comunes incluyen:
Consulta espacial
Una consulta espacial es un tipo especial de consulta de base de datos compatible con bases de datos espaciales, incluidas las geodatabases. Las consultas difieren de las consultas SQL no espaciales en varios aspectos importantes. Dos de los más importantes son que permiten el uso de tipos de datos geométricos como puntos, líneas y polígonos y que estas consultas consideran la relación espacial entre estas geometrías.
Los nombres de las funciones para las consultas difieren entre las geodatabases. A continuación se muestran algunas de las funciones integradas en PostGIS , una geodatabase gratuita que es una extensión de PostgreSQL (el término "geometría" se refiere a un punto, una línea, un cuadro u otra forma bidimensional o tridimensional): [7]
Prototipo de función: functionName (parámetro(s)): tipo de retorno
- ST_Distance(geometría, geometría): número
- ST_Equals(geometría, geometría): booleano
- ST_Disjoint(geometría, geometría): booleano
- ST_Intersects(geometría, geometría): booleano
- ST_Touches(geometría, geometría): booleano
- ST_Crosses(geometría, geometría): booleano
- ST_Overlaps(geometría, geometría): booleano
- ST_Contains(geometría, geometría): booleano
- ST_Length(geometría): número
- ST_Area(geometría): número
- ST_ Centroide (geometría): geometría
- ST_Intersection(geometría, geometría): geometría
De este modo, una unión espacial entre una capa de puntos de ciudades y una capa de polígonos de países podría realizarse en una declaración SQL extendida espacialmente de la siguiente manera:
SELECT * FROM cities, countries WHERE ST_Contains(countries.shape, cities.shape)
La operación de superposición vectorial Intersect (un elemento central del software SIG) podría replicarse como:
SELECT ST_Intersection(veg.shape, soil.shape) int_poly, veg.*, soil.* FROM veg, soil where ST_Intersects(veg.shape, soil.shape)
Sistemas de gestión de bases de datos espaciales
Lista
- AllegroGraph : una base de datos de gráficos que proporciona un mecanismo para el almacenamiento y la recuperación eficientes de coordenadas geoespaciales bidimensionales para los datos del Marco de descripción de recursos . [ cita requerida ] Incluye una sintaxis de extensión para consultas SPARQL .
- ArangoDB - una base de datos multimodelo que proporciona capacidad de geoindexación.
- Apache Drill : un motor de consultas SQL MPP para consultar grandes conjuntos de datos. Drill admite funciones y tipos de datos espaciales [8] similares a PostgreSQL.
- Geodatabase Esri (Enterprise, Mobile): una estructura de base de datos espacial y un modelo lógico patentados que se pueden implementar en varias bases de datos relacionales, tanto comerciales (Oracle, MS SQL Server, Db2) como de código abierto (PostgreSQL, SQLite)
- Caliper amplía Raima Data Manager con tipos de datos espaciales, funciones y utilidades.
- CouchDB es un sistema de base de datos basado en documentos que se puede habilitar espacialmente mediante un complemento llamado Geocouch
- Elasticsearch es un sistema de base de datos basado en documentos que admite dos tipos de datos geográficos: campos geo_point que admiten pares lat/lon, y campos geo_shape, que admiten puntos, líneas, círculos, polígonos, multipolígonos, etc. [9]
- GeoMesa es una base de datos espacio-temporal basada en la nube creada sobre Apache Accumulo y Apache Hadoop (también es compatible con Apache HBase , Google Bigtable , Apache Cassandra y Apache Kafka ). GeoMesa es compatible con todas las funciones simples de OGC y un complemento GeoServer.
- H2 admite tipos de geometría [10] e índices espaciales [11] a partir de la versión 1.3.173 (28 de julio de 2013). Una extensión llamada H2GIS disponible en Maven Central brinda compatibilidad total con las funciones simples de OGC .
- Cualquier edición de IBM Db2 puede habilitarse espacialmente para implementar la funcionalidad espacial de OpenGIS con funciones y tipos espaciales de SQL.
- Las extensiones de IBM Informix Geodetic and Spatial Datablade se instalan automáticamente al utilizarlas y amplían los tipos de datos de Informix para incluir varios sistemas de coordenadas estándar y compatibilidad con índices RTree. Los datos geodésicos y espaciales también se pueden incorporar con la compatibilidad con datos de series temporales de Informix para realizar un seguimiento de objetos en movimiento a lo largo del tiempo.
- Linter SQL Server admite tipos espaciales y funciones espaciales de acuerdo con las especificaciones de OpenGIS.
- Microsoft SQL Server tiene soporte para tipos espaciales desde la versión 2008
- La extensión MonetDB/GIS para MonetDB agrega funciones simples de OGS a la base de datos relacional de almacenamiento en columnas . [12]
- MySQL DBMS implementa el tipo de datos geometry , además de algunas funciones espaciales implementadas de acuerdo con las especificaciones de OpenGIS. [13] Sin embargo, en MySQL versión 5.5 y anteriores, las funciones que prueban relaciones espaciales están limitadas a trabajar con rectángulos delimitadores mínimos en lugar de las geometrías reales. Las versiones de MySQL anteriores a 5.0.16 solo admitían datos espaciales en tablas MyISAM. A partir de MySQL 5.0.16, InnoDB, NDB, BDB y ARCHIVE también admiten funciones espaciales.
- Neo4j : una base de datos de gráficos que puede crear índices 1D y 2D como B-tree , Quadtree y curva de Hilbert directamente en el gráfico
- OpenLink Virtuoso ha soportado SQL/MM desde la versión 6.01.3126, [14] con mejoras significativas que incluyen GeoSPARQL en Open Source Edition 7.2.6 y en Enterprise Edition 8.2.0 [15].
- Oracle Espacial
- El DBMS (sistema de gestión de bases de datos) PostgreSQL utiliza la extensión PostGIS para implementar una funcionalidad espacial compatible con OGC [16] , incluida la geometría de tipos de datos estandarizados y las funciones correspondientes.
- Redis con la API Geo. [17]
- RethinkDB admite índices geoespaciales en 2D.
- SAP HANA admite la geoespacialidad con SPS08. [18]
- Smallworld VMDS , la base de datos GIS nativa de GE Smallworld
- SpaceTime es una base de datos espaciotemporal comercial construida sobre un índice multidimensional propietario similar a la familia de árboles k -d , pero creado utilizando un enfoque de abajo hacia arriba y adaptado a una distribución espacio-temporal particular de datos.
- Spatial Query Server de Boeing habilita espacialmente Sybase ASE.
- SpatiaLite extiende SQLite con tipos de datos espaciales, funciones y utilidades.
- Tarantool admite consultas geoespaciales con índice RTREE. [19]
- Teradata Geospatial incluye funcionalidad espacial 2D (compatible con OGC) en su sistema de almacenamiento de datos.
- Vertica Place , la extensión geoespacial para HP Vertica , agrega características espaciales compatibles con OGC a la base de datos relacional de almacenamiento en columnas . [20]
Tabla de sistemas libres especialmente para el procesamiento de datos espaciales
Véase también
Notas
- ^ El término "geodatabase" también puede referirse específicamente a un conjunto de formatos de bases de datos espaciales propietarios, Geodatabase (Esri) .
Referencias
- ^ McKee, Lance (2016). "Historia de OGC (detallada)". OGC . Consultado el 12 de julio de 2016 .
[...] 1997 [...] OGC publicó la Especificación de características simples de OpenGIS, que especifica la interfaz que permite que diversos sistemas se comuniquen en términos de "características simples" que se basan en geometría 2D. Los tipos de geometría admitidos incluyen puntos, líneas, cadenas de líneas, curvas y polígonos. Cada objeto geométrico está asociado con un Sistema de referencia espacial, que describe el espacio de coordenadas en el que se define el objeto geométrico.
- ^
Página de inicio de OGC
- ^ Kresse, Wolfgang; Danko, David M., eds. (2010). Manual Springer de información geográfica (1. ed.). Berlín: Springer. págs. 82–83. ISBN 9783540726807.
- ^ Yue, P.; Tan, Z. "DM-03 - DBMS relacionales y sus extensiones espaciales". Cuerpo de conocimientos de GIS&T . UCGIS . Consultado el 5 de enero de 2023 .
- ^ Zhang, X.; Du, Z. "Indexación espacial DM-66". Cuerpo de conocimientos de GIS&T . UCGIS . Consultado el 5 de enero de 2023 .
- ^ Güting, Ralf Hartmut; Schneider, Markus (2005). Mover bases de datos de objetos . Morgan Kaufman. pag. 262.ISBN 9780120887996.
- ^ "Referencia de funciones de PostGIS". Manual de PostGIS . OSGeo . Consultado el 4 de enero de 2023 .
- ^ [1] Documentación de la función geoespacial de Drill
- ^ "Consultas geográficas | Guía de Elasticsearch [7.15] | Elastic".
- ^ Documentación del tipo de geometría H2
- ^ H2 crea documentación de índice espacial
- ^ "GeoSpatial – MonetDB". 4 de marzo de 2014.
- ^ "Manual de referencia de MySQL 5.5 - 12.17.1. Introducción a MySQL Spatial Support". Archivado desde el original el 2013-04-30 . Consultado el 2013-05-01 .
- ^ OpenLink Software. «9.34. Tipos de datos geométricos y compatibilidad con índices espaciales» . Consultado el 24 de octubre de 2018 .
- ^ OpenLink Software (23 de octubre de 2018). «Nuevas versiones de Virtuoso Enterprise y Open Source Editions» . Consultado el 24 de octubre de 2018 .
- ^ "PostGIS certificado por OGC".
- ^ "Referencia de comandos – Redis".
- ^ "Portal de ayuda de SAP" (PDF) .
- ^ "RTREE". tarantool.org . Archivado desde el original el 13 de diciembre de 2014.
- ^ "HP Vertica Place". 2 de diciembre de 2015.
- ^ "Geografía".
- ^ "Neo4j Spatial es una biblioteca de utilidades para Neo4j que facilita la habilitación de operaciones espaciales sobre datos. En particular, puede agregar índices espaciales a datos ya ubicados y realizar operaciones espaciales". GitHub . 2019-02-18.
- ^ "Referencia de comandos ReQL - RethinkDB".
Lectura adicional
- Bases de datos espaciales: un recorrido, Shashi Shekhar y Sanjay Chawla, Prentice Hall, 2003 ( ISBN 0-13-017480-7 )
- Bases de datos espaciales: con aplicación a los SIG Philippe Rigaux, Michel Scholl y Agnes Voisard. Morgan Kaufmann Publishers . 2002 ( ISBN 1-55860-588-6 )
- Evaluación de sistemas de gestión de datos para Big Data geoespacial Pouria Amirian, Anahid Basiri y Adam Winstanley. Saltador. 2014 ( ISBN 9783319091563 )
Enlaces externos
- Introducción a PostgreSQL PostGIS
- PostgreSQL PostGIS como componentes en una arquitectura orientada a servicios SOA
- Un esquema de alarma de seguridad basado en activadores para objetos en movimiento en redes de carreteras Sajimon Abraham, P. Sojan Lal, publicado por Springer Berlin / Heidelberg-2008.
- geodatabase Centro de recursos de ArcGIS descripción de una geodatabase