Bases de datos espaciales Michael Gould Universitat Jaume I.

Post on 23-Jan-2016

221 views 0 download

Tags:

transcript

Bases de datos espaciales

Michael Gould

Universitat Jaume I

ÍndiceÍndice

Bases de datos relacionales Datos no espaciales Indices (indexación) de bases de datos Ordenación (sorting) de datos Modelado de datos espaciales Dos tipos de consulta Indices espaciales

BB DD relacionalesBB DD relacionales

¿Por qué usar una base de datos?Organización, recuperación eficaz

Una BD no tiene por que ser relacional !!! BDR optima para interrelacionar tablas de texto

Trabaja en el “espacio de nombres”, unidimensional BBDD espaciales son MUY grandes:

Muchos elementos (puntos, líneas..) y muchas relacionales necesarias para guardar todo que es interesante en interacciones espaciales

BB DD relacionales (2)BB DD relacionales (2)

El uso de campos largos no es la mejor soluciónEs simple, pero no nos ayuda en mejorar

rendimiento de recuperación Una BDR mejora su recuperación mediante

índices (indexación) de atributos (items)Pero hay que ordenar (sort) los datos,

alfabéticamente, según la coord X o Y (pero no las 2)Cada vez ordenando sobre una sola dimensión...

IndicesIndices

Ordenando según la dist de cada elemento a un punto origen, sirve para desordenarlos para todos demás puntos

No sabes a priori todas las posibles consultas del usuario

Indices implícitos mejor que explícitosNo hace falta reordenar los datos, solo despúes de

cambios

IndexaciónIndexación

¿Cómo ordenamos los datos?Mediante índices primarios y secundarios

Para datos no espaciales, uno puede indexar cada atributo

Pero no sirve cuando consulta utiliza combinaciones de valores de atributos:

“El registro más cercano a Pepe Pérez en términos de peso y edad” (no existe el concepto peso-edad)

Indexación (2)Indexación (2)

Para consultas booleanas, sí, tiene sentido:“todos entre 25 y 30 años y entre 50 y 70 Kilos”

¿Cómo construir índices? otra relación nueva clave extranjera

siguen siendo ejemplos relacionales, unidimensionales...

Modelado de datosModelado de datos

Para imágenes, usaremos un tuplo para cada pixel?

Un BLOB solo dice que la imagen existe, nada de su contenido

Un tuplo para cada parte de cada elemento vectorial (ej, punto, línea) ??

Un tuplo para cada elemento entero ?

Modelado de datos (2)Modelado de datos (2)

¿Cómo enlazar al elemento entero con un tuplo?

la caja mínima requiere atributos en 2 dimensiones puedes usar un punto representivo (centroide)

Lo que falta en el modelo relacional es la manera de utilizar la ubicación como índice a una estructura espacial

Por eso hemos creado índices espaciales

Interacción con la BDInteracción con la BD

Muchos lenguajes de consulta SQL domina, solo porque el modelo relacional

también domina SQL inicialmente separado al modelo relacional Poco a poco se integran Tiene muchas limitaciones para datos no

normales (ej. CAD, sistemas MM, SIG)

Interacción con la BD (2)Interacción con la BD (2)

SQL no permite la interacción con gestos:“Cuál es el edificio más cercano a este <señalizar

con el ratón> punto, que vale menos de 50 MM” No incluye operadores espaciales, ej. Cerca de,

tocando con, etc. Existen propuestas para SQL-extendidos

SQL-3, SQL-MM, Geo-SQL

Consultas mixtasConsultas mixtas

Consultas dobles, utilizando datos espaciales y no espaciales (atributos)

“ Localiza todas las ciudades dentro de 100 Km del río Ebro, y de más de 100.000 habitantes”

Optimizar la recuperación: Si la región es reducida, ejecutar la búsqueda

espacial antes Si hay muchas ciudades grandes en la BD, haz la

selección relacional (pob > 100000) antes

Consultas mixtas (2)Consultas mixtas (2)

Hay que tratar dos tipos de datos distintos Datos espaciales

puntos discretos en el espacio espacio ocupado por fenómenos continuos que

tienen extensión en 2-d Datos no espaciales

nombres de regiones limite de velocidad en una carretera...

Consultas espacialesConsultas espaciales

El gestor de BBDD relacionales sirve para los datos no espaciales

No es nada óptimo para consultas espaciales Tres tipos de consultas espaciales

Rango (una ventana completa) Rango parcial (solo algunos atributos) Puntual (solo un objeto)

Consultas de rangoConsultas de rango

Rango = ámbito espacial Basadas en el límite de cada elemento No hace falta que todas las posibles relacionales

espaciales estén explícitamente en la BD Consultas por atributo: “todos los sitios que

tienen cítricos” Consultas por ubicación: “ciudad más cercana a

este punto?”

Indices espacialesIndices espaciales

Objetivo: Como siempre con la indexación... tratar de no visitar y tocar cada vez a todos los n elementos en la base de datos !!

Los índices espaciales nos permiten ir al grano, optimizando la recuperación

Ejemplo simple: rectángulo mínimo (MBR) guardamos los MBR, y si una consulta toca a un MBR, sus

elementos pueden ser relevantes: los de fuera seguramente NO!

Indices espaciales (2)Indices espaciales (2)

Los MBR no forman una descomposición completa del plano (rectángulos pueden solaparse)

Quadtree (árbol cuadernario): libro Samet índice espacial jerárquico descomposición regular, multiresolución se pueden aplicar a todos tipos de datos espaciales

QuadtreeQuadtree

Mal nombrado: es una descomposición en bloques regulares: no tiene por que usar arboles

Algoritmo: Dividir región en cuatro subregiones cada subregión heterogenea, se divide en otras 4 división recursiva guardamos los niveles y los elementos/atributos en

cada nivel (en un árbol, lista, etc.)

Quadtree (2)Quadtree (2)

Divisiones (cuadrantes) numeradas 0,1,2,3 Orden de Morton, de Peano, etc.

Cada región a cualquier nivel tiene una coordinada en el quadtree

1,1,1 : tercer nivel, esquina derecha superior También sabemos sus coordinadas geográficas,

basadas en las coords del primer nivel (root)

Quadtree (3)Quadtree (3)

Quadtree es una estructura (índice) simple y potente

Forma parte de casi todos los SIG de gama alta, para mejorar el rendimiento de la BD

Quadtree óptimo para consultas por ubicación: “Qué hay aquí en esta región X?”

La estructura Pirámide es una variación

PirámidePirámide

Como el quadtree, donde cada nodo en el árbol guarda un sumario de la información de sus hijos

Así, el pirámide es mejor para recuperación por atributo dentro de una región:

“Hay cítricos en esta región?” Si el nivel 1 no tiene cítricos, entonces imposible que este más abajo entre sus hijos, nietos, etc.

Página de demos de Samet

http://www.cs.umd.edu/~brabec/

quadtree/index.html

Otros temas: Transacciones largas

Otros temas: Transacciones largas

¿Qué pasa cuando alguien tiene “abierta” la base de datos de carreteras, durante 2 días, para hacer modificaciónes?

Control de sesiones Control de acceso: bloqueo a nivel de fichero,

elemento ?? Procesos de Commit y Rollback

Otros temas: BDR extendidas

Otros temas: BDR extendidas

Productos SDO (Spatial Data Option) de Oracle, y Spatial Data Engine (SDE) de ESRI

solución TODA relacional: espacial, no espacial manejo de geometrías múltiples conforman con OpenGIS

Datablades espaciales para Informix, DB2...

Otros temas: ProcesosOtros temas: Procesos

SIG basado en BDR normalmente supone una geometría

Supone una foto de la situación Complica la actualización de elementos,

atributos, esp en situación dinámicas !! BD y sistemas Orientadas a Objetos...en el

futuro.