Tema 1: Introducción Bases de datos Máster en Tecnologías de Información Geográfica 1 Introducción 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Información y datos Ficheros vs. Bases de datos Sistemas gestores de bases de datos Bases de datos con información geográfica Visión de los datos Modelo relacional de bases de datos Diseño de bases de datos Lenguajes de consulta: QBE, SQL Arquitectura de un SGBD Rendimiento Aplicaciones 2 1. Información y datos La información se registra mediante datos. Los datos se pueden mecanizar. Los datos se interpretan para obtener una información. La interpretación depende del hombre, no se “puede” mecanizar. Es necesario un almacenamiento persistente. 3 Datos Tipo de información representada con datos: Atómica: Números (enteros, coma flotante) Cadenas de caracteres Estructurada: Números complejos (partes real e imaginaria) Registros Ej: coche(matrícula,modelo,color) 4 Datos Información geográfica y espacial: Datos por líneas (raster): 5 Datos Información geográfica y espacial: Datos vectoriales 6 2. Ficheros vs. Bases de datos Fichero: almacenamiento persistente (no volátil) de datos usado para representar información. Ejemplos: Ficheros de texto, documentos XML Base de datos: colección persistente de datos relacionados usada para representar información. Ejemplos MS Access, MS SQL Server, MySQL, PostgreSQL, Oracle, IBM DB2 7 8 Ficheros secuenciales Acceso serializado Application Appl ic ation Application Cola aplicaciones para acceso a los datos Archivo Application 199712150007 Widget 100 4 400 199712150007 Thingamabob 275 1 275 199712150008 Widget 100 3 300 9 Problemas de las organizaciones de ficheros Redundancia e inconsistencia de datos Costes de mantenimiento de los programas: Dificultad en el acceso. Cada consulta de datos implica generalmente escribir un nuevo programa Aislamiento de datos. Formatos diferentes y en medios diferentes Integridad. Para implementar restricciones de integridad es necesario modificar todos los programas que accedan a los datos 10 Problemas de las organizaciones de ficheros Atomicidad. Cuando hay un fallo informático (corte de corriente, error de disco, ...) se puede producir una inconsistencia en una transferencia bancaria. La transferencia debe ser una operación atómica (ocurre totalmente o no ocurre). 11 Problemas de las organizaciones de ficheros Acceso concurrente. Trabajo con una copia de los datos Trabajo con una copia de los datos Application Archivo 199712150007 Widget 100 4 400 199712150007 Thingamabob 275 1 275 199712150008 Widget 100 3 Application Archivo Yo también! 199712150007 Widget 100 4 400 199712150007 Thingamabob 275 1 275 199712150008 Widget 100 3 300 300 Application Archivo 199712150007 Widget 100 4 400 199712150007 Thingamabob 275 1 275 199712150008 Widget 100 3 300 12 Problemas de las organizaciones de ficheros Las bases de datos solucionan los problemas de los ficheros. Sin embargo, no sustituyen a los ficheros en todas las aplicaciones. Por ejemplo: ficheros temporales, datos no relacionados. Además, las bases de datos se implementan con ficheros. 13 Problemas de las organizaciones de ficheros Los ficheros se prefieren a los SGBD cuando: BD y aplicaciones simples, bien definidas y sin visos de cambio. Requisitos de tiempo real que no pueden cubrir los SGBD. No se requiere acceso concurrente. 14 3. Sistemas gestores de bases de datos (SGBDs) Usuario 1 ... Usuario n Aplicación 1 ... Aplicación m SGBD BD 1 ... BD k 15 Tipos de SGBDs Relacionales. Orientados a objetos. Geográficos. Temporales. XML. 16 Los SGBDs proporcionan: C oncurrencia I ntegridad Seguridad 17 Concurrencia a nivel de fila ¡Estoy leyendo la 3ª fila! ¡Estoy cambiando la 6ª fila! Application Application ¡Estoy leyendo la 8ª fila y luego la modificaré! Last Name Adams Adams Brown Caldwell Fridrich Gaines Jones Jones Jones First Name Bobby Sandy Terry Simone John Lois Larry Larry LaVerne Address 1426 Main 214 Cisco Lane 45 River Walk 122 42ND ST 956 Billings 6094 Beaker 567 Yale Ave. 240 Boston Blvd. South Star Route Phone 555-1423 555-4297 555-8495 555-5367 555-4311 555-0945 555-6932 555-5390 555-2345 Mitchell Mitchell Smith Smith Wise Jean Ted Diana Grace Sara 504 1ST Ave. 504 1ST Ave. 2253 Dahlia 983 Fairfax 9023 Colorado Blvd. 555-1777 555-1778 555-6098 555-8764 555-3242 Application 18 Transacción (unidad de trabajo) El programa transfiere 1000€ desde la cuenta A a la B Logical Unit of Work UPDATE A UPDATE B X X X COMMIT A 2000 1000 1000 1000 B 3000 3000 4000 4000 UPDATE A UPDATE B X X X ROLLBACK A 2000 1000 1000 2000 B 3000 3000 4000 3000 19 Integridad Restricciones de integridad: Dominio. Clave primaria. Clave externa. Definidas por el usuario. 20 Seguridad Un SGBD es un sistema software capaz de manejar grandes colecciones de datos: Relacionados. Compartidos. Persistentes. Aseguran su fiabilidad y privacidad. Usuarios. Roles. Restricciones de acceso. 21 Ventajas Como consecuencia de estas características se obtienen las siguientes ventajas: Normalización. Tiempo de desarrollo de aplicaciones reducido. Flexibilidad. Facilidad para añadir o eliminar datos necesarios. Disponibilidad inmediata de las actualizaciones de datos para todos los usuarios. 22 SGBDs SQL/DS de IBM, 1981 ORACLE de RSI, 1981 DB2 de IBM, 1983 Informix, 1985 Gestores de ficheros Sybase, 1991 ("databases") MS SQL Server (1989, 1992) DBase MS Access (1992) Paradox MySQL (1995) PostgreSQL (1995) IBM: Industrial Business Machines HyperSQL (2001) RSI: Relational Software, Inc. MS: Microsoft 23 SGBDs con extensiones espaciales MS SQL Server 2008. Free/Commercial Oracle Spatial. Commercial PostgreSQL (PosGIS). Open-source MySQL Spatial Extensions. Open-source IBM DB2 Spatial Extender. Commercial IBM DB2 Geodetic Extender. Commercial Informix Spatial DataBlade. Commercial Informix Geodetic DataBlade. Commercial Spatial Query Server for Sybase. Commercial 24 4. Bases de datos con información geográfica 25 Tipos de datos SGBDRs Texto Memo Numérico Autonumérico Fecha/Hora Moneda Sí/No Objeto OLE Hipervínculo 26 Tipos de datos SGBDRs espaciales MS SQL Server geography geometry Spatial Query Server (for Sybase) Circle Ellipse Point - a point in 2D space. (x,y) plane. Voxel - a point in 3D space. (x,y,z) volume. Polygon Polygon(n) Polygon set Gpolygon Gpolygon(n) Gpolygon_set Line Line(n) Line_set Rectangle Rectangle_set Llbox Llbox_set 27 5. Visión de los datos Objetivo de un SGBD: Proporcionar una visión abstracta de los datos Se ocultan los detalles de cómo se almacenan y mantienen los datos. Niveles: Físico Lógico Cómo se almacenan los datos. Qué datos y qué relaciones se almacenan. Vistas Subconjunto del nivel lógico. 28 CREATE VIEW BLUEDEP AS Vistas SELECT * FROM EMPL WHERE DEP LIKE 'BLU%; JOB S M S C S M S C S M S S C S S SAL 31000 32000 30000 27000 33000 31000 32000 28000 30000 33000 31000 35000 27000 29000 29000 DEP BLU RED BLU GRE GRE BLU RED GRE RED GRE RED GRE BLU RED BLU SELECT JOB, SAL FROM BLUEDEP Columns and rows defined by BLUEDEP S S M C S 31000 30000 31000 27000 29000 BLU BLU BLU BLU BLU WHERE JOB <> 'M'; JOB S S C S SAL 31000 30000 27000 29000 29 6. Modelo relacional Los modelos de datos se usan para poder definir una interpretación de los datos conforme a su estructura, relaciones y operaciones que se les pueden aplicar. Def: Colección de conceptos que se usan para describir la estructura de una BD. La estructura son los tipos de datos, las relaciones y las restricciones. Llevan asociados operaciones básicas. 30 Modelo relacional Se usa una colección de tablas para representar los datos y sus relaciones. RDBMS = Sistema de Gestión de Bases de Datos Relacionales "RELACION" = PROPIET1.TABLA_A COL1 ABC DEF GHI JKL MNO COL2 7 4 6 7 0 COL3 1987-11-14 1963-01-01 1946-07-12 1951-12-30 1992-08-12 TABLA PROPIET2.TABLA_B Una "BBDD relacional" es una "BBDD de Tablas" COL1 ABC DEF GHI JKL MNO COL2 7 4 6 7 0 COL3 1987-11-14 1963-01-01 1946-07-12 1951-12-30 1992-08-12 31 7. Diseño de bases de datos Proceso de creación de un esquema de la base de datos. Fases: Conceptual. Lógico. Físico. 32 Conceptual: Modelo entidad-relación M Dept 1 11 1 M1 Employees M 1M A LOCATION HAS MANY DEPTS MANY EMPLOYEES WORK ON MANY PROJECTS 1 Locations 1 M Projects 1 1 M Skills 33 Lógico: Relaciones (modelo relacional) Depts(Id, Name) Employees(Id, Name, Address) Skills(Id, Skill) Belongs(IdEmployee, IdDept) Has(IdEmployee, IdSkills) 34 Físico: Tablas, vistas e índices TABLE EMPL INDEX NDX1 VIEW BLUEDEP INDEX NDX2 INDEX NDX3 35 8. Lenguajes de consulta QBE (Query By Example) Gráfico. SQL (Structured Query Language) Textual. 36 Lenguaje gráfico QBE 37 Lenguaje SQL Es el lenguaje de facto para el acceso a los datos en las bases de datos relacionales. Se divide en tres partes: Lenguaje de definición de datos (DDL) Lenguaje de manipulación de datos (DML) Lenguaje de control de datos (DCL) 38 SQL CREATE DATABASE MTIGDB; USE MTIGDB; CREATE TABLE Districts (DistrictName nvarchar(20), DistrictGeo geometry); INSERT INTO Districts (DistrictName, DistrictGeo) VALUES ('Downtown', geometry::STGeomFromText ('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0)); SELECT StreetName, DistrictName FROM Districts d, Streets s WHERE s.StreetGeo.STIntersects(DistrictGeo) = 1 ORDER BY StreetName; 39 9. Arquitectura de un SGBD Componentes del sistema • Concurrencia. • Gestor de almacenamiento • Procesamiento de consultas • Estructuras de datos 40 Administrador de base de datos Interfaces de aplicaciones Programas de aplicación Consulta Esquema de base de datos Precompilador del DML incorporado Compilador del DML Intérprete del DDL Motor de evaluación de consultas Gestor de memoria intermedia Gestor de almacenamiento Gestor de transacciones Gestor de ficheros Índices Datos estadísticos Diccionario de datos Ficheros de datos Almacenamiento en disco Código objeto de los programas de aplicación Sistema de gestión de bases de datos Usuarios avanzados Usuarios Programadores de aplicaciones Procesador de consultas Usuarios normales (administrativos, cajeros automáticos, ...) 41 Procesamiento de consultas 42 10. Rendimiento Índices sobre datos atómicos. Índices secuenciales Índices B Índices B+ Índices sobre datos geográficos. Árboles k-d Árboles cuadráticos (quad-trees) Árboles R 43 Índices secuenciales Cajones Clave primaria Índice primario B C D E Índice secundario Clave secundaria 1 B 2 D 2 A 3 C 4 D 4 B 4 E 5 D C 6 C D 6 B A A A Valores Clave primaria A B B C B D B E B D E 44 Índices B+ Non-clustered Index Clustered Index Root Page 25 61 88 8 13 25 33 45 61 25 61 88 67 75 88 Non-leaf Pages 8 13 25 33 45 61 67 75 88 Leaf Pages data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row data row 45 Árboles k-d 46 Árboles cuadráticos 47 Árboles R 48 11. Aplicaciones Programas de aplicación Python, Java, C#, C++, … Formularios API de acceso a la BD Dominios de aplicación Sistemas de información geográfica Inventario (Stocks) Facturación Medicina (BOT) Construcción … 49 Ciclo de vida de las aplicaciones NECESIDADES ANALISIS DATOS ANALISIS PROCESOS DISEÑO BBDD RELACIONALES DISEÑO PROCESOS CAPACITY PLANNING PERFORMANCE ESTIMATES AJUSTE MODELO DATOS CREACIÓN AJUSTE MODELO PROCESOS PRUEBA PASO A PRODUCCION 50