Download Bases de datos espaciales Tema 0: Presentación

Document related concepts

Base de datos espacial wikipedia , lookup

PostGIS wikipedia , lookup

SQL wikipedia , lookup

Sistema de información geográfica wikipedia , lookup

ADO.NET Entity Framework wikipedia , lookup

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