Download Bases de datos espaciales
Document related concepts
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.