Download Bases de datos espaciales Tema 0: Presentación
Document related concepts
Transcript
05/10/2010 Datos espaciales y bases de datos espaciales Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM Índice • Clasificación de los datos espaciales • Aproximaciones de las BBDD relacionales para soportar datos espaciales • Conceptos y técnicas utilizados por los SGBD espaciales • Enfoque práctico de lo presentado 1 05/10/2010 Clasificación de los datos espaciales • Datos geográficos (Geospatial data – spatial data) – Se pueden visualizar, manipular y analizar – Atributo espacial (location), definido por coordenadas – Dos características: • distintos CRS, pero es posible integrarles • distintas escalas, propósitos, simbolización • Datos referenciados geográficamente (Geographically referenced data – pseudo-spatial data) – Otros datos que no se pueden utilizar directamente: direcciones postales, datos alfanuméricos, mapas escaneados o imágenes (necesitan pre procesamiento) Clasificación de los datos (2) 2 05/10/2010 Perspectiva funcional (clasificación) • Capas básicas (topográficas): – MDT, topografía, ortofotografía, hidrología, catastro, vías de comunicación.. • Capas de soporte a las aplicaciones (framework) – Parcelas, direcciones, infraestructuras (facilities: eléctricas, gas, comunicaciones,..) • Capas para la aplicación (application data layers) – Creadas para dar soporte a las aplicaciones • Capas de negocio (Business solutions layers) – Soportan las operaciones y tomas de decisiones Perspectiva funcional (2) 3 05/10/2010 Estructura de los datos espaciales • Conceptos: – Geometría (representación espacial) – Topología (relaciones espaciales) • Geometry – Campo de la matemática, relaciones y propiedades de los elementos en distintas dimensiones – OGC, define como una estructura jerárquica de tipos de datos para almacenar objetos con una propiedad geométrica en una base de datos – Simple feature specification (OGC) for SQL (1999) SF (OGC) tipos de datos 4 05/10/2010 Jerarquía (aclaración) Topología • Relaciones entre las geometrías (2D) • Términos: – Nodos, Arcos(edges, arcs, chains or segments), Polígonos (polygons, topological rings, face or area) – Nodo: espacio dimensión 0 en el que interceptan/conectan dos elementos de tipo edges – Arco: espacio dimensión 1 en el que se secuencian segmentos de línea sin intersección entre nodos origen y destino – Polígono: un conjunto de arcos conectados y dirigidos que cierran en un espacio de dimensión 2 • Topología Arco-Nodo: exige que existan nodos en los extremos e intersecciones de los arcos. 5 05/10/2010 Ejemplo topología Estructuras NO topológicas • En muchas ocasiones no es necesaria una relación topológica entre los elementos que conforman un modelo de datos • Se pueden establecer consultas a posteriori para obtener las relaciones entre elementos • Ejemplo de formato sin topología: ESRI Shapefile 6 05/10/2010 Modelo Geo-Relacional • Los datos espaciales se modelan (abstraen) en capas (layers) • Cada capa contiene un tipo de elementos (features) • Si existen distintos tipos de geometrías se clasifican por su tipo (puntos, líneas, polígonos) • Los atributos se almacenan en una base de datos relacional • Las relaciones entre objetos se establecen mediante identificadores (FID: FeatureIDentifier) Ejemplo de modelo Geo-Relacional 7 05/10/2010 Modelo GeoDatabase • Con la aparición de las bases de datos objetorelacional y la capacidad para definir tipos de datos abstractos, aparecen las GeoDatabases • La idea es integrar dentro de la propia base de datos la componente geométrica y topológica Ejemplo esquema GeoDatabase 8 05/10/2010 Bases de datos espaciales • ¿Qué son las BBDDEE? Güting (1994) – BBDD – Ofrece soporte para datos espaciales en los modelos de datos y en las consultas – Ofrece índices espaciales y algoritmos eficientes para uniones espaciales Características de las BBDDEE • Tipos de datos espaciales (SDT:SpatialDataType) – Oracle SDO (SDO_GEOMETRY) – BD2 Spatial extender (ST_Geometry + primitivas) – PostGreSQL + PostGIS (geometry & geography) – MySQL (geometry) – Microsoft SQL Server (geometry & geography) 9 05/10/2010 Tipos de datos Oracle (GDO_TYPE) • Tipos de datos – POINT – LINE o CURVE – POLYGON – COLLECTION – MULTIPOINT – MULTILINE or MULTICURVE – MULTIPOLYGON • Índices: R-Tree o QuadTree (sdp_level) Tipos de datos DB2 (SE) • Tipos de datos: – ST_Point – ST_Linestring – ST_Polygon – ST_MultiPoint – ST_MultiLineString – ST_MultiPolygon • Índices: spatial grid index & geodetic voronoi index 10 05/10/2010 Tipos de datos PostGIS • Tipos de datos: – – – – – – – – – – – – POINT MULTIPOINT LINESTRING MULTILINESTRING POLYGON MULTIPOLYGON GEOMETRYCOLLECTION CIRCULARSTRING COMPOUNDCURVE CURVEPOLYGON MULTICURVE MULTISURFACE • Índices: Generalized Search Tree (GiST) Tipos de datos MySQL • Tipos de datos: – POINT – MULTIPOINT – LINESTRING – MULTILINESTRING – POLYGON – MULTIPOLYGON – GEOMETRYCOLLECTION • Índices: R-Tree 11 05/10/2010 Tipos de datos Ms SQL Server • Tipos de datos: – POINT – MULTIPOINT – LINESTRING – MULTILINESTRING – POLYGON – MULTIPOLYGON – GEOMETRYCOLLECTION • Índices: B-Tree (grid jerárquico) Índices espaciales y métodos de acceso • Los índices espaciales son más complejos, trabajan en dos dimensiones y el objetivo fundamental es identificar elementos próximos • El método mas extendido es R-Tree (árbol de regiones basado en el BBOX de las geometrías) . El segundo son los quadtree o grid multinivel 12 05/10/2010 Ejemplo R-Tree Restricciones e integridad de los datos espaciales • Además de las restricciones de dominio, referencial y semántico del capítulo anterior, Cockcroft (1997) identificó otras restricciones en el contexto espacial: – Topológicas: aspectos geométricos (adyacente, contenido ..) – Semánticas: restricciones geométricas sobre valores de atributos (no parcelas en lámina de agua) – Definidas por el usuario: similar a la anterior, con condicionantes geométricos (no a menos de 200m) • Posteriormente (1998) matizó: estático/transición 13 05/10/2010 Gestión de transacciones largas • En el sentido de poder retroceder a un estado anterior en los datos • Es equivalente al “versionado” • Oracle por ejemplo lo maneja con workspaces, habilitando un campo para la versión de los datos Procesamiento de los datos espaciales • Clasificación de las operaciones espaciales • Filtrado de datos espaciales, como paso previo al tratamiento • Operaciones topológicas • Uniones espaciales • SQL espacial 14 05/10/2010 Clasificación de las operaciones espaciales • Unarias / binarias: atributos de una entidad o de varias ( superficie, perímetro vs distancia, adyacencia) • Topológicas, proyectivas y métricas (proy.: concavidad/convexidad y otras relaciones) • Clasificación de OGC para operadores espaciales: básicos, topológicos y de análisis espacial • Clasificación de PostGIS: gestión, crear, acceder, editar, exportar, relaciones espaciales y medidas, procesamiento de geometrías y linear referencing Operaciones espaciales y filtrado • Ante grandes volúmenes de datos espaciales, primero hay que tratar de filtrar con índices (el planificador aplica este tipo de estrategias) 15 05/10/2010 Operaciones topológicas • Egenhofer y Herring (1990), definieron 16 relaciones de las cuales 8 no son válidas y 2 son simétricas: – disjoin, in, touch, equal, cover y overlap • Clementini y otros (1993) propusieron el modelo de 9 relaciones (DE-9IM) • Las bases de datos no implementan todas Topología implementada (usualmente) 16 05/10/2010 Uniones espaciales • Equivalente al Join, incluyendo operaciones espaciales topológicas o no • Son pesadas computacionalmente, por lo que hay que analizar y diseñar adecuadamente las consultas • Se espera que las bases de datos espaciales permitan realizar este tipo de operaciones SQL espacial • Importante contribución de Egenhofer (1994) proponiendo dos partes: – Lenguaje de consulta • Preservando los conceptos SQL (SELECT FROM WHERE) • Tratamiento a alto nivel de los datos espaciales • Incorporar operaciones y relaciones espaciales a SQL – Lenguaje de presentación • • • • Consulta por área de interés Selección de escala y simbología Mostrar leyenda y colocar etiquetas automáticamente Combinación gráfica de varias consultas y del contexto 17 05/10/2010 Ejemplos de consultas SQL espaciales • Select con operadores espaciales – SELECT parcel.name FROM parcel, subdivision WHERE within (parcel.loc, subdivision.loc) AND subdivision.name=”cranebrook” • Crear tabla con geometría (DB2) – CREATE TABLE parcel (parcel.ID char(20), geometry ST_polygon); • Añadir una columna espacial a una tabla existente (PostGIS) – SELECT AddGeometryColumn (‘public‘, ‘parcel’, ‘the_geom’,4326,’POLYGON',2); Más ejemplos • SELECT ST_XMax(ST_Envelope(The_geom)) as xmax, ST_XMin(ST_Envelope(The_geom)) as xmin, ST_YMax(ST_Envelope(The_geom)) as ymax, ST_YMin(ST_Envelope(The_geom)) as ymin FROM Parcela WHERE **** • SELECT ST_Line_Interpolate_Point(the_geom, 0.8) FROM Tramo WHERE *** • SELECT ST_Buffer(geom,100) FROM POI WHERE ** 18