Bases de datos espaciales Tema 0:...
Transcript of Bases de datos espaciales Tema 0:...
05/10/2010
1
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
05/10/2010
2
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 (Geographicallyreferenced 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)
05/10/2010
3
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)
05/10/2010
4
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
05/10/2010
5
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.
05/10/2010
6
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
05/10/2010
7
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
05/10/2010
8
Modelo GeoDatabase
• Con la aparición de las bases de datos objeto-relacional 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
05/10/2010
9
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)
05/10/2010
10
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 voronoiindex
05/10/2010
11
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
05/10/2010
12
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
05/10/2010
13
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
05/10/2010
14
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
05/10/2010
15
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)
05/10/2010
16
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)
05/10/2010
17
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
05/10/2010
18
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 yminFROM Parcela WHERE ****
• SELECT ST_Line_Interpolate_Point(the_geom, 0.8) FROM Tramo WHERE ***
• SELECT ST_Buffer(geom,100) FROM POI WHERE **