Story 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