Lic. Norberto Alvarez – Base de Datos 1 IMPORTANTE El presente trabajo ofrece una síntesis sobre temas referidos a las Bases de Datos. Su objetivo es brindar una visión general que favorezca la integración de los temas y de los conceptos. NO REEMPLAZA NI SUSTITUYE la bibliografía recomendada para el curso ni los contenidos desarrollados por el profesor durante el dictado de las clases. BASE DE DATOS CONTENIDO SISTEMAS DE ARCHIVOS - INCONVENIENTES DEFINICION DE BASE DE DATOS ARQUITECTURA A TRES NIVELES MODELOS DE BASES DE DATOS OBJETIVOS DEL SGBD LENGUAJES USUARIOS DE UN SISTEMA DE BASE DE DATOS ADMINISTRACION DE BASES DE DATOS SECUENCIA DE EVENTOS PARA ACCEDER A UN REGISTRO CICLO DE VIDA DE UNA BASE DE DATOS SISTEMAS DE ARCHIVOS – INCONVENIENTES. Un sistema de información cuenta con algunos programas de aplicación que permiten manipular los datos de sus estos archivos, por ejemplo : programas para acreditar o debitar importes programas para agregar nuevos registros programas para averiguar el saldo ó estado de sus clientes programas para generar los resúmenes ó estadísticas Estos programas de aplicación han sido escritos por programadores en respuesta a las necesidades de la empresa. Se agregan nuevos programas de aplicación al sistema a medida que surgen nuevas necesidades y como resultado de esto, quizás se crearán nuevos archivos para contener más información, y se escribirán nuevos programas de aplicación. A medida que pasa el tiempo, más archivos y más programas son agregados al sistema. Dado que estos archivos y programas son creados a lo largo de un período extenso, presumiblemente por diferentes programadores, es muy probable que los Lic. Norberto Alvarez – Base de Datos 2 archivos tengan formatos diferentes y que los programas estén escritos en varios lenguajes de programación. El ambiente descripto anteriormente es un típico sistema de procesamiento de archivos, soportado por un sistema operativo convencional. Los registros permanentes son almacenados en varios archivos, y diferentes programas de aplicación son escritos para extraer registros y agregar registros a los archivos apropiados. Este esquema tiene ciertas desventajas: REDUNDANCIA E INCONSISTENCIA DE DATOS DIFICULTAD PARA ACCEDER A LOS DATOS MAYOR TIEMPO DE DESARROLLO Y CONOCIMIENTO ESPECIFICO PROBLEMAS DE CONFIDENCIALIDAD DEPENDENCIA FISICA Y LOGICA (en algunos casos) Estas dificultades, entre otras, han llevado al desarrollo de sistemas de bases de datos. DEFINICIONES DE BASE DE DATOS “Conjunto de datos operativos almacenados, a los que acceden los sistemas de aplicación de una empresa”. R.W.Engles “Colección de datos interrelacionados, archivados juntos, sin redundancias perjudiciales o innecesarias; su finalidad es la de servir a una o más aplicaciones de la mejor manera posible; los datos están almacenados de modo que resultan independientes de los programas que los usan; se emplean métodos bien determinados para incluir nuevos datos y para modificar o extraer los datos almacenados”. James Martin Un Sistema de Gestión de Bases de Datos ( SGBD ) es un conjunto de programas que permiten administrar ( gestionar ) una base de datos. ARQUITECTURA. El objetivo de un sistema de base de datos es el de simplificar y facilitar el acceso a los datos. Los usuarios del sistema no deberían preocuparse innecesariamente con los detalles físicos de la implementación del sistema. El sistema debe ocultar ciertos detalles de cómo los datos son almacenados y mantenidos. Esto se logra definiendo varios niveles de abstracción en los que puede visualizarse una base de datos. Esos niveles son: NIVEL FISICO O INTERNO NIVEL CONCEPTUAL O GLOBAL NIVEL EXTERNO O DE APLICACIÓN O DE USUARIO Normalmente varios esquemas externos se hacen corresponder a un esquema conceptual, que a su vez se hace corresponder Normalmente a un esquema físico. Esta correspondencia a dos niveles ( EE / EC y EC / EF ) es menos eficiente en Lic. Norberto Alvarez – Base de Datos 3 términos de rendimiento pero provee mayor independencia de datos, pues los esquemas físico y externos pueden ser alterados independientemente uno de otros. Hay independencia física cuando los cambios en la organización física de la BD no afectan al mundo exterior. Lic. Norberto Alvarez – Base de Datos 4 Hay independencia lógica cuando los usuarios no se ven afectados por los cambios en el nivel lógico. MODELOS DE BASE DE DATOS El conjunto de componentes o herramientas conceptuales que un SGBD proporciona para modelar recibe el nombre de modelo de BD. Los cuatro modelos de BD más utilizados son el modelo relacional, el modelo jerárquico, el modelo en red y el modelo relacional con objetos. Lic. Norberto Alvarez – Base de Datos 5 OBJETIVOS Los SGBD pretenden satisfacer un conjunto de objetivos : 1) Consultas no predefinidas y complejas Los usuarios podrán hacer consultas de cualquier tipo y complejidad directamente al SGBD. El SGBD tendrá que responder inmediatamente sin que estas consultas estén preestablecidas; es decir, sin que se tenga que escribir, compilar y ejecutar un programa específico para cada consulta. 2) Flexibilidad e independencia La complejidad de las BD y la necesidad de irlas adaptando a la evolución del SI hacen que un objetivo básico de los SGBD sea dar flexibilidad a los cambios interesa obtener la máxima independencia posible entre los datos y los procesos usuarios para que se pueda llevar a cabo todo tipo de cambios tecnológicos 3) Evitar redundancias En el mundo de los ficheros tradicionales, cada aplicación utilizaba su fichero. Sin embargo, puesto que se daba mucha coincidencia de datos entre aplicaciones, se producía también mucha redundancia entre los ficheros. Uno de los objetivos de los SGBD es facilitar la eliminación de la redundancia. 4) Integridad de los datos Aparte de las reglas de integridad que el diseñador de la BD puede definir y que el SGBD entenderá y hará cumplir, el mismo SGBD tiene reglas de integridad inherentes al modelo de datos que utiliza y que siempre se cumplirán. Son las denominadas reglas de integridad del modelo. Las reglas definibles por parte del usuario son las reglas de integridad del usuario. El concepto de integridad de los datos va más allá de prevenir que los programas usuarios almacenen datos incorrectos. En casos de errores o desastres, también podríamos perder la integridad de los datos. El SGBD nos debe dar las herramientas para reconstruir restaurar los datos estropeados 5) Concurrencia de Usuarios Un objetivo fundamental de los SGBD es permitir que varios usuarios puedan acceder concurrentemente a la misma BD. 6) Seguridad En el campo de los SGBD, el término seguridad se suele utilizar para hacer referencia a los temas relativos a la confidencialidad, las autorizaciones, los derechos de acceso, etc. LENGUAJES Para comunicarse con el SGBD, el usuario, ya sea un programa de aplicación o un usuario directo, se vale de un lenguaje, encontramos dos lenguajes: Lenguaje de definición de datos ( DDL ). Lenguaje de manipulación de datos ( DML ) Lic. Norberto Alvarez – Base de Datos 6 Sin embargo, lo más frecuente es que el mismo lenguaje disponga de construcciones para las dos funciones, DDL y DML. USUARIOS DE UN SISTEMA DE BASE DE DATOS. programadores de aplicaciones usuarios finales administrador de base de datos ADMINISTRACION DE BASES DE DATOS. Una de las principales razones para tener un SGBD es el control centralizado de los datos y de los programas que acceden a esos datos. La persona ( o grupo de personas ) que ejerce el control centralizado del sistema se denomina ADMINISTRADOR DE BASE DE DATOS. Las funciones del grupo de administración de base de datos ( ABD ) incluyen: Definición de esquemas Definición de las estructuras de almacenamiento y métodos de acceso Modificación de la organización lógica y física Autorización para el acceso a los datos Especificación de las restricciones de integridad Definición de los procedimientos de respaldo y restauración SECUENCIA DE EVENTOS PARA ACCEDER A UN REGISTRO. El SGBD es el software que maneja todo acceso a la base de datos. Cuando un programa de aplicación requiere información de la base de datos, tienen lugar varias operaciones. En los pasos involucrados en la consulta de un registro en particular es probable que se requieran algunos campos de varios registros conceptuales. Cada ocurrencia de un registro conceptual puede, a su vez, requerir campos de varios registros físicos. Conceptualmente, entonces, el SGBD debe primero recuperar todas las ocurrencias de registros físicos requeridos, luego construir las ocurrencias de registros conceptuales requeridos y finalmente construir la ocurrencia del registro solicitado. En cada paso, puede ser necesario realizar conversiones de tipos de datos. Para entender el funcionamiento de un SGBD, a continuación veremos los principales pasos de la ejecución de una consulta sometida al SGBD por un programa de aplicación. Explicaremos las líneas generales del flujo de datos y de control entre el SGBD, los programas de usuario y la BD. El SGBD, con la ayuda del SO, lee páginas de los soportes donde está almacenada la BD física, y las lleva a un área de buffers o memorias caché en la memoria Lic. Norberto Alvarez – Base de Datos principal. El SGBD pasa registros desde los buffers hacia el área de trabajo del mismo programa. Supongamos que la consulta pide los datos del alumno que tiene un determinado DNI. Por lo tanto, la respuesta que el programa obtendrá será un solo registro y lo recibirá dentro de un área de trabajo propia. En el siguiente gráfico vemos representada la BD, los tres niveles de esquemas, el área de los buffers, el SGBD y el programa de aplicación que le hace la consulta. 7 Lic. Norberto Alvarez – Base de Datos 8 El proceso que se sigue es el siguiente: a) Empieza con una llamada (1) del programa al SGBD, en la que se le envía la operación de consulta. El SGBD debe verificar que la sintaxis de la operación b) Si la consulta es válida, el SGBD determina, consultando el esquema interno (3), qué mecanismo debe seguir para responderla. Ya sabemos que el programa usuario no dice nada respecto a cómo se debe hacer físicamente la consulta. Es el SGBD el que lo debe determinar. Casi siempre hay varias formas y diferentes caminos para responder a una consulta*. Supongamos que ha elegido aplicar un hashing al valor del DNI, que es el parámetro de la consulta, y el resultado es la dirección de la página donde se encuentra (entre muchos otros) el registro del alumno buscado. c) Cuando ya se sabe cuál es la página, el SGBD comprobará (4) si por suerte esta página ya se encuentra en aquel momento en el área de los buffers (tal vez como resultado de una consulta anterior de este usuario o de otro). Si no está, el SGBD, con la ayuda del SO, la busca en disco y la carga en los buffers (5). Si ya está, se ahorra el acceso a disco. d) Ahora, la página deseada ya está en la memoria principal. El SGBD extrae, de entre los distintos registros que la página puede contener, el registro buscado, e interpreta la codificación y el resultado según lo que diga el esquema interno. e) El SGBD aplica a los datos las eventuales transformaciones lógicas que implica el esquema externo (tal vez cortando la dirección por la derecha) y las lleva al área de trabajo del programa (6). f) A continuación, el SGBD retorna el control al programa (7) y da por terminada la ejecución de la consulta. CICLO DE VIDA DE UNA BASE DE DATOS. El ciclo de vida de una base de datos comprende tres fases: FASE 1 – MODELIZACION. La definición del modelo es un proceso iterativo, discutido con los usuarios. FASE 2 – IMPLEMENTACION. La implementación de una base de datos implica 2.1 Definición de esquemas. 2.2 Carga inicial. 2.3 Programas de aplicación. FASE 3 – MANTENIMIENTO. Comprende dos clases de tareas: 3.1 Monitoreo. 3.2 Recuperación ante fallas.