POLITECNICO COLOMBIANO “Jaime Isaza Cadavid” BASES DE DATOS - NOTAS DE CLASE Preparadas por José Ignacio Botero O. y Margarita María Hincapié V. CONCEPTOS BASICOS Sistema de Bases de Datos: Es un conjunto de archivos interrelacionados y una serie de programas de aplicación que permiten a varios usuarios tener acceso a estos archivos y modificarlos. Al conjunto de archivos se conoce comúnmente como la Base de Datos (BD). Al usuario del sistema se le brindarán recursos para realizar diversas operaciones sobre estos archivos, tales como: - Agregar archivos nuevos a la BD. - Insertar datos nuevos en archivos existentes. - Obtener datos de archivos existentes. - Actualizar datos de archivos existentes. - Borrar datos en archivos existentes. - Eliminar archivos ya existentes en la BD. Ejemplo 1.: Considere una institución que dicta cursos de computadores orientados por instructores. Se guarda información acerca de todos los cursos que se dictan, de los instructores y de los estudiantes matriculados en los cursos. Los registros referentes a los cursos, los instructores y los estudiantes, se mantienen en archivos permanentes del sistema. Pero además de estos archivos, el sistema cuenta con varios programas de aplicaciones que permiten manejar los archivos; entre ellos tenemos: - Un programa para hacer ingresos y retiros de estudiantes. - Un programa para adicionar un nuevo curso. - Un programa para hallar el promedio de estuantes por curso. - Un programa para generar listados de estudiantes por curso. Los programas son elaborados por los programadores del sistema en respuesta a las necesidades planeadas de la institución. Cada vez que se requiera se agregarán nuevos programas de aplicaciones y archivos de datos al sistema. Como vemos, un sistema de BD es un sistema computarizado cuyo propósito general es mantener información y hacer que esté disponible cuando se solicite. La información puede ser cualquier cosa que se considere importante para un individuo o para la Organización a la cual debe servir el sistema. La siguiente es una representación simplificada de un sistema de BD. Su propósito es mostrar como se integran los componentes principales de un sistema de BD.: Los datos o información, el equipo o hardware, los programas o software y los usuarios. (Gráfico 1) Notas de Clase BD Usuarios / programadores Sistema de base de datos Software del DBMS Programas de aplicación / consultas Software para procesar consultas / programas Software para tener acceso a los datos almacenados Definición de la base de datos almacenada (metadatos) Gráfico 1 José Ignacio Botero O. Margarita María Hincapié V. Base de datos almacenada Sistema de base de datos simplificado 2 Notas de Clase BD COMPONENTES PRINCIPALES DE UN SISTEMA DE BD *Los datos o información: Es cualquier ente significativo para la Organización donde el sistema opera y que le es necesario para los procesos de toma de decisiones inherente a la administración de dicha Organización. Los datos almacenados en el sistema se pueden dividir en una o más BD. En general, la información en la BD., al menos en los sistemas grandes, estará Integrada y además será Compartida lo cual constituye una ventaja importante de los sistemas de BD. Integrada significa que la BD puede considerarse como una unificación de varios archivos de datos y que elimina del todo o en parte cualquier redundancia entre ellos. La BD del ejemplo anterior podría contener un archivo de Estudiantes con datos de nombre, dirección, teléfono y también un archivo de Matriculas, que representaría la inscripción de estudiantes en los cursos que dicta la institución: Estudiante= (nombre, dirección, telefono,,...) Matrícula= (nombre, curso, ...) Si para llevar a cabo el proceso de administración de los cursos es preciso conocer la información de cada estudiante inscrito, es evidente que no hace falta incluir esa información, de manera redundante, en el archivo Matrícula, porque siempre podrá obtenerse mediante una consulta al archivo Estudiantes. Compartida significa que los elementos individuales de información en la BD pueden compartirse entre varios usuarios distintos, en el sentido de que todos ellos pueden tener acceso al mismo elemento de información y al mismo tiempo (acceso concurrente) y diferentes usuarios pueden utilizarlo para propósitos distintos. En el ejemplo anterior, los datos de los estudiantes seguramente serán compartidos por los usuarios de la oficina de contabilidad, los cuales utilizarán la información con diferente propósito. *El equipo o hardware: Los componentes de equipo del sistema son: Dispositivos de almacenamiento secundario donde se conservan los datos almacenados, junto con los dispositivos de Entrada y Salida asociadas, controladores de dispositivos, canales de entrada y salida… Además el procesador o procesadores y la memoria principal asociada, que hacen posible la ejecución de los programas del sistema de BD. *Los programas o software: Entre la BD física y los usuarios del sistema existe un nivel (módulo) de software llamado “Sistema de Administración de BD” o DBMS, el cual maneja todas las solicitudes de acceso a la BD formuladas por los usuarios. El DBMS es el componente de software más importante de todo el sistema, pero no el único. Entre los demás pueden mencionarse las rutinas de utilidad, las herramientas para desarrollar aplicaciones, las ayudas para el diseño, los generadores de informes. José Ignacio Botero O. Margarita María Hincapié V. 3 Notas de Clase BD *Los usuarios: Se consideran tres clases amplias de usuarios: programador de aplicaciones, usuario final y administrador de la BD (DBA). - Programador de aplicaciones: Se encarga de escribir los programas de aplicación que utilizan la BD. Estos programas operan sobre los datos de todas las formas acostumbradas: . Recuperación de información ya existente. . Inserción de información nueva. . Eliminación o modificación de datos. Estas funciones se llevan a cabo dirigiendo las solicitudes apropiadas al DBMS. - Usuario final: Es quien interactúa con el sistema desde una terminal en línea. Este puede tener acceso a la BD a través de una aplicación en línea o puede utilizar una interfaz incluida como parte integral de los programas del sistema de BD. La mayor parte de los sistemas incluyen también interfaces integradas adicionales que funcionan mediante la elección de opciones de un menú o el llenado de formas; esto para facilitar al usuario con pocos conocimientos en el procesamiento de datos, su labor. - Administrador de la BD (DBA): Es la persona encargada del control general del sistema de BD en el nivel técnico. Entre sus funciones está: . Decidir con exactitud cuál es la información que debe mantenerse en la BD, es decir, identificar las Entidades y la información que debe registrarse acerca de ellas. Este proceso se denomina definición del esquema conceptual. . Decidir cómo se representará la información en la BD almacenada. Este proceso se denomina definición del esquema interno. . Vincularse con los usuarios: Debe encargarse de la comunicación con los usuarios y garantizar la disponibilidad de los datos. . Definir los controles de seguridad e integridad. . Definir procedimientos de respaldo y recuperación para que en caso de que sufra daño cualquier porción de la BD (por causa de un error humano, o un fallo en el equipo o el sistema operativo que lo apoya) pueda reparar los datos implicados con un mínimo de retraso afectando lo menos posible al resto del sistema (vaciados periódicos de la BD). . Supervisar el desempeño y responder a cambios en los requerimientos: Es responsabilidad del DBA organizar el sistema de modo que se obtenga el desempeño que sea “mejor para la empresa”, y realizar los ajustes apropiados cuando cambien los requerimientos (nuevo hardware, intento de compartir datos, mejora en el desempeño, cambios en las estructuras de almacenamiento, mejoras en las técnicas de almacenamiento). . Especificación de los limitantes de integridad. Para facilitar estas tareas al DBA existen unos programas de utilidad o de servicio que hacen parte de un sistema práctico de BD; algunos de ellos son: José Ignacio Botero O. Margarita María Hincapié V. 4 Notas de Clase BD . Rutinas de carga: Para crear la versión inicial de la BD. . Rutinas de reorganización: Para reacomodar la información de la BD por diversos motivos (casi siempre relacionados con el desempeño); por ejemplo, para agrupar los datos de cierta manera, o recuperar espacio ocupado por datos ya obsoletos. . Rutinas de descarga / recarga: Para descargar la BD (o parte de ella) en medios de almacenamiento de respaldo con propósitos de recuperación, y para cargar otra vez los datos a partir de esas copias de respaldo. . Rutinas de estadística: Para calcular varias medidas estadísticas del desempeño, como son tamaños de archivo o distribuciones de valores de los datos, o cuentas de entrada y salida, etc. . Rutinas de análisis: Para analizar los datos estadísticos. . Rutinas de registro de eventos diarios: Que anotan cada operación contra la BD, quienes y el estado anterior y posterior de la misma. Uno de los recursos más importantes del DBA es el Diccionario de Datos. Esta es una BD en sí que contiene datos acerca de los datos, es decir, Metadatos, o sea la descripción de otros objetos del sistema (datos, programas, archivos, equipos, lenguajes, usuarios...) y las relaciones que se generan entre estos objetos. Ej.: Cuáles usuarios utilizan qué parte de la BD. QUE ES UNA BASE DE DATOS: Una BD está constituida por un conjunto de “datos persistentes” utilizado por los sistemas de aplicación de una empresa determinada. Los “datos persistentes” son los que se refieren a la operación de la empresa, y los cuales sirven de apoyo a la toma de decisiones. Los datos de una BD difieren de otros tipos de datos más efímeros como son los datos de entrada y de salida, las proposiciones de control, los resultados intermedios o cualquier información cuya naturaleza sea hasta cierto punto transitorio. Los “datos de entrada” se refieren a la información que entra al sistema por primera vez. Esta información podría dar pié a la modificación de los datos persistentes. Los “datos de salida” se refiere a mensajes y resultados que proceden del sistema; esta información podría derivarse de los datos persistentes. La clasificación de un dato entre persistente o no persistente, está regido por el contexto de su utilización. En consecuencia podemos definir que una base de datos es un conjunto de datos que hacen referencia al mismo asunto, que son persistentes y agrupados en archivos interrelacionados (Tablas) y de utilidad para un grupo de usuarios. José Ignacio Botero O. Margarita María Hincapié V. 5 Notas de Clase BD Ejemplo 2.: Considere una empresa en particular la cual registra información referente a: . Los proyectos que está manejando . Los empleados asignados a esos proyectos . Los departamentos a los cuales están adscritos los empleados Los proyectos, los departamentos y los empleados, constituyen las Entidades Básicas acerca de las cuales la empresa necesita registrar información en la BD. Es importante destacar, que además de las entidades básicas, existirán interrelaciones que vinculen a dichas entidades, las cuales se representan gráficamente mediante líneas o arcos. Por ejemplo, la interrelación entre los empleados, los departamentos y los proyectos: cada empleado trabaja en un proyecto y a la vez cada empleado está adscrito a un departamento. Estas interrelaciones también forman parte de la información como las entidades básicas, por lo tanto deben representarse en la BD. Las interrelaciones sirven para responder a preguntas tales como: . Dado un departamento, encontrar los empleados adscritos a él. . Dado un proyecto, hallar los empleados que trabajan en éste. . Dado un departamento, cuáles proyectos pertenecen a él. (Gráfico 2) Empleado Departamento Proyecto Gráfico 2 Se puede identificar que la entidad proyectos tiene una interrelación con sigo misma, esto implica que un proyecto X puede ser parte de otro proyecto Y. Las entidades y las interrelaciones tienen propiedades. Por ejemplo, los Empleados tienen Fecha de Nacimiento, los Departamentos tienen Nombre, los proyectos tienen Fecha de Inicio, por lo tanto tales propiedades deben estar representadas también en la base de datos. Gráficamente una entidad se puede identificar de la siguiente manera: José Ignacio Botero O. Margarita María Hincapié V. 6 Notas de Clase BD EMPLEADO Identificación Nombre Fecha de Nacimiento Teléfono PROYECTO Numero del Proyecto Nombre Departamento Fecha_inicio DEPARTAMENTO Identificación Nombre VENTAJAS DEL ENFOQUE DE BASES DE DATOS Estas ventajas se derivan de un control centralizado de los datos: - Es posible disminuir la redundancia al máximo: Lo que no ocurre si cada aplicación tiene sus propios archivos. Existen sin embargo, en ocasiones, motivos para mantener varias copias de los mismos datos almacenados; ya sean motivos técnicos o del negocio. - Es posible evitar la inconsistencia: Esto en el caso de no redundancia, pero si hay redundancia controlada la posibilidad también existe ya que se activarían procesos automáticos de actualización. - Es posible compartir los datos: Nuevas aplicaciones pueden utilizar datos ya almacenados. - Es posible hacer cumplir las normas: Al tener un control centralizado de la BD, el DBA puede garantizar la observación de todas las normas aplicables para la representación de los datos; esto como apoyo al intercambio de información, o migración de datos entre sistemas y además como ayuda para el compartimiento y comprensibilidad de la información. - Es posible aplicar restricciones de seguridad: Debido a la jurisdicción completa que tiene el DBA sobre la BD éste puede asegurar que el acceso a la BD sea sólo a través de los canales apropiados y definir las verificaciones de seguridad que se deben realizar cuando se intente acceder a información delicada. - Es posible mantener la integridad: Es decir, que la información de la BD sea correcta. Esto se logra definiendo y poniendo en práctica procesos de verificación para las operaciones de actualización de los datos (inserción, modificación o borrado). - Contar con la independencia de los datos: O sea la inmunidad de las aplicaciones ante los cambios en la estructura de almacenamiento y en las técnicas de acceso, las cuales pueden ser modificadas para lograr un desempeño ”óptimo para la empresa”. ARQUITECTURA PARA SISTEMAS DE BASES DE DATOS: José Ignacio Botero O. Margarita María Hincapié V. 7 Notas de Clase BD El objetivo de la arquitectura de tres niveles o esquemas consiste en formar una separación entre las aplicaciones del usuario y la base de datos física. La arquitectura de la BD se define en tres niveles de abstracción (niveles en los que puede observarse la BD): - Nivel interno o físico - Nivel conceptual - Nivel externo o de visión. Nivel Externo (Vistas individuales de los usuarios) Nivel Conceptual (Vista comunitaria de los usuarios) Nivel Interno (Vista del Almacenamiento) Gráfico 3 Nivel externo: Es el nivel de abstracción más alto, en el cual se describe solamente una parte de la BD y tiende a satisfacer las necesidades de los usuarios. El sistema puede proporcionar muchas vistas diferentes de la misma BD y a éstas se denominan subesquemas. Un archivo se ve de acuerdo a la tarea específica a realizar. El nivel externo hace referencia a la forma como el usuario final de la información percibe los datos. En este nivel los datos pueden estar procesados y presentados de diversas maneras. Por ejemplo: Identificación 1020 1021 José Ignacio Botero O. Margarita María Hincapié V. EMPLEADO Nombre Departamento Valentina Sistemas Cristina Planeación Sueldo 1,800,325 2,300,100 8 Notas de Clase BD Nivel conceptual: Es el nivel intermedio de abstracción en el cual se describe cuáles son los datos reales que están almacenados en la BD y qué relaciones existen entre los datos. Muestra el esquema lógico global de la BD en términos de unas cuantas estructuras. Es la visión organizacional de la BD que se obtiene al integrar todos los requerimientos de los usuarios. En el nivel conceptual la información se presenta tal y como es realmente, no como se presenta en el nivel externo. Por ejemplo, en el cuadro anterior de los Empleados se presenta información de los empleados y del departamento del que dependen; para el nivel externo es la forma adecuada de ver la información, pero para el nivel conceptual estaría distribuida en varios archivos o tablas como EMPLEADOS y DEPARTAMENTOS, esto implica que una ocurrencia en el nivel externo no siempre es igual en el nivel conceptual como es el caso de los Empleados y Departamentos. EMPLEADOS Identificación Tipo Tamaño Cod_emp Char 15 Nombre Char 50 Sueldo Number 10,3 Nivel físico: Es el nivel más bajo de abstracción, en el que se describe cómo se almacenan físicamente los datos. Se ocupa de índices, apuntadores, trayectorias de acceso a los datos, número de bytes, etc. (La información se guarda en árboles B-tree o AVL o Hashing). En el nivel interno se hace una representación de bajo nivel de toda la base de datos. EMPLEADOS Cod_emp Nombre Sueldo Longitud=18, Desplazamiento=0 Tipo=Byte(6), Desplazamiento=6, Indice=IEMP Tipo Byte(12), Desplazamiento=12 Correspondencia En la arquitectura de Bases de Datos existen correspondencias entre los diferentes niveles, una es la correspondencia entre el nivel externo y el conceptual y otra entre el nivel conceptual y el interno. La correspondencia conceptual/interna es la que especifica como se representan los registros y campos conceptualmente en el nivel interno. Si la estructura de almacenamiento en la base de datos es modificada, es necesario ajustar la correspondencia conceptual/interna existente entre los niveles. La correspondencia externa/conceptual se aplica de la misma manera que la correspondencia interna/conceptual. José Ignacio Botero O. Margarita María Hincapié V. 9 Notas de Clase BD El Sistema Administrador de Bases de Datos (DBMS). El DBMS es el conjunto de programas que maneja todo acceso a la base de datos, conceptualmente lo que sucede es lo siguiente: • • • Un usuario solicita acceso, empleando algún sublenguaje de datos determinado (por ejemplo el SQL). El DBMS interpreta esa solicitud y la analiza. El DBMS inspecciona, en orden, el esquema externo de ese usuario, la correspondencia externa/conceptual asociada, el esquema conceptual, la correspondencia conceptual/interna, y la identificación de la estructura de almacenamiento. LENGUAJES UTILIZADOS EN BASES DE DATOS Básicamente son dos: 1- El DDL (Lenguaje de definición de datos): Es el lenguaje especial para describir el esquema conceptual de la BD. Permite la definición de los objetos de la BD. El resultado de su compilación son tablas que se almacenan en el archivo especial llamado Diccionario de Datos. Este archivo se consulta siempre que se va a leer o modificar los datos reales en el sistema de bases de datos. La estructura de almacenamiento y los métodos de acceso empleados por el sistema de BD se especifican por medio de un conjunto de definiciones de otro tipo especial de DDL llamado “Lenguaje de almacenamiento y definición de datos”. 2- El DML (Lenguaje de manejo de datos): Permite a los usuarios manejar o tener acceso a los datos. El manejo consiste en: . Recuperación de información almacenada en la BD. . Inserción de información nueva. . Eliminación de información de la BD. . Modificación de información de la BD. Una CONSULTA es una proposición que solicita recuperación de información. Esta puede hacerse de dos maneras: - Desde un programa de aplicación como por ejemplo Cobol mediante instrucciones incrustadas en él (lenguaje huésped). Estas solicitudes planeadas son características de aplicaciones operacionales. - Por medio de un lenguaje de consulta directamente al DBMS, el cual hace parte del DML y que tiene además su propia sintaxis. Estas son solicitudes no planeadas, interactivas o propias de aplicaciones de apoyo a decisiones. ESTRUCTURA GENERAL DEL SISTEMA DE BASES DE DATOS José Ignacio Botero O. Margarita María Hincapié V. 10 Notas de Clase BD Un sistema de BD se divide en módulos que se encargan de cada una de las tareas del sistema general. Algunas de las funciones del sistema de BD pueden ser realizadas por el sistema operativo. Entre los componentes funcionales de un sistema de BD, se encuentran: Manejador de archivos: Encargado de asignar espacio en el disco y de las estructuras de datos que se van a emplear para representar la información almacenada en el disco. El manejador de bases de datos (DBMS): Que constituye la interfaz entre los datos de bajo nivel almacenados en la BD y los programas de aplicaciones y las consultas que se hacen al sistema. El procesador de consultas: Que traduce las proposiciones en lenguaje de consulta a instrucciones de bajo nivel que puede entender el manejador de BD. Además, el procesador de consultas trata de convertir la solicitud del usuario a una forma equivalente pero más eficiente, encontrando una estrategia adecuada para ejecutar la consulta (optimizador). El precompilador de DML: Que convierte las proposiciones en DML incrustadas en un programa de aplicaciones, en llamadas normales a procedimientos en el lenguaje huésped. Además, interactúa con el procesador de consultas para generar el código apropiado. El compilador de DDL: Que convierte las proposiciones en DDL en un conjunto de tablas que contienen metadatos. Estas tablas se almacenan en el Diccionario de Datos. Además se requieren varias estructuras de datos como parte de la implantación del sistema físico, incluyendo: - Archivos de datos que almacenan la BD. - Diccionario de datos: Que guarda la información relativa a la estructura de la BD; es una BD del sistema, no del usuario. - Índices: Que permiten el acceso rápido a elementos de información con valores determinados. José Ignacio Botero O. Margarita María Hincapié V. 11 Notas de Clase BD Gráfico 4. Estructura general del sistema de bases de datos FUNCIONES DEL DBMS 1- Definición de datos: El DBMS debe ser capaz de aceptar definiciones de datos (esquemas externo, conceptual, interno y todas las correspondencias asociadas). 2- Manipulación de datos: El DBMS debe ser capaz de atender las solicitudes del usuario para extraer y actualizar datos en la BD. 3- Seguridad e Integridad de los datos: El DBMS debe supervisar las solicitudes de los usuarios y rechazar los intentos de violar las medidas de seguridad e integridad definidas por el DBA. 4- Respaldo y Recuperación: Todo sistema está sujeto a fallas de distinta índole (caída de las cabezas lectoras de disco, interrupción del suministro de energía, errores de software, etc.). El DBMS es responsable de detectar estas fallas y restaurar la BD al estado antes de la falla. Esto se logra iniciando diversos procesos de respaldo y recuperación. José Ignacio Botero O. Margarita María Hincapié V. 12 Notas de Clase BD 5- Control de concurrencia: El DBMS o en su defecto el componente de software relacionado con él, el administrador de transacciones, debe controlar la interacción entre usuarios cuando ellos accedan en forma concurrente la BD para su actualización, ya que es necesario conservar la consistencia de los datos. 6- Diccionario de datos: El DBMS debe incluir una función de diccionario de datos. Este es una BD del sistema; su contenido puede considerarse como “datos acerca de los datos” (metadatos), es decir, se almacenan físicamente todos los diversos esquemas y correspondencias. 7- Desempeño: El DBMS deberá ejecutar todas estas funciones, en la forma más eficiente posible. CONCEPTOS DE ESQUEMA Y ESTADO DE UNA BASE DE DATOS Es importante en cualquier modelo de datos diferenciar entre los conceptos de esquema y estado de la BD. El esquema se refiere a la definición o descripción de la BD que se elabora durante la etapa de diseño y se espera que no sufra modificaciones constantes. Generalmente los modelos de datos representan el esquema a través de diagramas. El diagrama del esquema presenta la estructura de todos los tipos de registros y algunos aspectos o restricciones del esquema. Ejemplo: esquema de los objetos Empleado, Proyecto y Departamento de una base de datos. EMPLEADO Cod_emp Char(15) Nombre Char(50) Sueldo Number(10,3) PROYECTO DEPARTAMENTO Identificacion Char(10) Nombre_d Char(12) Numero_proy Char(10) Nombre_proy Char(50) Depto Char(15) Fecha_inicio Date A cada uno de los objetos del esquema se le denomina elemento del esquema. Los datos que contiene la BD en un momento determinado se denomina estado de la BD (conjunto de ocurrencias o ejemplares). El estado inicial al definirse el esquema de la BD es vacío. En un estado diferente de vacío, cada elemento del esquema tendrá su propio conjunto de ocurrencias. Por tanto, cada vez que se inserta, elimina o modifica el valor de un elemento de información, se cambia el estado de la BD. Un estado diferente de vacío para el ejemplo anterior sería: EMPLEADO Cod_emp Nombre 1111 Juan Pérez 2222 Luis Molina 3333 María Gómez José Ignacio Botero O. Margarita María Hincapié V. Sueldo 500 600 650 DEPARTAMENTO Identificación 1 2 3 Nombre_d Comunicacione s Ventas Talento humano 13 Notas de Clase BD PROYECTO Numero_proy 10 20 30 José Ignacio Botero O. Margarita María Hincapié V. Nombre_proy Nuevos productos Capacitación Reciclaje Depto 2 1 2 Fecha_inicio 02/20/07 11/10/07 08/25/07 14