Bases de datos espaciales Tema 1: Introducción Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM Contenido: definiciones y conceptos Fundamentos (conceptos) Visión y clasificación general de los SGBD Operaciones de las BBDD Arquitecturas Hw y Sw de BBDD Estructura de los datos 1
Fundamentos Data Set A logical collection of values or database objects Database A logical collection of information that is interrelated, managed, and stored as a unit. A store for multiple data sets. Fundamentos Data Model A conceptual description of the data elements/objects and their relationships that are to be represented in a database Data Dictionary A description of the contents of a database including data entity and attribute code definitions An important element of metadata (DDBB domain) 2
Ejemplo modelo de datos Diccionario de datos 3
Fundamentos Data Transparency Transparency means hiding the structure and relationships from applications When structure, relationships, or media change the impacts on applications are minimized Data Base Management System (DBMS) Provides for the input, storage, manipulation, query, and retrieval of data. A store for multiple databases. Resumen: Base de datos y SGBD BBDD: Gran colección de datos interrelacionados almacenados en un ordenador que dota de persistencia (ante cambios de Sw y Hw) SGBD: Sistema que proporciona persistencia, concurrencia, escalabilidad de datos, seguridad, integridad y eficiencia en las consultas Los SGBD facilitan: definición (modelado), implementación, manipulación, consulta y actualización 4
Visión simplificada de SGBD Objetivo: Dotar de independencia sobre los datos Abstracción Nivel lógico Nivel físico Spatial database with application to GIS, Rigaux (pg 5) Clasificación de SGBD Spatial database Systems, Yeung(pg 27) Enlace recomendado: http://rojos.iespana.es/trabajos/bd/actual.ppt 5
Operaciones de las BBDD (Índice) Almacenamiento y manipulación Seguridad e integridad Consulta Transacciones Respaldo (Backup) y recuperación Replicación y sincronización SQL Almacenamiento y recuperación Tipos de almacenamiento: Primario Secundario Terciario Secundario y terciario: bloques de disco Primario: memoria principal y ficheros (buffer & file manager) 6
Almacenamiento Cinta Respaldo de datos Disco Óptico Disco Magnético Auditoria y tablas Memoria RAM Optimizar consultas Memoria Caché Fuente: (Carlos Castillo UPF 2007) Seguridad Seguridad: operaciones que puede realizar un perfil de usuario. Dos modelos: discrecional (operaciones que puede hacer un usuario sobre un determinado objeto) responsables (mandatory) (usuarios se clasifican por niveles o roles y cada nivel define reglas o restricciones) 7
Integridad Objetivo: mantener las restricciones de integridad. Modelos: Restricciones de dominio (tipo de dato y rangos de valores) Claves y relaciones (valores únicos y existencia de la clave en otras tablas: integridad referencial) Restricciones de integridad semántica (reglas normalmente lógicas, que definen si se puede o no insertar un elemento en función del estado representado en la base de datos) Referencia integridad semántica: http://www.monografias.com/trabajos58/procesamiento-datos/procesamiento-datos2.shtml Consultas (Índice) Las operaciones se pueden clasificar en: Selección (SELECT) Proyección (PROJECT) Combinación (JOIN) Producto (PRODUCT) Unión (UNION) Intersección (INTERSECT) Diferencia (DIFFERENCE) División (DIVIDE) 8
SELECCIÓN y PROYECCIÓN Selección: SELECT FROM SELECT FROM ORDER BY SELECT PREDICADO FROM Predicado: ALL, TOP, DISCTINCT, DISCTINROW Proyección: SELECT atributos FROM COMBINACIÓN (JOIN) JOIN natural JOIN Lateral (LEFT & RIGHT) 9
PRODUCTO Producto cartesiano, genera la combinación de filas de la primera tabla con las de la segunda UNION SELECT column_name(s) FROM table_name1 UNION [ALL] SELECT column_name(s) FROM table_name2 UNION ALL 10
INTERSECCIÓN SELECT * FROM Orders WHERE Quantity BETWEEN 1 AND 100 INTERSECT SELECT * FROM Orders WHERE Quantity BETWEEN 50 AND 200; DIFERENCIA SELECT * FROM Orders WHERE Quantity BETWEEN 1 AND 100 EXCEPT MINUS SELECT * FROM Orders WHERE Quantity BETWEEN 50 AND 75; 11
DIVISION r s is used when we wish to express queries with all Ejemplo: Which persons have a bank account at ALL the banks in the country? Se construye con NOT EXIST seguido NOT IN, O bien con dos NOT EXIST consecutivos. Ejemplos de DIVISION: http://web.abo.fi/~soini/divisionenglish.pdf Transacciones Operaciones indivisibles. Principios: Atomicidad Aislamiento Durabilidad o permanencia Consistencia en la preservación Mecanismos de control: Control de concurrencia Auditoria de transacciones (logging) Confirmación de transacciones (commit) Vuelta atrás (rollback) 12
Respaldo y recuperación Backup: Hot backup Cold backup Restore Only Cold backup Replicación y sincronización Objetivos: Mejorar el rendimiento Mejorar la disponibilidad de un modo transparente para los usuarios Configuración: maestro/s + esclavos Métodos de replicación: Instantánea (snapshot) Fusión (merging) Transaccional (transactional) 13
Lenguaje de Manipulación de datos La manipulación (carga, mantenimiento y consulta/explotación) se realiza con un lenguaje de manipulación de datos (DML) El DML más extendido es SQL, considerado un lenguaje declarativo en el que el usuario indica los resultados esperados no la forma de obtenerlos SQL tiene bases matemáticas y posibilita cálculo relacional y álgebra relacional SQL statements: modos de uso Procesamiento interactivo (consola tipo SQL+, etc.) Embebido en un lenguaje de programación (Java, C++, etc.) Mediante llamadas a nivel de interfaces definidas a nivel de S.O. Usando API como JDBC and SQLJ (Java) Aplicaciones independientes que llaman a procedimientos almacenados 14
SQL statements types Database query (SELECT.. FROM.. WHERE..) Data definition (CREATE TABLE, ALTER TABLE.. ADD..) Data manipulation (INSERT INTO.., DELETE, UPDATE) Database connection and access control (CONNECT, CREATE ROLE, GRANT) Data sharing (CREATE TRIGGER) Data integrity (CONSTRAINT UNIQUE, CHECK) Arquitecturas Hw y Sw de BBDD (Índice) Centralizada Distribuida Modelos de distribución de BBDD Módulos del Sw de BBDD Arquitectura Web de BBDD 15
Arquitecturas centralizada de BBDD Spatial database Systems, Yeung (pg 42) Arquitectura distribuida de DDBB Spatial database Systems, Yeung (pg 43) 16
Modelos de distribución de BBDD Spatial database Systems, Yeung (pg 45) Módulos de Sw de BBDD Spatial database Systems, Yeung (pg 46) 17
Arquitectura Web para BBDD Spatial database Systems, Yeung (pg 48) Estructura de los datos Lógica Física Índices 18
Estructura lógica de los datos The logical data structure is used in logical data modeling that aims to find the most effective distribution of the data and data files inside the database Spatial database Systems, Yeung (pg 50) Estructura física de los datos Tipos de datos Básicos: Textos, numéricos y fechas Tipos de datos abstractos (ADT), este tipo de datos es el que usan los SGDB para almacenar nuevos tipos de datos como los espaciales 19
Índices en las BBDD Objetivo: acelerar las búsquedas B-Tree el más común (Balanced) Spatial database Systems, Yeung (pg 53) 20