Una base de datos espacial es una base de datos de propósito general (normalmente 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 triangulares irregulares (TIN). Si bien las bases de datos típicas se han desarrollado para gestionar diversos tipos de datos numéricos y de caracteres , requieren funcionalidades adicionales para procesar eficientemente los datos espaciales, por lo que los desarrolladores suelen añadir tipos de datos geométricos o de entidades .
Una base de datos geográfica (o geodatabase ) es una base de datos espacial georreferenciada , utilizada 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 objeto-relacionales actuales cuentan con extensiones espaciales, y algunos proveedores de software SIG han desarrollado sus propias extensiones espaciales para sistemas de gestión de bases de datos.
El Open Geospatial Consortium (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 forma parte del lenguaje de consulta estructurado y el estándar multimedia que extiende Simple Features. [ 3 ]
Características
La funcionalidad principal que agrega una extensión espacial a una base de datos es uno o más tipos de datos espaciales , que permiten almacenar datos espaciales como valores de atributos en una tabla. [ 4 ] Lo más común es que un único valor espacial sea una primitiva geométrica (punto, línea, polígono, etc.) basada 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 primitivas geométricas. Algunas bases de datos espaciales también admiten el almacenamiento de datos ráster . Dado 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 sistemas de coordenadas. En muchos sistemas, cuando se define una columna espacial en una tabla, también incluye una selecció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 ); esto proporciona 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 usar en sentencias SQL SELECT. El estándar del Open Geospatial Consortium especifica varios tipos de operaciones :
- Medición: Calcula la longitud de las líneas, el área de los polígonos, la distancia entre geometrías, etc.
- Geoprocesamiento: Modificar las entidades existentes para crear otras nuevas, por ejemplo, creando una zona de influencia a su alrededor, intersectando entidades, etc.
- Predicados: Permiten consultas de verdadero/falso sobre relaciones espaciales entre geometrías. Algunos ejemplos son "¿se superponen dos polígonos?" o "¿hay alguna residencia ubicada a menos de una milla del área donde planeamos construir el vertedero?" (ver DE-9IM ).
- Constructores de geometría: Crean nuevas geometrías, generalmente especificando los vértices (puntos o nodos) que definen la forma.
- Funciones de observación: 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 solo admiten conjuntos simplificados o modificados de estas operaciones, especialmente en el caso de sistemas NoSQL como MongoDB y CouchDB .
Índice espacial
Un índice espacial es utilizado por una base de datos espacial para optimizar las consultas espaciales , implementando métodos de acceso espacial. Los sistemas de bases de datos utilizan índices para buscar rápidamente valores ordenándolos linealmente (por ejemplo, alfabéticamente); sin embargo, esta forma de indexar datos no es óptima para consultas espaciales en espacios bidimensionales o tridimensionales. En cambio, las bases de datos espaciales utilizan un índice espacial diseñado específicamente para la ordenación multidimensional. [ 5 ] Los métodos comunes de indexación espacial incluyen:
- Particionamiento binario del espacio (árbol BSP): Subdivisión del espacio mediante hiperplanos.
- Jerarquía de volúmenes delimitadores (BVH)
- Geohash
- Cuadrícula (índice espacial)
- Código HHC
- Hilbert R-tree
- árbol k -d
- m-tree : un índice m-tree se puede utilizar para la resolución eficiente de consultas de similitud en objetos complejos comparados mediante una métrica arbitraria.
- Octree
- Árbol PH
- Árbol cuatripartito
- Árbol R : Generalmente, el método preferido para indexar datos espaciales. [ 6 ] Los objetos (formas, líneas y puntos) se agrupan utilizando el rectángulo delimitador mínimo (MBR). Los objetos se agregan a un MBR dentro del índice que produzca el menor aumento en su tamaño.
- Árbol R+
- Árbol R*
- Árbol UB
- Árbol X
- Orden Z (curva)
Consulta espacial
Una consulta espacial es un tipo especial de consulta de base de datos compatible con bases de datos espaciales, incluidas las geodatabases. Estas consultas se diferencian 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 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, línea, caja u otra forma bidimensional o tridimensional): [ 7 ]
Prototipo de función: functionName (parámetro(s)) : tipo de retorno
ST_Distance(geometry, geometry) : numberST_Equals(geometry, geometry) : booleanST_Disjoint(geometry, geometry) : booleanST_Intersects(geometry, geometry) : booleanST_Touches(geometry, geometry) : booleanST_Crosses(geometry, geometry) : booleanST_Overlaps(geometry, geometry) : booleanST_Contains(geometry, geometry) : booleanST_Length(geometry) : numberST_Area(geometry) : numberST_Centroid(geometry) : geometryST_Intersection(geometry, geometry) : geometry
Por lo tanto, 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 instrucción SQL extendida espacialmente de la siguiente manera:
SELECCIONAR * DE ciudades , países DONDE ST_Contains ( países.forma , ciudades.forma )La operación de superposición vectorial Intersect (un elemento central del software SIG) podría replicarse de la siguiente manera:
SELECCIONAR 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 es una base de datos gráfica que proporciona un mecanismo para el almacenamiento y la recuperación eficientes de coordenadas geoespaciales bidimensionales para datos del Resource Description Framework (RDF) . Incluye una sintaxis de extensión para consultas SPARQL .
- ArangoDB : una base de datos multimodelo que ofrece capacidad de geoindexación.
- Apache Drill : un motor de consultas SQL MPP para consultar grandes conjuntos de datos. Drill admite tipos de datos espaciales y funciones [ 8 ] similares a PostgreSQL.
- Apache Sedona admite el procesamiento geoespacial escalable y SQL espacial sobre Apache Spark para bases de datos y sistemas de análisis de big data. [ 9 ]
- Geodatabase de Esri (Enterprise, Mobile): una estructura de base de datos espacial y un modelo lógico propietarios 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 el gestor de datos de Raima con tipos de datos espaciales, funciones y utilidades.
- CouchDB es un sistema de base de datos basado en documentos que puede habilitarse 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 latitud/longitud, y campos geo_shape, que admiten puntos, líneas, círculos, polígonos, multipolígonos, etc. [ 10 ]
- GeoMesa es una base de datos espaciotemporal en la nube construida 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 con un complemento para GeoServer.
- H2 admite tipos de geometría [ 11 ] e índices espaciales [ 12 ] a partir de la versión 1.3.173 (28/07/2013). Una extensión llamada H2GIS, disponible en Maven Central, ofrece compatibilidad total con las características simples de OGC .
- Cualquier edición de IBM Db2 puede habilitarse para implementar la funcionalidad espacial de OpenGIS con tipos y funciones espaciales de SQL.
- Las extensiones de datos geodésicos y espaciales de IBM Informix se instalan automáticamente al usarlas y amplían los tipos de datos de Informix para incluir múltiples sistemas de coordenadas estándar y compatibilidad con índices RTree. Los datos geodésicos y espaciales también se pueden integrar con la compatibilidad de Informix con datos de series temporales para el 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 admite tipos espaciales desde la versión 2008.
- La extensión MonetDB/GIS para MonetDB agrega características simples de OGS a la base de datos relacional de almacenamiento en columnas . [ 13 ]
- MySQL DBMS implementa el tipo de dato geometry , además de algunas funciones espaciales implementadas según las especificaciones de OpenGIS. [ 14 ] Sin embargo, en MySQL versión 5.5 y anteriores, las funciones que prueban relaciones espaciales se limitan a trabajar con rectángulos delimitadores mínimos en lugar de las geometrías reales. Las versiones de MySQL anteriores a la 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 características espaciales.
- Neo4j : una base de datos de grafos que puede construir índices 1D y 2D como B-tree , Quadtree y curva de Hilbert directamente en el grafo.
- OpenLink Virtuoso ha sido compatible con SQL/MM desde la versión 6.01.3126, [ 15 ] con mejoras significativas que incluyen GeoSPARQL en Open Source Edition 7.2.6 y en Enterprise Edition 8.2.0 [ 16 ].
- Oracle Spatial
- El sistema de gestión de bases de datos PostgreSQL (DBMS) utiliza la extensión PostGIS para implementar la funcionalidad espacial compatible con OGC [ 17 ] , incluyendo geometría de tipo de datos estandarizada y funciones correspondientes.
- Redis con la API Geo. [ 18 ]
- RethinkDB admite índices geoespaciales en 2D.
- SAP HANA admite información geoespacial con SPS08. [ 19 ]
- 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 creada utilizando un enfoque ascendente y adaptada a una distribución espaciotemporal de datos particular.
- El servidor de consultas espaciales de Boeing habilita espacialmente Sybase ASE.
- SpatiaLite amplía las funcionalidades de SQLite con tipos de datos espaciales, funciones y utilidades.
- Tarantool admite consultas geoespaciales con índice RTREE. [ 20 ]
- 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 . [ 21 ]
- Wherobots es una plataforma de base de datos de análisis geoespacial basada en la nube construida sobre Apache Sedona . [ 22 ] Admite el procesamiento espacial y los datos para las industrias de movilidad, agrotecnología, seguros, energía, telecomunicaciones, comercio minorista y logística. [ 23 ]
Tabla de sistemas gratuitos, 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 . Recuperado 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, líneas paralelas, 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 principal 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 - Sistemas de gestión de bases de datos relacionales y sus extensiones espaciales" . Cuerpo de conocimientos de SIG y T. UCGIS . Consultado el 5 de enero de 2023 .
- ↑ Zhang, X.; Du, Z. "Indexación espacial DM-66" . Cuerpo de conocimientos de SIG&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 .
- ↑Documentación de la función geoespacial de perforación
- ↑ Forrest, Matt (13 de mayo de 2025). "Cómo ejecutar análisis geoespaciales escalables con Apache Sedona directamente desde su computadora portátil - Matt Forrest" . Recuperado el 10 de octubre de 2025 .
- ↑ "Consultas geográficas | Guía de Elasticsearch [ 7.15 ] | Elastic" .
- ↑ Documentación del tipo de geometría H2
- ↑ H2 crear documentación de índice espacial
- ↑ "GeoSpatial – MonetDB" . 4 de marzo de 2014.
- ↑ "Manual de referencia de MySQL 5.5 - 12.17.1. Introducción al soporte espacial de MySQL" . Archivado del original el 30 de abril de 2013. Consultado el 1 de mayo de 2013 .
- ↑ 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 ediciones de código abierto" . 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 del original el 13 de diciembre de 2014.
- ↑ "HP Vertica Place" . 2 de diciembre de 2015.
- ↑ Alamalhodaei, Aria (13 de junio de 2023). "Wherobots está construyendo una plataforma de datos para tratar los datos espaciales como un 'ciudadano de primera clase'"." . TechCrunch . Consultado el 24 de septiembre de 2025 .
- ↑ Rubinstein, David (30 de octubre de 2025). "Obtención de información de IA a partir de datos espaciales" . SD Times . Consultado el 3 de noviembre de 2025 .
- ↑ "GEOS" .
- ↑ "Neo4j Spatial es una biblioteca de utilidades para Neo4j que facilita la habilitación de operaciones espaciales en datos. En particular, puede agregar índices espaciales a datos ya localizados y realizar operaciones espaciales" . GitHub . 18 de febrero de 2019.
- ↑ "Referencia de comandos ReQL - RethinkDB" .
Lecturas adicionales
- Bases de datos espaciales: Un recorrido , Shashi Shekhar y Sanjay Chawla, Prentice Hall, 2003 ( ISBN) 0-13-017480-7)
- Bases de datos espaciales: con aplicaciones 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 y PostGIS
- PostgreSQL y PostGIS como componentes en una arquitectura orientada a servicios (SOA).
- Un sistema de alarma de seguridad basado en disparadores para objetos en movimiento en redes viales. Sajimon Abraham, P. Sojan Lal, publicado por Springer Berlin / Heidelberg-2008.
- Geodatabase Descripción de una geodatabase en el Centro de recursos de ArcGIS
- bases de datos espaciales
- Algoritmos geométricos