Download Bases de datos espaciales

Document related concepts

Base de datos espacial wikipedia , lookup

Base de datos relacional wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Optimización de consultas wikipedia , lookup

Quadtree wikipedia , lookup

Transcript
Bases de datos espaciales
Michael Gould
Universitat Jaume I
Í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 relacionales

¿Por qué usar una base de datos?
 Organización,


Una BD no tiene por que ser relacional !!!
BDR optima para interrelacionar tablas de texto
 Trabaja

recuperación eficaz
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)

El uso de campos largos no es la mejor solución
Es
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...
Indices

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ícitos
No
hace falta reordenar los datos, solo despúes de
cambios
Indexació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)

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 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)

¿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 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)

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 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)
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 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 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 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)
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

Quadtree
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)

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 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á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
¿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

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: 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.
