Conceptos básicos Sistema de Gestión de Bases de Datos, SGBD (DBMS, Database Management System): software diseñado específicamente para el mantenimiento y la explotación de grandes conjuntos de datos 1
Ventajas de los SGBDs Ventajas Independencia de los datos Acceso a los datos eficiente Integridad y seguridad Administración Acceso concurrente y recuperación Reducción del tiempo de desarrollo de las aplicaciones Inconvenientes Complejidad Tamaño Coste SGBD Coste hardware adicional Coste conversión Prestaciones Mayor impacto de los fallos 2
Perspectiva histórica Predecedor de los SGBD: sistemas basados en ficheros (aún existen) 1959. IBM presenta el sistema Ramac. leía datos en forma no secuencial, haciendo posible este tipo de acceso a los archivos. 1961. Charles Bachman diseña el primer DBMS de propósito general. 1965-1970. Aparece la vista en dos niveles de la organización: conceptual y de usuario. esto constituyó el fundamento del modelo de datos jerárquico. IBM y American Airlines crean SABRE, que permitía el acceso de múltiples usuarios a los datos a través de una red de comunicaciones. 1970. Codd, investigador asociado de IBM, desarrolla el modelo relacional y establece los fundamentos para la teoría de BD. 1976. Aparece el modelo Entidad-Relación. Años 80. Se desarrollan DBMS para computadores personales. Aparecen DBASE, PARADOX, DB2, ORACLE, SYBASE, INFORMIX, etc. Aparecen los sistemas orientados a objetos, sistemas cliente/servidor para bases de datos distribuidas. Años 90. Se intenta extender las capacidades de los SGBD a nuevas aplicaciones (BD espaciales, temporales, multimedia y deductivas) 3
El Modelo Relacional Un modelo es un conjunto de elementos de alto nivel que ocultan los detalles de bajo nivel Modelo Relacional DB2, Informix, Oracle, Sybase, MS Access, Paradox Otros modelos Jerárquico (IMS de IBM) En red (IDS) Orientado a Objetos (Objectstore y Versant) Relacional orientado a objetos (Informix, ObjectStore, Oracle...) 4
Niveles de abstracción en un SGBD DDL (Data Definition Languaje) Nivel conceptual (esquema conceptual o lógico) Nivel externo o vistas Nivel físico Nivel externo o de vistas Nivel conceptual Nivel interno o físico 5
Independencia de los datos Las aplicaciones deben ser independientes de los cambios que se produzcan en las estructuras de almacenamiento Independencia lógica de los datos Capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos ni los programas de aplicación Independencia física de los datos Capacidad de modificar el esquema interno sin tener que alterar el esquema conceptual 6
Consultas a un SGBD Para el usuario, el valor de un SGBD viene determinado, entre otras cosas, por la facilidad con la que de él se obtenga información Lenguajes de consulta Optimización de las consultas Ejecución concurrente La mayoría de las grandes aplicaciones de bases de datos son de acceso concurrente El acceso concurrente produce problemas si no está controlado Las transacciones y el control de concurrencia permiten controlar estos problemas 7
Estructura de un SGBD Arquitectura general de un SGBD SGBD centralizado / cliente-servidor centralizado: en un solo ordenador se ejecuta el SGBD, puede estar conectado a una red de terminales cliente-servidor: una parte del SGBD reside en ordenadores clientes (interfaz de usuario), el motor del SGBD reside en el servidor SGBD distribuido bases de datos locales pueden trabajar de forma coordinada, como si fuera una única BD Aprovechamiento o no de plataformas con paralelismo 8
Estructura de un SGBD El motor del SGBD suele tener módulos para: Interpretación de SQL Optimización de consulta Gestión de memoria intermedia Métodos de acceso (por ejemplo índices) Gestión de transacciones Control de acceso concurrente Seguridad Mantenimiento del catálogo (diccionario de datos) 9
Estructura de un SGBD Un SGBD está estructurado en diversos componentes o módulos, cada uno de los cuales hace una función específica. El S.O. proporciona servicios básicos Módulos: Procesador de consultas. Se encarga de transformar las consultas en instrucciones de bajo nivel Gestor de BD. Acepta consultas, examina los esquemas conceptual y externo para determinar que registros conceptuales se necesitan y llama al gestor de archivos para satisfacer esa solicitud. Gestor de Archivos. Manipula los archivos almacenados y gestiona la asignación de espacio en disco. Usuario paramétrico programas de aplicación Estructuras especiales de acceso Usuario ocasional consulta Diseñador de la BD esquema de BD Procesador de consulta Gestor de Base de Datos Gestor de Archivos Datos Almacenados Catálogo Usuarios SGBD Disco 10
Estructura de un SGBD Procesador de consultas: Usuario paramétrico Usuario ocasional Diseñador de la BD Usuarios Preprocesador de DML: convierte las instrucciones de DML de un programa de aplicación en llamas a funciones en el lenguaje host. Debe interactuar con el procesador de consultas para generar el código apropiado. Compilador DDL. Convierte las instrucciones DDL en una serie de tablas que contienen metadatos. Estas tablas se almacenan en el catalogo. Gestor del catalogo. Gestiona y mantiene el catalogo del sistema. programas de aplicación Preprocesador de LMD Código Objeto del programa Estructuras especiales de acceso consulta Procesador de consulta esquema de BD Gestor de Base de Datos Gestor de Archivos Datos Almacenados Compilador de LDD Gestor del Catálogo Catálogo SGBD Disco 11
Estructura de un SGBD Gestor de la BD: Control de autorización. Comprueba que el usuario tiene autorizaciones necesarias para realizar la operación requerida. Procesador de comandos. Una vez que el sistema ha comprobado los permisos del usuario, se pasa el control al procesador de comandos Módulo de integridad. Verifica que la operación satisface las restricciones de integridad. Control de concurrencia. Este módulo es el responsable de asegurar que las operaciones que se realizan concurrentemente sobre la base de datos tienen lugar sin conflictos. Gestor de transacciones. Realiza el procesamiento requerido para las operaciones que recibe de las transacciones. Gestor de recuperación. Garantiza que la BD permanezca en un estado coherente cuando se produzcan fallos. Optimizador de consultas. Determina la estrategia optima para la ejecución de las consultas. Gestor delbufer. Responsable de la transferencia de datos entre la memoria principal y el almacenamiento secundario. Usuario paramétrico programas de aplicación Preprocesador de LMD Código Objeto del programa Módulos de Integridad, concurrencia, transacciones, optimización y recuperación Estructuras especiales de acceso Usuario ocasional consulta Procesador de consulta Control de autorización Procesador de comandos Gestor de Archivos Datos Almacenados Diseñador de la BD esquema de BD Compilador de LDD Gestor del Catálogo Catálogo Gestor del búfer Usuarios SGBD Disco 12
Tendencias actuales Las tendencias actuales de los SGBD del mercado se pueden resumir en: Plataformas de paralelismo masivo Funcionalidad pensada para llevar a cabo análisis masivos de datos (data warehousing y data mining) Incorporación al mundo de la Orientación a Objetos Incorporación al mundo de Internet Incorporación a las arquitecturas de objetos distribuidos (como CORBA o COM++) 13