Bases de datos espaciales Michael Gould Universitat Jaume
Bases de datos espaciales Michael Gould Universitat Jaume I
Índice Bases de datos relacionales t Datos no espaciales t Indices (indexación) de bases de datos t Ordenación (sorting) de datos t Modelado de datos espaciales t Dos tipos de consulta t Indices espaciales t
BB DD relacionales t ¿Por qué usar una base de datos? t Organización, recuperación eficaz Una BD no tiene por que ser relacional !!! t BDR optima para interrelacionar tablas de texto t t Trabaja en el “espacio de nombres”, unidimensional t BBDD espaciales son MUY grandes: t 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 t t. 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) t t. Pero hay que ordenar (sort) los datos, alfabéticamente, según la coord X o Y (pero no las 2)
Indices Ordenando según la dist de cada elemento a un punto origen, sirve para desordenarlos para todos demás puntos t No sabes a priori todas las posibles consultas del usuario t t Indices implícitos mejor que explícitos t. No hace falta reordenar los datos, solo despúes de cambios
Indexación t¿Cómo ordenamos los datos? t. Mediante índices primarios y secundarios Para datos no espaciales, uno puede indexar cada atributo t t. Pero no sirve cuando consulta utiliza combinaciones de valores de atributos: t“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: t t“todos entre 25 y 30 años y entre 50 y 70 Kilos” t ¿Cómo construir índices? otra relación nueva t clave extranjera t siguen siendo ejemplos relacionales, unidimensionales. . . t
Modelado de datos Para imágenes, usaremos un tuplo para cada pixel? t Un BLOB solo dice que la imagen existe, nada de su contenido t Un tuplo para cada parte de cada elemento vectorial (ej, punto, línea) ? ? t Un tuplo para cada elemento entero ? t
Modelado de datos (2) ¿Cómo enlazar al elemento entero con un tuplo? t la caja mínima requiere atributos en 2 dimensiones t puedes usar un punto representivo (centroide) t Lo que falta en el modelo relacional es la manera de utilizar la ubicación como índice a una estructura espacial t
Interacción con la BD Muchos lenguajes de consulta t SQL domina, solo porque el modelo relacional también domina t SQL inicialmente separado al modelo relacional t Poco a poco se integran t Tiene muchas limitaciones para datos no normales (ej. CAD, sistemas MM, SIG) t
Interacción con la BD (2) SQL no permite la interacción con gestos: t t“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. t Existen propuestas para SQLextendidos t
Consultas mixtas Consultas dobles, utilizando datos espaciales y no espaciales (atributos) t “ Localiza todas las ciudades dentro de 100 Km del río Ebro, y de más de 100. 000 habitantes” t t Optimizar la recuperación: Si la región es reducida, ejecutar la búsqueda espacial antes t Si hay muchas ciudades grandes en la BD, haz la selección relacional (pob > 100000) antes t
Consultas mixtas (2) Hay que tratar dos tipos de datos distintos t Datos espaciales t puntos discretos en el espacio t espacio ocupado por fenómenos continuos que tienen extensión en 2 -d t t Datos no espaciales nombres de regiones t limite de velocidad en una carretera. . . t
Consultas espaciales El gestor de BBDD relacionales sirve para los datos no espaciales t No es nada óptimo para consultas espaciales t Tres tipos de consultas espaciales t Rango (una ventana completa) t Rango parcial (solo algunos atributos) t Puntual (solo un objeto) t
Consultas de rango Rango = ámbito espacial t Basadas en el límite de cada elemento t No hace falta que todas las posibles relacionales espaciales estén explícitamente en la BD t Consultas por atributo: “todos los sitios que tienen cítricos” t Consultas por ubicación: “ciudad más cercana a este punto? ” t
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 !! t Los índices espaciales nos permiten ir al grano, optimizando la recuperación t Ejemplo simple: rectángulo mínimo (MBR) t t 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) t Quadtree (árbol cuadernario): libro Samet t índice espacial jerárquico t descomposición regular, multiresolución t se pueden aplicar a todos tipos de datos espaciales t
Quadtree Mal nombrado: es una descomposición en bloques regulares: no tiene por que usar arboles t Algoritmo: Dividir región en cuatro subregiones t cada subregión heterogenea, se divide en otras 4 t división recursiva t guardamos los niveles y los t
Quadtree (2) Divisiones (cuadrantes) numeradas 0, 1, 2, 3 t t Orden de Morton, de Peano, etc. Cada región a cualquier nivel tiene una coordinada en el quadtree t 1, 1, 1 : tercer nivel, esquina derecha superior t También sabemos sus coordinadas geográficas, basadas en las coords del t
Quadtree (3) Quadtree es una estructura (índice) simple y potente t Forma parte de casi todos los SIG de gama alta, para mejorar el rendimiento de la BD t Quadtree óptimo para consultas por ubicación: “Qué hay aquí en esta región X? ” t La estructura Pirámide es una variación t
Pirámide Como el quadtree, donde cada nodo en el árbol guarda un sumario de la información de sus hijos t Así, el pirámide es mejor para recuperación por atributo dentro de una región: t “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. t
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? t Control de sesiones t Control de acceso: bloqueo a nivel de fichero, elemento ? ? t Procesos de Commit y Rollback t
Otros temas: BDR extendidas Productos SDO (Spatial Data Option) de Oracle, y Spatial Data Engine (SDE) de ESRI t solución TODA relacional: espacial, no espacial t manejo de geometrías múltiples t conforman con Open. GIS t Datablades espaciales para Informix, DB 2. . . t
Otros temas: Procesos SIG basado en BDR normalmente supone una geometría t Supone una foto de la situación t Complica la actualización de elementos, atributos, esp en situación dinámicas !! t BD y sistemas Orientadas a Objetos. . . en el futuro. t
- Slides: 25