P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING. INFORMÁTICA Base de Datos Usuario A Programa de Aplicación Bodega Usuario B • • • Usuario N • • • Insumo Proveedor Profesor: José Miguel Rubio L. Índice de Contenidos Introducción a las Bases de Datos El Recurso Dato Dato v/s Información Historia de las Bases de Datos Componentes de un ambiente de Base de Datos Beneficios & Riesgos del uso de Base de Datos Sistema de archivos v/s Bases de Datos Bases de Datos y Desarrollo de Sistemas de Información Base de Datos 2 Índice de Contenidos Sistemas de Gestión de Base de Datos Conceptos Principales funciones Ventajas de utilizar SGBD Consideraciones del uso de un SGB Base de Datos 3 Índice de Contenidos Modelamiento de una Base de Datos Modelo Conceptual: Entidad Relación Asociaciones entre entidades, Cardinalidad de Asociaciones Claves candidatas y claves primarias, Atributos multivaluados Reglas del Negocio Modelo Lógico: Relacional Modelo Lógico Transformación de entidades y relaciones Proceso de Normalización de Relaciones Análisis de vistas Base de Datos 4 Índice de Contenidos Metodología para el desarrollo de una BD Identificación y Formulación de Requerimientos Diseño Conceptual Diseño Lógico Diseño Físico Base de Datos 5 Definición de DBMS Un Sistema de Gestión de Base de Datos (SGBD, o Database Management System o DBMS) es una colección de programas que permiten a los usuarios crear y mantener una base de datos. El DBMS es por tanto un sistema (software) de propósito general que facilita los proceso de: Definición, Construcción y Manipulación de bases de datos para distintas aplicaciones. Base de Datos 6 Una Definición de DBMS El SGBD es un conjunto coordinado de programas, procedimientos, lenguajes, etc. que suministra, tanto a usuarios no informáticos como a los analistas, programadores o al administrador, los medios necesarios para describir, recuperar y manipular los datos almacenados en la base, manteniendo su integridad, confidencialidad y seguridad. Base de Datos 7 Objetivos del DBMS Objetivo principal de un DBMS: Proporcionar un entorno que sea a la vez conveniente y eficiente para ser utilizado al extraer y almacenar información en la base de datos. El DBMS suministra la interfaz entre el conjunto de los datos y dichos usuarios. El DBMS también debe proporcionar a los otros usuarios (analistas, programadores, administradores) las correspondientes herramientas que les permitan un adecuado desarrollo de sus funciones. Base de Datos 8 Alcances del DBMS Nivel Estratégico Nivel Táctico SGBD Base de Datos Nivel Operacional Base de Datos 9 Funciones del DBMS De Descripción o Definición: DDL De Manipulación: DML De Utilización Base de Datos 10 Funciones del DBMS De Descripción o Definición: Debe permitir al administrador de la BD especificar los datos que la integran, su estructura y las relaciones que existen entre ellos, las reglas de integridad semántica, los controles a efectuar antes de autorizar el acceso a la base, etc., así como las características de tipo físico y las vistas lógicas de los usuarios. Esta función la realiza el Lenguaje de Definición de Datos (DDL), propio del DBMS, y debe ser capaz de definir las estructuras de datos a los tres niveles (nivel externo, nivel lógico global o conceptual y nivel interno). Base de Datos 11 Funciones del DBMS De Descripción o Definición: A nivel interno se define: Espacio reservado para la base (volúmenes, cilindros y pistas). Longitud de los campos. Modo de representación de los datos (binario, decimal, alfanumérico, etc.). Caminos de acceso como punteros e índice. Base de Datos 12 Funciones del DBMS De Descripción o Definición: A nivel externo y conceptual: La función de descripción proporciona los instrumentos para la definición de entidades, su identificación, atributos, interrelaciones entre ellas, autorizaciones de acceso, restricciones de integridad, etc. Base de Datos 13 Funciones del DBMS De Manipulación: Permite a los usuarios de la base (todos) buscar, eliminar o modificar los datos de la base, de acuerdo a las especificaciones y normas de seguridad dadas por el administrador. Esto se realiza mediante el Lenguaje de Manipulación de Datos (DML), mediante un conjunto de instrucciones (lenguaje huésped) que son admitidas por un lenguaje de programación (lenguaje anfitrión), o bien, mediante un lenguaje auto contenido, que posee todas las instrucciones necesarias para llevar a cabo estas tareas. Base de Datos 14 Funciones del DBMS De Utilización: Reúne todas las interfaces que necesitan los diferentes tipos de usuarios para comunicarse con la base y proporciona un conjunto de procedimientos para el administrador. Algunas de estas funciones de servicio son: Cambiar capacidades de los archivos Obtener estadísticas de utilización Respaldos Cargar y descarga de la base Seguridad, etc. Base de Datos 15 Ventajas de Utilizar un DBMS Control de la redundancia. Restricción de los accesos no autorizados. Capacidad de realizar inferencias y acciones usando reglas. Suministro de múltiples interfaces de usuario. Representación de vínculos complejos entre los datos. Garantizar el cumplimiento de las restricciones de integridad. Suministro de copias de seguridad y recuperación. Base de Datos 16 Ventajas de Utilizar un DBMS Control de la redundancia: La redundancia, el almacenamiento de los mismos datos varias veces, provoca varios problemas. Es necesario realizar una misma actualización lógica (como introducir los datos de un nuevo alumno) varias veces: una vez por cada fichero en el que se registren los datos de alumnos. Esto implica una duplicación del trabajo. Se desperdicia espacio de almacenamiento al guardar los mismos datos en varios sitios, y este problema puede ser grave si las bases de datos son grandes. Es posibles que los ficheros que representan los mismos datos, se vuelvan inconsistentes. Base de Datos 17 Ventajas de Utilizar un DBMS Restricción de los accesos no autorizados: Es preciso controlar el tipo de operaciones de acceso (recuperación o actualización). Normalmente, a los usuarios o grupos de usuarios se les asignan números de cuenta protegidos con contraseñas, que sirven para tener acceso a la base de datos. El DBMS debe controlar un subsistema de seguridad y autorización que permita la DBA crear cuentas y especificar restricciones para ellas. El DBMS deberá entonces garantizar automáticamente el cumplimiento de dichas restricciones. Base de Datos 18 Ventajas de Utilizar un DBMS Capacidad de realizar inferencias y acciones usando reglas: Algunos sistemas de base de datos proporcionan la capacidad de definir reglas de deducción para inferir nueva información a partir de los hechos almacenados en la base de datos. A estos sistemas se les conoce como sistemas de bases de datos deductivas. Base de Datos 19 Ventajas de Utilizar un DBMS Suministro de múltiples interfaces de usuarios: En vista de que muchos tipos de usuario con diversos niveles de conocimientos técnicos utilizan BD, el DBMS debe ofrecer diferentes interfaces. Entre éstas podemos mencionar los lenguajes de consulta para usuarios ocasionales, las interfaces de lenguaje de programación para programadores de aplicaciones, los formularios y códigos de órdenes para los usuarios paramétricos y las interfaces controladas por menús y de lenguaje natural para los usuarios autónomos. Base de Datos 20 Ventajas de Utilizar un DBMS Representación de vínculos complejos entre los datos: Una BD puede contener numerosos conjuntos de datos que estén relacionados entre sí de muchas maneras. Es preciso que el DBMS pueda representar diversas relaciones complejas entre los datos y también obtener y actualizar con rapidez y eficiencia datos que estén mutuamente relacionados. Base de Datos 21 Ventajas de Utilizar un DBMS Garantizar el cumplimiento de las restricciones de integridad: La mayoría de las aplicaciones de la BD tienen ciertas restricciones de integridad que deben cumplir los datos. El DBMS debe ofrecer recursos para definir tales restricciones y garantizar que se cumplan. La restricción de integridad más simple consiste en especificar el tipo de datos para cada elemento de datos. Base de Datos 22 Ventajas de Utilizar un DBMS Suministro de copias de seguridad y recuperación: Todo DBMS debe contar con recursos para recuperarse de fallos de hardware o de software. El subsistema de copias de seguridad (backup) y de recuperación del DBMS es el responsable de llevar a cabo dicha recuperación. Por ejemplo, si el sistema falla mientras se está ejecutando un complejo programa de actualización, el subsistema de recuperación se encargará de asegurarse de que la BD se restaure al estado en el que estaba antes de que comenzara la ejecución de dicho programa. Base de Datos 23 Características del Servicio de Respaldo Respaldos Periódicos de la base de datos entera, en forma automática. Facilidades de “journal” o “audit-trail”, son registros donde se graba información sobre las transacciones que se ejecutan a la base de datos. Se manejan básicamente dos tipos de journal, uno que guarda información sobre la transacción (como el código y/o nombre de la transacción, fecha, número del terminal, registros accesados, registros modificados, etc.) y otro que registra los cambios en la base de datos, a través de preimagen (o copia de un registro antes de ser modificado) o postimagen (o copia del registro después que ha sido modificado). Base de Datos 24 Características del Servicio de Respaldo Facilidades de “checkpoint” (o puntos de control), es decir, el RDBMS escribe un registro especial en el archivo que está accesando, con información para reinicializar el sistema en caso de fallas. o hace automáticamente o en respuesta a comandos Base de Datos checkpoint checkpoint checkpoint • • • • rehacer de acá en adelant e 25 Servicio de Recuperación Es un módulo del RDBMS que se preocupa de reinicializar la base de datos a un estado procesable, luego de ocurrida una falla. Para ello, se utilizan las facilidades de journal (archivos preimagen y post-imagen) y los respaldos periódicos. Base de Dat os Dañada MÉTODO DE RECUPERACIÓN Base de Dat os Recuperada Respaldo de algún t ipo Base de Datos 26 Métodos de Recuperación RESTORE/RERUN: consiste en reprocesar las transacciones del día en conjunto con el respaldo periódico de la base de datos, hasta llegar al punto de la falla (es decir, los datos del proceso o período previo a la falla). . Full-backup de la Base de Dat os RESTORE / RERUN Base de Dat os Recuperada Transacciones Base de Datos 27 Métodos de Recuperación ROLLBACK (o BACKWARD RECOVERY): consiste en recuperar la base de datos a un estado anterior a un proceso fallido, es decir, los cambios hechos por las transacciones antes de una falla, son eliminados. Es un “undo” que toma el archivo pre-imagen y la base de datos con los cambios (es decir, la base de datos obtenida después de un proceso fallido), y genera una base de datos sin los cambios Base de Dat os Act ualizada ROLL BACK Base de Dat os Recuperada a un est ado previo a la falla Pre-Imagen Base de Datos 28 Métodos de Recuperación ROLLFORWARD (o FORWARD RECOVERY): consiste en recuperar la base de datos a un estado posterior a una falla del sistema, es decir, toma un respaldo de la base de datos y carga el archivo post-imagen sobre ella, generándose una base de datos en un estado posterior al momento de detectada la falla Full-backup de la Base de Dat os Base de Dat os ROLL FORWARD Recuperada a un est ado post erior a la falla Post -Imagen Base de Datos 29 ¿Cuándo un DBMS es Relacional? REGLA 0: Cualquier DBMS que sea anunciado o que afirme ser un RDBMS, debe ser capaz de administrar completamente la Base de Datos a través de sus características relacionales. Esto es cumplir con: REGLA 1: Representación de la información Toda información en una base de datos es representada por valores en tablas. REGLA 2: Acceso garantizado Cada dato o valor atómico en una base de datos relacional debe poder ser accesado por una combinación del nombre de la tabla, nombre de la columna y valor de la clave primaria. Base de Datos 30 ¿Cuándo un DBMS es Relacional? REGLA 3: Tratamiento de valores nulos Los valores nulos (distintos de blancos o cero) son utilizados para representar el hecho que sería erróneo o inapropiado que una columna no tuviera valor. Por ello, el RDBMS debe permitir definir columnas como “nulls not allowed”. REGLA 4: Diccionario de Datos en línea y basado en el modelo relacional La descripción de la base de datos (metadatos) es representada de la misma forma que los datos de la base de datos, con lo cual los usuarios autorizados (en especial los DBA) Base de Datos 31 ¿Cuándo un DBMS es Relacional? REGLA 5: Lenguaje de Definición de Datos Comprensivo Un RDBMS puede soportar trabajar con varios lenguajes, sin embargo, al menos debe tener un lenguaje que permita expresar definiciones de datos, definiciones de vistas, manipulación de datos (interactiva y por programa), restricciones de integridad (triggers, procedimientos almacenados), autorizaciones de acceso y control de transacciones (begin, commit y rollback). A este lenguaje se le denomina en forma genérica DDL (Data Definition Language). REGLA 6: Actualización vistas Todas las vistas (views) deben ser actualizadas (insert, delete o modify) automáticamente cuando exista una actualización a la(s) tabla(s) de la base de datos de la cual fue derivada. Por otra parte, si la vista es actualizada, debe alterarse la(s) tabla(s) de la base de datos sin ambigüedad. Base de Datos 32 ¿Cuándo un DBMS es Relacional? REGLA 7: Lenguaje de alto nivel para consultar, insertar, borrar y modificar Debe contarse con la capacidad de manejar una tabla base o una tabla derivada (view) con una operación simple, no sólo para recuperar sus datos, sino que también para insertar, borrar y modificar los datos. A este lenguaje se le conoce en forma genérica DML (Data Manipulation Language). REGLA 8: Independencia física de los datos Los programas de aplicación o los comandos interactivos, son independientes de la implementación física de los datos, es decir, deben ser escritos sin importar que exista un índice o un determinado método de acceso. Eso también implica que una recuperación óptima en cuanto a la secuencia de accesos a seguir, es de responsabilidad del RDBMS y no del usuario. Base de Datos 33 ¿Cuándo un DBMS es Relacional? REGLA 9: Independencia lógica de los datos Los programas de aplicación o los comandos interactivos, son independientes de la definición de la base de datos, es decir, cambios para ampliar o corregir una definición de la base de datos no deben significar redefinir o volver a poblar completamente la base de datos. REGLA 10: Independencia de la Integridad Las restricciones de integridad (que permiten controlar posibles pérdidas de datos que se producen por ejemplo, al añadir datos no válidos en la base de datos, al modificar datos existentes con un valor incorrecto, errores del sistema, al aplicarse los cambios parcialmente y no en todas las tablas involucradas, etc.), deben ser definidas a través del DDL y almacenadas en el diccionario de datos, no en los programas de aplicación. Base de Datos 34 ¿Cuándo un DBMS es Relacional? REGLA 11: Independencia en la Distribución El DML del RDBMS debe permitir que los programas de aplicación o los comandos interactivos, tengan la misma lógica cuando se trata de datos que están físicamente centralizados o están distribuidos. Es decir, cada programa debe considerar a la base de datos como si fuera local, es el RDBMS quien debe enrutar los accesos hacia los distintos nodos en que los datos estén (información que está en el diccionario de datos). REGLA 12: No subversión Si un RDBMS tiene un lenguaje de bajo nivel, éste no puede ser usado para sobrepasar las reglas de integridad y restricciones expresadas a través del lenguaje de alto nivel del RDBMS, por el contrario debe respetarlas. Base de Datos 35 Lenguajes de los DBMS Las distintas funciones que cumple un DBMS, hace necesario contar con diferentes lenguajes y procedimientos que permitan la comunicación con la BD. Para cumplir los objetivos asignados a la función de manipulación, se ha de contar con lenguajes que den a los usuarios la posibilidad de referirse a determinados conjuntos de datos que cumplan ciertas condiciones (criterio de selección). Se conoce SQL como lenguaje de manipulación de datos. Base de Datos 36 Cuando No Utilizar un DBMS A pesar de las ventajas que supone utilizar un DBMS, hay algunas situaciones en las que el empleo de un DBMS puede generar costos adicionales innecesarios, que se evitarían con el procesamiento de ficheros tradicionales. Estos costos adicionales son debido a lo siguiente: Una fuerte inversión inicial en equipo, software y capacitación. La generalidad que ofrece el DBMS para definir y procesar los datos. Los costos que implica ofrecer las funciones de seguridad, control de concurrencia, recuperación e integridad. Base de Datos 37 Cuando No Utilizar un DBMS Por tanto, puede ser más conveniente utilizar ficheros ordinarios en las siguiente circunstancias: La BD y las aplicaciones son simples, están bien definidas, y no se espera que cambien. Algunos programas tienen requerimientos estrictos de tiempo real que no podrían cumplirse por el costo extra del SGBD. No se requiere acceso multiusuario a los datos. Base de Datos 38