Download Tema 1: Introducción Definición
Document related concepts
Transcript
Tema 1: Introducción Definición Es una colección de datos operativos almacenados y utilizados por los programadores de aplicaciones y por usuarios finales de muy diversa índole Objetivos de los sistemas de bases de datos Vistas de datos Modelos de datos Lenguajes de definición de datos (DDL) Lenguajes de manipulación de datos (DML) Gestión de transacciones Gestión de almacenamiento Administrador de bases de datos Idea básica al implementar una BD: Usuarios de bases de datos Estructura general del sistema Bases de datos Aprovechar los mismos datos para tantas aplicaciones como sea posible. 1 Sistema gestor de bases de datos (SGBD) Bases de datos 2 Objetivos de un sistema de bases de datos Conjunto de datos relacionados Las primeras aplicaciones de bases de datos se construían sobre los sistemas de ficheros Conjunto de programas para acceder a los datos Problemas de usar sistemas de ficheros para almacenar datos: Un SGBD contiene información sobre una realidad concreta + Redundancia de datos e inconsistencias Un SGBD proporciona un entorno que es conveniente y eficiente en su uso Varios formatos de fichero, información duplicada en diferentes ficheros Aplicaciones de bases de datos: + Dificultad en acceder a los datos + Bancos: todas las transacciones + Líneas aéreas: reservas, planificaciones + Universidades: matrícula, titulaciones + Ventas: clientes, productos, compras + Fabricación: producción, inventario, suministros + Recursos humanos: registros de usuarios, salarios Las bases de datos “tocan” todos los aspectos de nuestras vidas Necesidad de escribir un nuevo programa para cada nueva tarea + Aislamiento de datos — multiples ficheros y formatos + Problemas de integridad Las restricciones de integridad (p.e. balance > 0) son parte del código del programa Dificultad en añadir nuevas restricciones o cambiar las existentes Bases de datos 3 Bases de datos 4 Objetivos de un sistema de bases de datos (Cont.) Objetivos de un sistema de bases de datos (Cont.) Es decir, un SGBD tiene por objetivos: Problemas de usar sistemas de ficheros (cont.) + Atomicidad de actualizaciones + Acceso concurrente Los fallos pueden dejar la base de datos en un estado inconsistente debido a actualizaciones parciales + Independencia física y lógica P.e. transferir fondos de una cuenta a otra debería o bien realizarse completamente o bien no realizarse + Alta relacionabilidad de los datos + Redundancia controlada de los datos + Integridad de los datos + Acceso concurrente por varios usuarios Los accesos concurrentes son necesarios para aumentar las prestaciones + Consistencia de los datos Los accesos concurrentes incontrolados pueden llevar a inconsistencias + Actualización fácil y coherente + Seguridad de los datos + Alto rendimiento – P.e. dos personas leyendo un balance y modificándolo a la vez + Reducción de la dificultad de programación + Problemas de seguridad Los sistemas de bases de datos dan soluciones a todos estos problemas Bases de datos 5 Bases de datos 6 Niveles de abstracción Vistas de datos Una arquitectura para un sistema de bases de datos El nivel físico describe cómo se almacena un registro (p.e., cliente). El nivel lógico: describe los datos almacenados en la base de datos nivel de vista y las relaciones entre los datos. vista 1 type cliente = record nombre : string; calle : string; ciudad : integer; end; vista 2 nivel lógico EL nivel de vista: los programas de aplicación ocultan detalles de nivel físico los tipos de datos. Las vistas también pueden ocultar información (p.e. salario) por motivos de seguridad. Bases de datos vista n 7 Visión global Bases de datos 8 Instancias, esquemas e independencia Similar a tipos de datos y variables en lenguajes de programación El mundo real Esquema – la estructura lógica de la base de datos + P.e., la base de datos consiste en información sobre un conjunto de Bancos, líneas aéreas, … clientes y cuentas y la relación entre ellos) + Análogo al tipo de datos de una variable en un programa Las bases de datos Modelos de información, + Esquema físico: el diseño de la base de datos a nivel físico conjuntos de entidades, + Esquema lógico: el diseño de la base de datos a nivel lógico atributos, ref. cruzadas, … Instancia – el contenido actual de la base de datos en un instante concreto Árboles equilibrados, Las estructuras de datos + Análogo al valor de una variable ficheros secuenciales, indexados, Independencia física de los datos – la habilidad para modificar el cadenas, hash, listas invertidas, … esquema físico sin cambiar el esquema lógico + Las aplicaciones dependen del esquema lógico El almacenamiento físico Bits, bytes, registros, + En general, los interfaces entre los diferentes niveles y componentes debería estar bien definidos para que los cambios en algunas partes no afecten de forma importante a otras. códigos ASCII, EBCDIC, … Bases de datos 9 Bases de datos Modelos de datos 10 Modelo EntidadEntidad-Asociación Una colección de herramientas para describir + datos + relaciones entre datos + semántica de los datos + restricciones de los datos Ejemplo de esquema en el modelo entidad-asociación Modelo Entidad-Asociación o Entidad-Relación nombre-cliente Modelo relacional id-cliente Otros modelos: calle-cliente numero-cuenta saldo ciudad-cliente clientes depositante cuentas + Modelo orientado a objetos + Modelos de datos semiestructurados + Modelos antiguos: modelo de red y modelo jerárquico Bases de datos 11 Bases de datos 12 Modelo EntidadEntidad-Asociación (Cont.) Modelo Relacional Ejemplo de datos tabulares en el modelo relacional Modelo E-A del mundo real + Entidades (objetos) Atributos P.e. clientes, cuentas, sucursales bancarias + Asociaciones entre entidades P.e. La cuenta A-101 pertenece al cliente Pérez Id-Cliente La asociación depositante asocia clientes con cuentas Ampliamente utilizado para diseño de bases de datos + El diseño de bases de datos en el modelo E-A normalmente se transforma en un diseño en el modelo relacional que se utiliza para almacenamiento y procesamiento Bases de datos 13 nombre-cliente calle-cliente 192-83-7465 Pérez 019-28-3746 Gómez 192-83-7465 López 321-12-3123 Gómez 019-28-3746 González calle-cliente ciudad-cliente numero-cuenta Principe Vigo A-101 Real Santiago A-215 Real Vigo A-201 Sol Madrid A-217 Norte Lugo A-201 Bases de datos 14 Sistemas Gestores de Bases de Datos Un ejemplo de base de datos relacional Id-cliente nombre-cliente ciudad-cliente 192-83-7465 Sánchez Alma Santiago 019-28-3746 Rodríguez Norte Vigo 677-89-9011 Gómez Príncipe Madrid 182-73-6091 Fernández Alcalá Madrid 321-12-3123 Veiga Príncipe Madrid 336-66-9999 López Diagonal Barcelona 019-28-3746 Rodríguez Norte Vigo UN SGBD es un software que al menos: Gestiona las BD y al acceso a las mismas. Proporciona un LDD (Lenguaje de Definición de Datos) + Proporciona facilidades para definir esquemas (a) Tabla clientes Proporciona un LMD (Lenguaje de Manipulación de Datos) numero-cuenta saldo A-101 500 A-215 700 A-102 400 A-305 350 A-201 900 A-217 750 A-222 700 (b) Tabla cuentas Id-cliente numero-cuenta 192-83-7465 A-101 192-83-7465 A-201 019-28-3746 A-215 677-89-9011 A-102 182-73-6091 A-305 321-12-3123 A-217 336-66-9999 A-222 019-28-3746 A-201 + Proporciona facilidades para acceder y manipular los datos organizados en el modelo de datos apropiado (c) Tabla depositante Bases de datos 15 Especificación de notación para definir el esquema de las bases de Lenguaje para acceder y manipular a los datos datos organizados por el modelo de datos apropiado + P.e. + El DML también se conoce como lenguaje de consulta char(10), integer) Dos clases de lenguajes El compilador de DDL genera un conjunto de tablas almacenadas en un diccionario de datos Los diccionarios de datos contienen metadatos (es decir, datos sobre los datos) + esquema de la base de datos + Procedimental – el usuario especifica que datos quiere consultar y como obtener esos datos + No procedimental – el usuario especifica que datos quiere consultar sin especificar como obtener esos datos SQL es el lenguaje de consulta más ampliamente usado + Lenguaje de almacenamiento y definición de datos El lenguaje en el que se especifican las estructuras de almacenamiento y los métodos de acceso usados por la base de datos Normalmente es una extensión del lenguaje de definición de datos Bases de datos 16 Lenguaje de manipulación de datos (DML) Lenguajes de definición de datos (DDL) create table cuenta ( numero-cuenta balance Bases de datos 17 Bases de datos 18 SQL Gestión de transacciones SQL: lenguaje no procedimental ampliamente utilizado Una transacción es un conjunto de operaciones que + P.e. encontrar el nombre del cliente con id-cliente 192-83-7465 realizan una única función lógica en una aplicación de bases de datos select cliente.nombre-cliente from cliente where cliente.id-cliente = ‘192-83-7465’ + P.e. encontrar los balances de todas las cuentas pertenecientes al cliente con id-cliente 192-83-7465 select cuenta.balance from depositante, cuenta where depositante.id-cliente = ‘192-83-7465’ and depositante.numero-cuenta = cuenta.numero-cuenta Los programas de aplicación normalmente acceden a bases de datos mediante El componente de gestión de transacciones asegura que la base de datos se mantiene en un estado consistente (correcto) aun cuando se produzcan fallos en el sistema (p.e. fallos de alimentación o del sistema operativo) o fallos de transacción. El gestor de control de concurrencia controla la interacción entre transacciones concurrentes, para asegurar la consistencia de la base de datos. + Extensiones de lenguaje que permiten embeber SQL + Interfaces de programación de aplicaciones (p.e. ODBC/JDBC) que permiten enviar consultas SQL a una base de datos Bases de datos 19 Gestión de almacenamiento Bases de datos 20 Administrador de bases de datos Coordina todas las actividades del sistema de bases de datos; el El gestor de almacenamiento es un módulo que proporciona el interfaz entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicación y consultas enviadas al sistema. El gestor de almacenamiento se encarga de: administrador de bases de datos tiene un buen conocimiento de los recursos y necesidades de información de la organización. Las funciones del administrador de bases de datos incluyen: + Definición de esquemas + Definición de métodos de acceso y estructuras de almacenamiento + Modificación de esquemas y organización física + Garantizar derechos de acceso a la base de datos + Interactuar con el gestor de ficheros + Especificar restricciones de integridad + Conseguir un almacenamiento, recuperación y actualización eficientes de los datos + Actuar como enlace con los usuarios Bases de datos + Monitorizar las prestaciones y responder a cambios en los requisitos 21 Usuarios de bases de datos Bases de datos 22 Estructura general del sistema usuarios no técnicos (vendedores, agentes, usuarios web) con el sistema usuarios sofisticados (analistas) programadores de aplicaciones usan Los usuarios se diferencian por la forma en que esperan interactuar escriben interfaces de aplicación administradores de bases de datos usan usan programas de aplicación herramientas de administración herramientas de consulta Programadores de aplicaciones – interactuan con el sistema a través de llamadas DML compilador y enlazador Usuarios sofisticados – hacen peticiones en un lenguaje de consulta código objeto de programa de aplicación de bases de datos Usuarios especializados – escriben aplicaciones de bases de datos evaluador de consultas sofisticadas que no encajan en el marco del procesamiento tradicional de datos gestión de bufferes interprete DDL consultas DML compilador y organizador de DML gestión de ficheros Usuarios no técnicos – llaman uno de los programas de aplicación procesador de consultas gestión de autorización e integridad gestión de transacciones gestión de almacenamiento permanentes que se han escrito previamente + P.e. gente accediendo a la base de datos a través del web, cajeros de banco, personal de oficina índices datos Bases de datos 23 Bases de datos diccionario de datos gestión de disco datos estadísticos 24 Arquitecturas de aplicación usuario usuario cliente aplicación aplicación cliente red red programa servidor sistema de bd servidor sistema de bd a. arquitectura en dos niveles b. arquitectura en tres niveles Arquitectura en dos niveles: P.e. los programas clientes utilizan ODBC/JDBC para comunicarse con la base de datos Arquitectura en tres niveles: P.e. las aplicaciones basadas en web, o las aplicaciones que utilizan “middleware” Bases de datos 25