TABLA DE CONTENIDO 1. BREVE HISTORIA DE LAS BASES DE DATOS 3 2. QUE ES UNA BASE DE DATOS? 6 3. LA INFORMACIÓN COMO RECURSO CORPORATIVO 3 Ventajas y Desventajas de un Sistema de Bases de Datos Funciones de un Sistema Gestor de Bases de Datos 7 7 4. NIVELES DE ABSTRACCIÓN DE UNA BASE DE DATOS 9 5. PROCESO DE DESARROLLO DE UNA BASE DE DATOS 11 6. LAS BASES DE DATOS Y EL DESARROLLO DE APLICACIONES 13 7. MODELAMIENTO CONCEPTUAL DE DATOS 15 8. ENTIDADES 17 9. RELACIONES 19 10. MATRIZ DE RELACIONES 22 11. LOS ATRIBUTOS 23 12. IDENTIFICADORES UNICOS 25 13. LA NORMALIZACIÓN 29 14. RELACIONES JERÁRQUICAS 34 15. RELACIONES RECURSIVAS 35 16. GENERACIONES DE BASES DE DATOS 38 1. Conceptos Básicos Claudia Jiménez Ramírez Bases de Datos 3 LA INFORMACIÓN COMO RECURSO CORPORATIVO En los últimos tiempos, se ha empezado a considerar la información como un recurso estratégico de una organización; pues le facilita su supervivencia y le permite, además, ser competitiva en el mercado. También le permite anticiparse a los cambios futuros y adaptarse mucho más rápidamente a ellos. De la información que una organización almacene y de cómo esté organizada esta información, dependen cuáles preguntas se pueden formular acerca de su gestión actual o pasada, tanto internamente como en el entorno. El tratamiento estadístico con datos históricos es factor clave en el futuro de la organización y vital en su planeación. La calidad y oportunidad de las decisiones a todos los niveles depende en gran medida de hacer llegar la información correcta en el momento adecuado, a las personas que la necesitan. La información se debe considerar como otro recurso corporativo de la misma manera que se considera el recurso humano o los recursos físicos. Por lo tanto, la administración de la información debe implicar: a) Planear su adquisición por anticipado. b) Conseguirla y guardarla antes de necesitarla. c) Protegerla contra la destrucción o el mal uso. d) Asegurar su calidad. e) Retirarla de la organización cuando ya no se la requiera. f) Asignarle un responsable. 2. Breve historia de las bases de datos La cantidad de información que debe manejar una organización para sobrevivir es cada vez mayor. Para ello, deben existir métodos eficientes tanto para el almacenamiento rápido como para la consulta ágil. La tecnología que actualmente es más utilizada para manejar grandes volúmenes de datos es la tecnología de Bases de Datos. Claudia Jiménez Ramírez Bases de Datos 4 En los inicios de la computación se elaboraban programas de computador a los cuales, siempre que se ejecutaban, se les proporcionaban los datos de entrada y no se veía la necesidad de guardar la información en memoria secundaria, tanto la resultante como la de entrada, para su uso posterior. Con el tiempo, el computador adquiere un uso más comercial en las empresas para llevar la contabilidad, la nómina y otras actividades. Estas tareas, por lo general, necesitaban una serie de datos iguales para usarlos en las diferentes corridas de los programas e implicaban un gran esfuerzo porque había que entrarlos nuevamente, cada vez. Ante este problema, aparecen los Sistemas de Archivos, donde los datos se almacenan de manera permanente para sobrevivir a los programas que los usan; característica conocida como la persistencia. Aunque el ambiente de archivos representó un avance en su momento, posteriormente se enfrentaron con tres problemas básicos. Información de estudiantes en archivos nombre, cédula, valor cancelado por matrícula, préstamos, etc. nombre, carrera, cédula, materias, notas, teléfono, etc. nombre, carrera, nota promedio, valor préstamo, caducidad, etc. Programas Lenguaje de desarrollo Ingresos y Egresos Registro y matrícula Fortran Cobol Préstamo estudiantil Pascal Figura 1. Ejemplo hipotético del Sistema de Archivos El primer problema, consiste en la alta redundancia de datos. El mismo dato aparece repetido en varios archivos. Las diferentes versiones de un mismo dato pueden estar con un grado de actualización distinto en cada lugar. Esto, además de aumentar los costos de almacenamiento y de reescritura de la información, puede dar lugar a inconsistencias: un directivo puede estar viendo un informe donde se muestra una cosa y viendo por pantalla, otra. El segundo problema es la inflexibilidad porque cuando se quiere agrupar los datos de cierta manera no se puede hacer, debido a la organización dada en los archivos que no tienen ninguna clase de vínculos o presentan formatos diferentes; como en el ejemplo hipotético de la ilustración 1. Esta inflexibilidad impide resolver rápidamente consultas espontáneas y aunque Claudia Jiménez Ramírez Bases de Datos 5 los datos existan, la información no puede proporcionarse relacionando datos. Esta es la queja constante de los directivos; que teniendo la información no tienen acceso a ella, en el momento en que la necesitan. El tercer problema que se presenta con el sistema de archivos es el costo de efectuar cambios en las estructuras de los datos porque al cambiar la representación de un dato, se necesita cambiar el programa para que lo reciba de la nueva manera. Además, es altamente probable que los mismos datos se encuentren en otros archivos; entonces los cambios se propagarán de una manera incontrolable por todos los lugares, aumentando el tiempo que el personal especializado debe invertir en el mantenimiento de los programas y, por ende, reduciendo el tiempo que le pudieran dedicar al desarrollo de nuevas aplicaciones. Uno de los objetivos de los Sistemas de Bases de Datos es tener la posibilidad de usar los datos de nuevas maneras sin generar una reacción en cadena de modificaciones difíciles sobre los otros programas existentes. El propósito, pues, del ambiente de bases de datos es separar cada programa de los efectos de los cambios a los otros programas. También, que todos los programas estén más aislados de los efectos de reorganizar los datos. Esta característica es conocida como independencia de datos. La tecnología de bases de datos proporciona los medios, a las organizaciones para que cumplan con sus objetivos de lograr máximos beneficios (para las entidades sin ánimo de lucro, a prestar un mejor servicio) y ocupar una posición de liderazgo por las razones que se enumeran a continuación. 1. Se logra el desarrollo de aplicaciones más rápidamente porque los programas reutilizan los datos y procedimientos almacenados en la base de datos y con lenguajes de programación de más alto nivel. 2. Hay una mayor participación del usuario final en la creación de las aplicaciones, haciendo el software más tangible y de mayor valor inmediato. 3. El acceso a los datos es flexible y rápido. 4. Se pueden generar informes y formularios de pantalla sin la programación convencional. 5. El usuario final puede, él mismo, extraer la información que necesita y crear nuevos tipos de datos. Claudia Jiménez Ramírez Bases de Datos 6 En otras palabras, permite a las organizaciones implantar el justo a tiempo para tener mejor y mayor información para la toma de decisiones e incrementar su productividad. 3. DEFINICION DE UNA BASE DE DATOS Es una colección de datos (actualmente, también de procedimientos o funciones) almacenados de una manera permanente, que pueden ser compartidos y usados con variados propósitos por múltiples usuarios. Un usuario determinado no tiene que ver todos los datos de la base de datos, sólo aquellos que necesita o esté autorizado para poder cumplir con sus funciones dentro de una organización. No todos los usuarios perciben los datos de la misma manera, a pesar de que puedan ser extraídos de la misma base de datos. Por ejemplo, la fecha de compra de un artículo puede ser vista por el asistente de mercadeo con un formato que no incluye la hora; mientras que el jefe de bodega sí necesita verla porque, para él, es información valiosa. Sin embargo, se debe señalar, que la consecución del objetivo de integrar toda la información de una organización para evitar redundancias, esencial para superar las limitaciones de los sistemas de archivos, a su vez, puede generar nuevos problemas o dificultades que se deben resolver. Entre ellos, está el problema del trabajo concurrente o simultáneo de un grupo de usuarios o aplicaciones sobre las mismas piezas de información y también el problema de la seguridad. Los usuarios de una base de datos se pueden clasificar en tres categorías: el usuario final que interactúa con la base de datos, por lo general, a través, de las aplicaciones, el usuario especialista que es el que diseña y programa las aplicaciones para los usuarios finales y, por último, la persona encargada de administrar la base de datos llamada en forma abreviada DBA (database administrator). No obstante, cualquier persona con cargos administrativos, ingeniero o profesional cuyo trabajo sea cambiado por los sistemas de bases de datos debería entender los principios de esta tecnología y lo que ello involucra. Claudia Jiménez Ramírez Bases de Datos 7 3.1 Ventajas y Desventajas de un Sistema de Bases de Datos 3.1.1 Ventajas 1. Economía de escala: esencialmente, la concentración de aplicaciones en una sola localidad puede reducir costos: menos cantidad de personas especializadas, en software, etc. 2. Se puede obtener mayor información de la misma cantidad de datos: existe una mayor facilidad para el análisis y la toma de decisiones. 3. Datos y programas compartidos: la reutilización de los mismos datos y programas, permiten minimizar o controlar la redundancia. 4. Incentiva la adopción de estándares. 5. Consistencia de los datos: está dada por el control o eliminación de la redundancia. 6. Integridad: el DBMS debe velar por el grado de validez y de corrección de los datos. Debe permitir definir reglas que deben cumplir los datos, en la base de datos. Por ejemplo, que el departamento asociado a un profesor sea uno de los existentes en la Universidad. 7. Seguridad: se pueden especificar niveles de acceso con una granularidad más fina, según los perfiles de los usuarios. 8. Flexibilidad y oportunidad: El uso de lenguajes de cuarta generación hacen más fácil la construcción de los programas por parte de los usuarios finales. 9. Mayor productividad de los programadores. Las aplicaciones nuevas pueden desarrollarse en la mitad del tiempo, o menos, que con los sistemas de archivos tradicionales debido al uso de lenguajes de tercera generación. 10.Facilidades para el mantenimiento y reingeniería: se puede cambiar la estructura de los datos sin cambiar los programas que los usan. 3.1.2 Desventajas 1. Tamaño: Un DBMS es un gran conjunto de programas. 2. Mayor susceptibilidad a las fallas: más cantidad de huevos en una sola canasta. 3. Recuperación a las fallas: la recuperación de un DBMS interactivo y multiusuario puede ser muy compleja. Funciones de un Sistema Gestor de Bases de Datos Un sistema gestor de bases de datos (DBMS o Database Management System) es el software que sirve de intermediario entre el usuario y la base de datos. Tiene las siguientes funciones: Claudia Jiménez Ramírez Bases de Datos 8 1. Interactuar en forma transparente con el manejador de archivos del sistema operativo para la actualización, almacenamiento y recuperación de los datos. El usuario, a excepción del DBA, no debería preocuparse por las estructuras internas o por los procedimientos usados para manipularlos. 2. Optimizar la búsqueda de la información. 3. Ofrecer un catálogo asequible por el usuario (autodescriptivo). Un DBMS debe ser capaz de responder a preguntas sobre: i) Los elementos que conforman la estructura de la base de datos. ii) Las características de los atributos o campos (i.e longitud, tipo de datos) iii) Las restricciones. iv) Los significados de los elementos o datos. v) Cuáles programas usan cuáles datos y cómo los usan. 4. Manejo de transacciones: para asegurar que todas las actualizaciones se hagan todas o ninguna. Una transacción es una secuencia de pasos para cumplir una tarea, según el punto de vista del usuario final. 5. Controlar el acceso concurrente o simultáneo a los mismos datos para que no existan conflictos por las peticiones de los usuarios o aplicaciones. 6. Servicios de recuperación ante fallas. i) Permitir hacer respaldos totales o parciales de la base de datos. ii) Creación y mantenimiento de archivos log de transacciones o bitácoras; que deben ser actualizados antes que los datos mismos. iii) Incluye la identificación de la transacción, hora y fecha de la misma. iv) Archivos de imágenes anteriores y posteriores. v) Permitir la devolución de la base de datos a un estado correcto conocido. 7. Poner en práctica la seguridad para impedir el acceso a los datos a los usuarios no autorizados mediante: i) El encriptamiento de la información. ii) Los subesquemas o vistas iii) Privilegios o reglas de autorización: sujeto, objeto, acción y restricción. iv) Procedimientos definidos por el usuario que pueden aumentar la seguridad. 8. Implantar mecanismos para preservar la integridad de los datos mediante la especificación con: i) Tipos de datos ii) Valores válidos iii) Formatos y valores por defecto Claudia Jiménez Ramírez Bases de Datos 9 iv) Restricciones 9. Servicios para promover la independencia de datos. 10.Otros servicios utilitarios para la administración de los datos. De lo recién expuesto, se puede apreciar que un sistema gestor de bases de datos debe realizar muchas tareas bastante complejas y de ahí su tamaño y costo. No obstante, en el mercado se pueden encontrar una gran variedad de sistemas gestores de bases de datos con precios muy disímiles y una de las razones se debe a que no todos ellos cumplen con las funciones que se acaban de mencionar. Funcionamiento de un DBMS Análisis sintáctico Error Verificación de privilegios y de la existencia de los objetos en la base de datos Diccionario de datos Optimización de la consulta Base de datos Bitácora Manejo de Transacciones Administración del almacenamiento 4. Niveles de abstracción de una base de datos La manera cómo percibimos la base de datos, según seamos usuarios finales, especialistas o administradores, corresponde con un nivel de abstracción. Claudia Jiménez Ramírez Bases de Datos 1 0 Por lo anterior, la ANSI/SPARC ha propuesto una arquitectura considerando tres niveles de abstracción. Los niveles son tres: Nivel de visión (vistas parciales) 1 2 n Nivel conceptual (vista comunitaria) Nivel físico (almacenamiento) 1. El nivel de visión o externo es el más cercano a los usuarios, esto significa que se ocupa de la forma cómo los usuarios individuales perciben la base de datos. A diferencia de los otros dos niveles, existen múltiples maneras de percibir la base de datos a este nivel; tantas como grupos de usuarios finales existan en la empresa. Toda vista externa de la base de datos, se define mediante subesquemas. 2. El nivel conceptual es el nivel mediador entre el nivel físico y el de visión, se ocupa de cuáles son los datos reales almacenados en la base de datos y de las relaciones existentes entre ellos. Este nivel, es de interés primordialmente para el usuario especialista. El esquema lógico, correspondiente con este nivel de abstracción, está conformado por la descripción semántica de los datos que conforman la base de datos. 3. El nivel físico o interno es el más cercano a la máquina, es decir, es el que se ocupa de la forma como se almacenan los datos físicamente en la memoria secundaria. El nivel físico de la base de datos interesa al administrador y al usuario especialista. La descripción de este nivel de abstracción se le denomina esquema físico y está conformado por la descripción de los datos, sus tipos, su tamaño y dominio de acuerdo con un DBMS particular. Claudia Jiménez Ramírez Bases de Datos 1 1 Independencia de datos: es una característica de las bases de datos que permiten modificaciones en la definición de un esquema sin afectar, en la medida de lo posible, la reescritura del esquema inmediatamente superior. Independencia física: cuando un cambio en el esquema físico no conduce a efectuar cambios en el esquema lógico. Independencia lógica: cuando un cambio en el esquema lógico no conlleva a un cambio en el nivel de visión. Este tipo de independencia es más difícil de lograr que la independencia física. 5. Proceso de desarrollo de una base de datos El desarrollo de una base de datos, es una técnica “arriba-abajo” que transforma los requerimientos de información en una base de datos en funcionamiento. REQUERIMIENTOS DE INFORMACIÓN DE LA ORGANIZACIÓN Estrategia Análisis Diseño Conceptual de la Base de Datos Modelo Entidad-Relación Diseño Construcción Diseño lógico de la Base de Datos Tablas, Índices, Vistas, Clústeres, Definiciones de espacios Implementación de la Base de Datos El diseño conceptual parte de la especificación de requerimientos y su resultado es el esquema conceptual, cuyo propósito es describir el contenido de información de la base de datos, más que las estructuras de almacenamiento que se necesitarán para manejar la información. Es una descripción de alto nivel que es completamente independiente del software de DBMS que se use, incluso si se pensara en implementar con archivos tradicionales y con algún lenguaje de programación convencional. Claudia Jiménez Ramírez Bases de Datos 1 2 El diseño lógico parte del esquema conceptual y da como resultado el esquema lógico. El esquema lógico es una descripción de la estructura de la base de datos que puede procesar el software DBMS. El modelo lógico más usado actualmente, es el modelo relacional que ha sido enriquecido con los modelos orientados por objetos. El modelo lógico no depende del DBMS en particular, sino del modelo de datos usado por el DBMS. El diseño físico parte del esquema lógico y da como resultado un esquema físico. Es una descripción de cómo está almacenada la base de datos en la memoria secundaria; describe las estructuras de almacenamiento y los métodos usados para tener un acceso efectivo a los datos. Los esquemas lógicos y físicos se expresan haciendo uso del lenguaje de definición de datos del DBMS elegido; la base de datos se crea y se carga, y puede ser probada. Lo mismo, puede probarse las aplicaciones sobre la base de datos y de este modo la base de datos se vuelve operacional. Claudia Jiménez Ramírez Bases de Datos 1 3 6. LAS BASES DE DATOS Y EL DESARROLLO DE APLICACIONES El proceso de desarrollo de la base de datos está estrechamente acoplado con el proceso de desarrollo de aplicaciones: Requerimientos de la organización REQUERIMIENTOS DE INFORMACION REQUERIMIENTOS DE APLICACIONES Estrategia Modelamiento Conceptual de Chequeos Cruzados Análisis Modelo Entidad-Relación Diseño Diseño de la Base de Datos Chequeos Cruzados Tablas, Indices, Vistas, Clusters, Definiciones de espacios Construcción Construcción de la Base de Datos Modelamiento de Funciones Modelo Jerárquico Def de Funciones DFDs Diseño de las Aplicaciones Diseño de módulos Construcción de las aplicaciones APLICACIONES EN OPERACIÓN BASE DE DATOS EN OPERACIÓN SISTEMA EN OPERACIÓN Figura 2 Acoplamiento de la visión orientada a los datos y a las aplicaciones Un enfoque alternativo en el diseño de los sistemas informáticos llamado orientado a las funciones se desarrolló en la década de 1960 consiste en centrarse en las aplicaciones y no en los datos. Claudia Jiménez Ramírez Bases de Datos 1 4 El análisis funcional parte de los requerimientos de aplicaciones que describen las actividades y los flujos de información dentro de una organización para llegar a una especificación formal de los procesos y considera los archivos de datos depósitos de información aislados, utilizados por cada actividad o intercambiados entre ellas; se pierde la visión de la información como recurso corporativo de la organización. Los enfoques orientados a los datos y a las funciones para el diseño de sistemas informáticos son complementarios, ambos proporcionan características relevantes y se deben relacionar íntimamente como se muestra en la ilustración 2. Lo anterior, también ha originado un el enfoque llamado orientado a objetos donde se determinan los objetos del dominio del mundo real relevantes en la solución del problema, con sus características y comportamiento y de esta manera juntar los dos enfoques anteriores. Independiente del enfoque utilizado, la tarea más difícil en el proceso de desarrollo de una base de datos es determinar los datos necesitados por los usuarios, representarlos en la base de datos y asegurar que ellos son, en verdad, usados apropiadamente. Esto se dificulta, aún más, debido a los diferentes nombres que los usuarios dan a un mismo dato, o por el contrario, el mismo nombre para distintos datos. De lo expuesto, nace la necesidad adicional de la creación de un diccionario de datos donde cada término es definido según el lenguaje de la empresa, buscando una estandarización para los datos y un significado preciso para cada palabra. Claudia Jiménez Ramírez Bases de Datos 1 5 7. MODELAMIENTO CONCEPTUAL DE DATOS Los modelos de datos son usados para describir la realidad. Los diseñadores usan los modelos de datos para construir esquemas que son representaciones de la realidad. La calidad de los esquemas resultantes dependerá, no sólo del modelo elegido, sino también de la habilidad del analista. Un modelo de datos es una serie de conceptos que se utilizan para describir un conjunto de datos y de operaciones para manipular los mismos. Cuando un modelo de datos describe un conjunto de conceptos de una realidad se llama modelo conceptual. El bloque de construcción común a todos los modelos conceptuales de datos es una pequeña colección de mecanismos de abstracción: clasificación (agrupación de una clase de objetos con características comunes), agregación (una nueva clase formada por la reunión de varios objetos) y la generalización o especialización (una relación de subconjunto entre los elementos de dos o más clases). La abstracción es un proceso mental que se aplica al seleccionar algunas características y propiedades de un conjunto de objetos y excluir otras no pertinentes. En el modelamiento conceptual, se identifican las propiedades estructurales (sobre los objetos, sus atributos y relaciones) y dinámicas (operaciones sobre los objetos) además de ciertas restricciones de integridad, de un dominio de aplicación con miras a su transformación en un modelo de más bajo nivel. Los modelos conceptuales deben ser buenas herramientas para representar la realidad; por esta razón debe poseer, entre otras las siguientes características: 1. Expresividad: los modelos más ricos en conceptos son más expresivos. Por ejemplo, la mayoría de los modelos conceptuales hacen uso frecuente de la abstracción de generalización lo que permite la representación de una gran variedad de restricciones de integridad. 2. Simplicidad: un modelo conceptual debe ser simple o fácil de entender por los diseñadores y por los usuarios finales. Esta propiedad y la expresividad son objetivos en conflicto; si un modelo es semánticamente rico, es probable que no sea simple. Claudia Jiménez Ramírez Bases de Datos 1 6 3. Minimalidad: esta característica se consigue si ningún concepto presente puede expresarse por otros conceptos. Con la minimalidad se persigue que el modelo abstraiga lo esencial de la realidad, buscando la parsimonia. 4. Formalidad: todos los conceptos deben tener una interpretación única, precisa y bien definida. Los modelos en la ingeniería del software, suelen describirse mediante representaciones lingüísticas y gráficas. El éxito de un modelo de datos depende en gran medida de su representación gráfica que debe ser lo más completa posible (si no requiere complementarse con una representación lingüística) y facilidad de lectura (si cada concepto se representa con un símbolo gráfico claramente distinguible del resto). El modelo Entidad-Relación es el más usado para el modelamiento conceptual de bases de datos. Fue propuesto por Chen en 1976. En 1988, la ANSI seleccionó el modelo E-R como el modelo estándar para los sistemas de diccionarios de recursos de información (IRDS, Information Resource Dictionary Systems). Posteriormente, el modelo fue extendido por otros autores, como Richard Barker en la metodología Case Method, para adicionar una mayor semántica. En la figura siguiente, se aprecia un ejemplo de un diagrama entidadrelación, con la notación de Barker. EMPLEADO # * carné * nombre asignado a * apellido responsable o cargo de * fecha enganche o salario o comisión subordinado de jefe de DEPARTAMENTO # * número * nombre * ubicación Los conceptos básicos de un modelo Entidad-Relación son: Claudia Jiménez Ramírez Bases de Datos 1 7 • Entidad - representa una clase de objetos de la realidad, de la que se necesita mantener y conocer información. • Relación - representa una conexión entre los objetos de una o más entidades. • Atributo - representa una propiedad básica que caracteriza a una entidad o a una relación. El modelo Entidad-Relación es un medio efectivo para recopilar y documentar los requerimientos en un formato claro y preciso. Esto es, un marco de especificación formal, fácil de entender por los usuarios finales, agilizando la comunicación entre éstos y los usuarios especialistas. El modelo E-R (Entidad-Relación) se caracteriza, además, porque se puede refinar con facilidad. Proporciona un claro cuadro del alcance de los requerimientos de información y sirve de base de integración de múltiples aplicaciones, proyectos de desarrollo y paquetes comerciales. Es importante establecer completamente los requerimientos de información de la organización durante la etapa de modelamiento para evitar cambios en etapas posteriores del desarrollo, pues siempre implican costos mayores que los que se detectan en una etapa temprana. El modelo E-R puede ser transformado una base de datos jerárquica, en red, relacional u orientada por objetos e, incluso, a un ambiente tradicional de desarrollo de software. Esto es, puede ser traducido a cualquier modelo lógico que se desee. 8. ENTIDADES Una entidad es una clase de objetos de importancia, en el dominio del problema, sobre la cual se debe guardar o conocer alguna propiedad. También puede definirse como una categoría. Ejemplos de entidades son: EMPLEADO ARTICULO TIQUETE Las entidades pueden ser simples si son irreducibles o complejas cuando están formadas, a su vez, por otras entidades. Claudia Jiménez Ramírez Bases de Datos 1 8 Cada entidad se define por los atributos y sus relaciones que poseen. Por lo tanto, toda entidad debe poseer dichas propiedades. Algunos atributos posibles para la entidad EMPLEADO son: su fecha de vinculación, el salario y cargo. Convenciones: ü Para dibujar las entidades en el diagrama E-R se utilizan cajas, con bordes redondeados, de cualquier dimensión. ü Cada entidad lleva un nombre único en mayúscula y en singular. ü Puede ir un nombre sinónimo entre paréntesis. Los sinónimos son útiles cuando dos grupos de usuarios usan diferentes nombres para referirse a una misma entidad. ü Los nombres de los atributos deben ir en minúsculas. Ejemplos: EQUIPO # ¯ ¯ ¯ referencia fabricante marca fecha de compra # ¯ ¯ ¯ PROYECTO código nombre fecha de inicio fecha de finalización Cada entidad suele tener múltiples ocurrencias o instancias; es decir, debe tener asociada una población de objetos. Toda instancia tiene valores específicos para los atributos de la entidad. Cada instancia debe ser identificable de las otras instancias u ocurrencias de la misma entidad. Un atributo o conjunto de atributos que identifican inequívocamente a cada instancia es llamado identificador único (IU). Para los empleados, por ejemplo, el atributo cédula serviría como identificador único. Los atributos que identifican a una entidad son marcados con el símbolo #. Para identificar y modelar las entidades de las notas de las entrevistas, se recomiendan los siguientes pasos: Claudia Jiménez Ramírez Bases de Datos 1 9 1. Examinar los sustantivos presentes en la descripción verbal de los requerimientos de información. ¿Son cosas de importancia para considerarlos como entidades? 2. ¿Hay información de interés que se deba almacenar sobre esa entidad? 3. ¿Es identificable unívocamente cada instancia de esa entidad? 4. Elabore una descripción de cada entidad (será incluida en el diccionario de datos). 5. Dibuje la entidad y colóquele sus atributos. No se debe descalificar una entidad muy rápidamente. Posteriormente, pueden surgir atributos de interés para la organización sobre esa entidad. 9. RELACIONES Una relación es una asociación bidireccional, significativa, nombrable entre dos entidades, o de una entidad consigo misma. Cada relación asocia una instancia de cada una de las entidades involucradas en ella. La sintaxis de una relación, permite una lectura: debe una o varias Cada entidad1 puede ser o estar nombre-relación una y sólo una entidad2 Ejemplo La relación entre PROFESOR y CURSO es: Cada CURSO puede ser dictado por uno y sólo un PROFESOR. Cada PROFESOR puede ser el docente de uno o más CURSOs. Cada dirección de una relación tiene ciertas características que se pueden especificar en el modelo E-R: • Un nombre - por ejemplo dictado por, asignado a • Una opcionalidad (una cardinalidad mínima). • Un grado o cardinalidad máxima. Para dibujar las relaciones en el diagrama E-R, se siguen las siguientes convenciones: • Una línea entre las entidades relacionadas. Claudia Jiménez Ramírez Bases de Datos 2 0 • Los nombres de las relaciones se escriben en minúsculas y se colocan en los extremos de la línea de la relación. • La cardinalidad mínima se representa con: Si es obligatoria (debe ser o estar) Si es opcional (puede ser o estar) • El grado o cardinalidad máxima se representa con: Si la relación se puede dar con una o varias instancias de la otra entidad Si la relación se puede dar sólo con una y sólo una instancia de la otra entidad Si la cardinalidad, máxima o mínima, tiene una restricción numérica definida, se le agrega al extremo de la línea conectiva. Una relación se lee primero en una dirección, y luego en la otra dirección. Ejemplo Para leer la relación entre EMPLEADO y DEPARTAMENTO: EMPLEADO asignado a DEPARTAMENTO responsable de Primero se leerá de izquierda a derecha: “Cada EMPLEADO debe ser asignado a un, y sólo un, DEPARTAMENTO”. Ahora, si se lee de derecha a izquierda, sería como se muestra a continuación. “Cada DEPARTAMENTO puede ser responsable de uno o varios un EMPLEADOs”. Existen tres tipos de relaciones, de acuerdo con su grado: Claudia Jiménez Ramírez Bases de Datos 2 1 • De muchos a uno (n:1) que se caracteriza por tener un grado de uno o más en una dirección y un grado de uno y sólo uno en la otra dirección. Es una relación frecuente. Ejemplo TIQUETE comprado por PASAJERO poseedor de • De muchos a muchos (n:m) que tienen un grado de uno o más en ambas direcciones. También es una relación muy común. Ejemplo ARRENDADOR generador de originado por ALQUILER • Uno a uno (1:1) tiene un grado uno y sólo uno en ambas direcciones. Este tipo de relaciones es rara. Es importante tener cuidado ya que puede que una relación de éstas entre entidades sea realmente una misma entidad. Ejemplo Claudia Jiménez Ramírez OPERARIO encargado de manejada por Bases de Datos 2 2 MAQUINA Todas las entidades, relaciones y atributos deben representar los requerimientos de información y las reglas de la organización. 10. MATRIZ DE RELACIONES Como ayuda inicial en la recolección de la información acerca de las relaciones entre un conjunto de entidades se emplea la matriz de relaciones. Una matriz de relaciones muestra para cada entidad fila sobre el lado izquierdo si tiene una relación y cómo es ésta, con cada entidad columna. Todas las entidades son listadas tanto en el lado izquierdo como en la parte superior de la matriz. Si una entidad fila tiene una relación con una entidad columna, entonces se coloca el nombre de la relación en la celda que las intercepta. Si no existe una relación se coloca una raya horizontal. Cada relación encima de la diagonal es la inversa o el espejo de una relación por debajo de la diagonal. Las relaciones recursivas (de una entidad consigo misma) se representan sobre la línea diagonal. Ejemplo La siguiente matriz muestra las relaciones entre cuatro entidades. CLIENTE ARTICULO CLIENTE ARTICULO ORDEN BODEGA Hecha para ORDEN el generador de comprado mediante BODEGA almacenado en Compuesta de sitio de almacenamiento Una vez se tengan definidas las relaciones en la matriz, se pueden llevar al modelo entidad-relación. Claudia Jiménez ARTICULO código descripción Ramírez comprado por almacenado en compuesta de Bases de Datos 2 3 ORDEN número fecha originada por el repositorio de BODEGA identificador dirección el originador de CLIENTE identificador razón social dirección Debemos leer en voz alta las relaciones para validarlas y emplear la matriz de relaciones para examinar si existe una relación entre cada pareja de entidades. No se deben usar los términos "relacionado con" o "asociado a" como nombres de relaciones, pues estos nombres no definen cuál tipo de relación se está modelando. 11. LOS ATRIBUTOS Los atributos son información que se necesita conocer y mantener de una entidad. Sirven para describir, identificar, cualificar, clasificar, cuantificar o expresar un estado de una entidad. Los atributos representan un tipo de descripción o detalle, no una instancia; los nombres dados a los atributos deben ser claros para el usuario y no deben incluir el nombre de la entidad; ya que sería redundante como en el caso de colocar código de curso en la entidad CURSO. Los nombres de los atributos deben ser específicos y completos. Esto es, cantidad comprada, fecha de envío en vez de, únicamente, cantidad y fecha. Las convenciones que rigen para representar los atributos en diagrama E-R, señalan que siempre deben ir en singular y en minúscula y se colocan dentro de la caja de la entidad Se debe descomponer un atributo hasta aquella componente mínima con significado propio. Así, el nombre de una persona debe ser descompuesto en nombre y apellidos. Los atributos que contengan fechas no se Claudia Jiménez Ramírez Bases de Datos 2 4 descomponen. No obstante, el nivel de descomposición dependerá de las necesidades organizacionales. Se debe verificar que cada atributo tenga un solo valor para cada instancia de la entidad; pues un atributo con múltiples valores o grupos que se repiten no son un atributo válido, en este modelo. Para representarlos, entonces, es necesario ascenderlos a la categoría de entidad. Ejemplo En ESTUDIANTE, el atributo notas es multivaluado: ESTUDIANTE carné nombre apellido carrera notas Entonces, es preciso crear promover el atributo notas a la categoría de clase y establecer una relación con estudiante. Se debe verificar que un atributo no sea calculado o derivado de los valores existentes de otros atributos. El atributo derivado es redundante y las redundancias pueden conducir a inconsistencias en los valores de los datos. Algunas veces se necesita, por cuestiones de eficiencia, tener datos redundantes; pero se debe tener muy presentes en la etapa de diseño para que sean, en la medida de lo posible, calculados o recalculados (en el caso de correcciones) automáticamente por el sistema. Si un atributo tiene, a su vez, atributos propios; entonces debe modelarse como otra entidad. Ejemplo Claudia Jiménez COMPUTADOR referencia marca tarjeta madre fecha de compra Ramírez Bases COMPUTADOR referencia marca fecha de compra de Datos 2 5 TARJETA MADRE poseedora de para número serie chip procesador velocidad procesador chip coprocesador Existen atributos obligatorios y otros que pueden ser opcionales. El atributo obligatorio significa que en todo momento es importante conocer el valor que toma para cada ocurrencia de la entidad y se marcan con un asterisco. Cuando el atributo es opcional se marca con la letra “o”. Ejemplo PERSONA * código * nombre o profesión * sexo o peso 12. IDENTIFICADORES UNICOS Un identificador único (IU) puede ser cualquier combinación de atributos y/o relaciones que sirven para identificar inequívocamente una ocurrencia de una entidad. Cada instancia debe ser completamente identificable. Puede ocurrir que una entidad sea identificada por medio de una relación. En las corporaciones financieras, por ejemplo, a cada sucursal se le asigna un número de identificación y dentro de ellas, cada cuenta tiene un número único. Entonces, una CUENTA se identifica completamente con su número más el número de la sucursal. Claudia Jiménez Ramírez Bases de Datos 2 6 Observe cómo, en este caso, se coloca una barra para indicar que la relación forma parte del identificador único. Una relación parte de un Identificador Unico debe ser obligatoria y de grado uno y sólo uno en la dirección que participa en la identificación única. No es raro, tampoco, que una entidad sea identificada por varias relaciones. Ejemplo Para diferenciar una inscripción a un curso de otra, se necesita el carné del estudiante, el código del curso y de la fecha de inscripción INSCRIPCION # * fecha o nota definitiva de para registrado en motivo para ESTUDIANTE CURSO # * carné * nombre # * código * nombre Una entidad puede tener más de un identificador único. Este es el caso de un estudiante que posee un carné y un documento de identificación (cédula o T.I) Se debe seleccionar uno, entre los candidatos, para que sea el identificador único y los otros se dejan como UI secundarios; aunque, lastimosamente, no se muestran los identificadores únicos alternos en el modelo E-R. En ocasiones, se usan identificadores artificiales (como pasa en la realidad) para ayudar en la diferenciación rápida de las instancias de una entidad. Ejemplo Claudia Jiménez Ramírez Bases de Datos 2 7 ARTICULO * descripción * unidad de medida * marca * cantidad a la mano * precio de venta Para identificar los artículos que vende una tienda, se necesitaría de la descripción del artículo, de la unidad de medida y de la marca. Para evitar un identificador único tan largo, es mejor crear un código artificial que será único para cada instancia. Claudia Jiménez Ramírez Bases de Datos 2 8 NORMALIZACION DEL MODELO DE DATOS Claudia Jiménez Ramírez Bases de Datos 2 9 13. La normalización La normalización es un concepto de bases de datos relacionales, pero sus principios se pueden aplicar desde la etapa del modelamiento conceptual. La ubicación de los atributos se valida, usando las reglas de normalización La primera forma normal (1FN) determina que todos los atributos deben poseer un sólo valor (ser atómicos). La segunda forma normal enuncia que todo atributo debe ser dependiente del identificador único de la entidad a la que pertenece. La tercera forma normal dice que ningún atributo que no sea identificador único puede depender de otro que tampoco lo sea. Lo que se persigue con la normalización es evitar redundancia de datos y, por ende, posibles inconsistencias. Hasta la tercera forma normal generalmente se acepta que se normalice. Regla de la primera forma normal: todos los atributos deben poseer un sólo valor. Revise que ningún atributo tenga más de un valor para cada instancia de una entidad. Ejemplo PACIENTE # * identificación * nombre * dirección * teléfono * fechas citas El atributo fechas de las citas porque tiene múltiples valores. Por lo tanto, la entidad PACIENTE, no está en primera forma normal debemos crear una nueva entidad CITA MEDICA con una relación uno a muchas con PACIENTE. Claudia Jiménez CITA MEDICA Ramírez de Datos 3 0 PACIENTE para # * número * fecha Bases figura en # * identificación * nombre * dirección * teléfono SOLUCION: Si un atributo tiene múltiples valores, cree una entidad adicional y relaciónela con la original con una relación n:1. Regla de la segunda forma normal: todo atributo debe ser dependiente del identificador único de la entidad a la que pertenece. Para validar si entidad cumple con la segunda forma normal, verifique que cada identificador único específico determine una sola ocurrencia para cada atributo. Asegúrese de un atributo no dependa únicamente de una parte del IU de esa entidad. Ejemplos 1. Valide si PACIENTE está en segunda forma normal PACIENTE # * identificación * nombre * dirección * teléfono Cada instancia una identificación de paciente determina un valor específico para nombre, dirección y teléfono. Entonces los atributos están bien ubicados. 2. Valide la ubicación de los atributos para las entidades CUENTA # * número * fecha apertura * localización manejada por administrador de BANCO # * número * nombre Claudia Jiménez Ramírez Bases de Datos 3 1 En el ejemplo anterior, cada instancia de BANCO y de un número de cuenta determinan una fecha específica de apertura. El atributo localización está mal ubicado. Depende del BANCO pero no del número de la cuenta. No debería ser, entonces, atributo de cuenta. SOLUCION: si un atributo no depende del identificador único entero, está mal ubicado y debe ser movido a otra entidad. Regla tercera forma normal: ningún atributo que no sea identificador único puede depender de otro que tampoco lo sea. Ejemplo Verifique si algún atributo no IU depende de cualquier otro que tampoco es IU REVISTA # * número * codigo editorial * nombre editorial * fecha publicación El atributo nombre de la editorial depende de otro que no es identificador único: código de la editorial. Luego, se debe crear una nueva entidad EDITORIAL y se reubican los atributos. REVISTA # número * fecha publicación EDITORIAL editada por editora de # codigo * nombre Solución: si un atributo no IU depende de otro que tampoco es IU, mueva ambos a una nueva entidad relacionada con la original. Resolución de las relaciones de muchos a muchos (n:m) Una relación de este tipo no debe aparecer en el modelo E-R. Una relación de muchos a muchos se resuelve adicionando una entidad de intersección. Ejemplo Claudia Jiménez Ramírez Bases de Datos 3 2 Considere una relación muchos a muchos entre COMPAÑÍA DE SEGUROS y SINIESTRO. SINIESTRO COMPAÑIA DE SEGUROS # Código * Nombre # Número * Nombre El valor del seguro y la fecha de vencimiento del mismo, son atributos de la relación entre SINIESTRO y COMPAÑÍA DE SEGUROS. Los atributos sólo describen a las entidades. Si los atributos describen una relación, entonces ésta debe ser resuelta. Se resuelve una relación n:m con una entidad nueva de intersección y dos relaciones 1:n. Para el ejemplo, se puede adicionar la entidad de intersección POLIZA. POLIZA # número * fecha inicial * fecha vencimiento * valor asegurado ASEGURADORA de encargada de # código * nombre * dirección registradora de amparado con SINIESTRO # código * nombre En efecto, los atributos valor del seguro, la fecha inicial y de vencimiento pertenecen a la entidad POLIZA. Para resolver una relación muchos a muchos, se ubica la entidad de intersección de tal manera que las patas de gallina siempre se dirijan hacia la izquierda o hacia arriba en el diagrama: Claudia Jiménez Ramírez Bases entidad de intersección de Datos 3 3 o así entidades de referencia El identificador único de una entidad de intersección casi siempre está compuesto por las relaciones de las dos entidades que le dieron origen. Ejemplo CURSO # código * nombre * créditos * duración ESTUDIANTE tomado por # carné inscrito en * nombre * teléfono Para resolver la relación de muchos a muchos, adicionamos la entidad de intersección INSCRIPCION y dos relaciones 1: m. INSCRIPCION * fecha iniciación * fecha culminación * nota definitiva para de tomado via CURSO # código * nombre * créditos * duración registrado en ESTUDIANTE # carné * nombre * teléfono Una vez se identifique la entidad de intersección, se deben buscar atributos adicionales que la describan. Puede ocurrir, sin embargo, que obtengamos una entidad de intersección sin atributos; en este caso tendremos sólo una referencia cruzada entre las ocurrencias de las entidades y el identificador único para la entidad de intersección, estará siempre compuesto de las relaciones de las dos entidades de las cuales se originó. Claudia Jiménez Ramírez Bases de Datos 3 4 Una entidad de intersección sin atributos es la excepción a la regla de que una entidad siempre debe poseer atributos para poder ser, realmente, una entidad. Ejemplo ACTOR # código * nombre artistico o nombre real o fecha nacimiento PELICULA protagonista de protagonizada por # identificador * nombre * clasificación Para esta relación de muchos a muchos, no se identifican atributos asociados. Entonces, se resuelve con una entidad de intersección sin atributos. PAPEL ESTELAR de en poseedor de ACTOR # código * nombre artistico o nombre real o fecha nacimiento figurar con PELICULA # identificador * nombre * clasificación 14. Relaciones jerárquicas Los identificadores únicos para un conjunto de entidades con una relación de jerarquía se pueden propagar a través de múltiples relaciones como se ilustra en el siguiente ejemplo. Claudia Jiménez Ramírez Bases de Datos 3 5 APARTAMENTO # número * propietario situado en conformado por PISO # número situado en conformado por BLOQUE # número situado en conformado por UNIDAD # código * nombre * dirección El IU de APARTAMENTO es el número del apartamento y del PISO donde se localiza. El IU de PISO es el número del piso y del BLOQUE donde se localiza. El IU de BLOQUE es el número del bloque y del código de la UNIDAD donde se localiza. Cuando las estructuras jerárquicas cambian a menudo, es mejor crear atributos artificiales para ayudar a identificar las entidades. 15. Relaciones recursivas Una relación recursiva es aquella que posee una entidad consigo misma. Claudia Jiménez Ramírez Bases de Datos 3 6 Ejemplo EMPLEADO # cédula * nombre o profesión * cargo * fecha ingreso * salario bajo ordenes de a cargo de La convención para dibujar una relación recursiva es conocida con el nombre de “cola de marrano”. Puede aparecer en cualquier lado de la caja de la entidad; pero recordando que el lado de muchos siempre va hacia la izquierda o hacia arriba. Es recomendable representar una relación jerárquica como una recursiva: APARTAMENTO # número * propietario situado en conformado por PISO # número LOCALIZACION situado en conformado por BLOQUE # número situado en conformado por UNIDAD # código * nombre * dirección # código o nombre o dirección o propietario conformada por dentro de Claudia Jiménez Ramírez Bases de Datos 3 7 La entidad recursiva debe incluir todos los atributos de cada entidad individual. La relación recursiva debe ser siempre opcional en ambas direcciones; puesto que la jerarquía sería infinita. Claudia Jiménez Ramírez Bases de Datos 3 8 16. Generaciones de Bases de Datos El origen del primer DBMS ocurre a mediados de los años sesenta cuando IBM y Rockwell International desarrollaron las primeras versiones de un sistema conocido como DL/I con el propósito de administrar la gran cantidad de datos del proyecto espacial APOLO [GON96]. Posteriormente, le adicionan una componente de control de la información, en el sistema (ICS) para el acceso a los datos en forma concurrente. El anterior producto se comercializa en 1969, bajo el nombre de IMS/360 (Information Management System para el IBM 360). Los sistemas manejadores de bases de datos, DBMS, se pueden clasificar por el método empleado para estructurar los datos internamente. A las estructuras de datos utilizadas se les llaman también modelos físicos de datos. El IMS es un DBMS de tipo jerárquico, es decir, se sustenta sobre una estructura de datos jerárquica o de árbol; en donde los nodos representan las entidades y los arcos representan las relaciones. La arquitectura del IMS se muestra en la figura 3. Aplicación 1 Programa de comunicación Aplicación 2 Aplicación n Programa de comunicación Programa de comunicación Descripciones de la base de datos Figura 3. Arquitectura del DBMS Jerárquico IMS/360. Claudia Jiménez Ramírez Bases de Datos 3 9 Las descripciones de la base de datos, definen una base de datos física que agrupa la información sobre todos los segmentos (que representan las entidades) con su longitud y clave, entre otras cosas. El programa de comunicación define el mecanismo usado para el paso del modelo lógico al físico. Finalmente, cada aplicación define el conjunto de procedimientos y de funciones que requiere un usuario final. Los desarrolladores de bases de datos jerárquicas se referían a las relaciones 1:n, como relaciones “padre-hijo” entre los registros; que se podían implementar por medio de adyacencia física (registro padre + arreglo de registros hijos) o por medio de punteros. Las bases de datos jerárquicas se construyen reuniendo múltiples relaciones padre-hijo. La figura 4, muestra una estructura de árbol cuyo nodo raíz, es Asignatura. ASIGNATURA Código Descripción REQUISITOS CURSOS Fecha PROFESORES Cédula Nombre Grupo Aula ESTUDIANTES Cédula Nombre Figura 4. Estructura de una base de datos académica. El problema básico de la estructura jerárquica, consistió en que un registro hijo no podía tener dos registros padres distintos. Esta situación impedía representar relaciones muchos a muchos, sin tener redundancia. Considere, por ejemplo, las relaciones siguientes (ver figura 5): Un estudiante puede matricularse en varios cursos (relación 1:n) Un curso puede ser tomado por varios estudiantes (relación 1:n) Claudia Jiménez Ramírez Bases de Datos 4 0 Si se quisiera generar el certificado del registro académico de un estudiante, se tendría que usar la primera relación. Si se quisiera generar la lista de estudiantes matriculados en un curso dado, se tendría que usar la segunda relación. El modelo jerárquico obliga a repetir información para dar respuesta a estos dos tipos de consultas. REGISTRO ESTUDIANTE CURSO Figura 5. Una relación n: m Segunda Generación de Bases de Datos Para resolver el problema de la redundancia en las bases de datos jerárquicas, con las relaciones de muchos a muchos, surgen las bases de datos en red. La estructura de un DBMS en red es esencialmente la misma que en el modelo de datos jerárquico; excepto que un “miembro” (registro hijo) puede pertenecer a más de un “conjunto” (registro padre). Los DBMS en red son más generales que un DBMS jerárquico; pues un árbol siempre podrá ser una red, en cambio una red puede no ser un árbol. Las redes de conjuntos de una base de datos siempre son implementadas mediante punteros, como lo ilustra la figura 6. 123 | Juan Pérez registro 128 registro 146 registro 145 registro 149 Figura 6. Una instancia de Conjunto A pesar de superar el problema de la redundancia de datos, se originó otro relacionado con el manejo de punteros; pues además de aumentar la complejidad, las relaciones que se creaban por medio de ellos hacían que Claudia Jiménez Ramírez Bases de Datos 4 1 se tuviera definir de antemano cómo se consultarían los datos; restando flexibilidad a los sistemas. TERCERA GENERACION DE BASES DE DATOS En 1970, E.F. Codd de la IBM propone el modelo relacional que está basado en la teoría de conjuntos y en la lógica de predicados de primer orden. La idea de Codd consistía en evitar el uso de punteros por parte de los usuarios especialistas para facilitar la gestión de los datos y sus relaciones; el DBMS se debería encargar del manejo de los punteros de las estructuras de datos físicas. La técnica consistía en representar los datos como tablas bidimensionales; una manera mucho más sencilla y comprensible y por ello, este modelo de datos logró la popularidad que hoy sigue teniendo. Codd encontraba otro problema básico de los modelos primitivos, además del manejo de punteros, que era la restricción de procesar sólo un registro a la vez y por ello el usuario debía controlar condiciones como "fin de archivo". En lugar de ello, él quería que se pudiera realizar operaciones sobre conjuntos de datos y que el DBMS controlara los detalles o las condiciones para llevar a cabo estas operaciones. Ventajas del modelo relacional 1. Separación clara del nivel lógico y el físico. El usuario no ve para nada el nivel físico. 2. Simple y fácil de trabajar con él. La representación de los datos por tablas es intuitiva pues recuerda las hojas electrónicas. 3. Operadores poderosos para la manipulación de datos. 4. Fundamentos teóricos sólidos. Desventajas: 1. La eficiencia se ve afectada por la prohibición de manejo de punteros en forma explícita; aunque en algunos manejadores de bases de datos se puede tener acceso a los objetos mediante su ROWID. Terminología Antes de explorar el modelo relacional es importante dar la definición de los conceptos básicos que éste incluye. Relaciones y Tablas La estructura básica del modelo relacional, y de ahí su nombre, es la relación. El término relación es tomado de la teoría de conjuntos y no tiene que ver para nada Claudia Jiménez Ramírez Bases de Datos 4 2 con el hecho de que los datos puedan estar relacionados. Una relación es un concepto abstracto de un estructura bidimensional. Una relación se puede definir por comprensión o por extensión. Así, por ejemplo, podemos definir por comprensión la relación R: R = { x / x(identificación, nombre, telefono) es estudiante de la Universidad Nacional } La estructura bidimensional que asociamos familiarmente a una relación es la tabla, entonces estos dos términos se usan indistintamente. Una relación en este modelo tiene las siguientes propiedades: • Cada celda es atómica o univaluada • Cada columna tiene un nombre único dentro de la tabla • El orden de las columnas o filas es indiferente. • Cada fila es distinta e identificable por alguna combinación de sus valores en los atributos. Tuplas, Atributos y Cardinalidad Cada instancia o fila de una relación se le denomina tupla y a cada columna se le denomina también atributo. Al número de atributos se le denomina el grado de una relación y al número de tuplas se le denomina cardinalidad o extensión de la relación. Dominio Un dominio es un conjunto aceptable de valores para un atributo. Un dominio puede ser compartido por varios atributos y se puede restringir para velar por la integridad de la base de datos. Clave Primaria Las claves sirven para la identificación de las tuplas. Se utiliza, entonces, una colección mínima de atributos como clave primaria para representar los identificadores únicos del modelo E-R. Clave candidata: Claudia Jiménez Ramírez Bases de Datos 4 3 Atributo (columna) o atributos que identifican a una tupla (fila) dada. La clave primaria es la clave candidata elegida por el DBA. Clave foránea: Es un atributo que es clave primaria en otra relación. Permite explícitamente especificar las relaciones entre dos diferentes tablas y es también un mecanismo para asegurar la integridad. Terminología Alternativa de términos Relacional Relación Tupla Atributo Instancia Común Tabla Fila Columna Valor Sistemas de Archivos Archivo Registro Campo Valor DISEÑO DE BASES DE DATOS El diseño de la base de datos se realiza durante la etapa de diseño del sistema y se hace al tiempo con el diseño de la aplicación de las aplicaciones que se piensen desarrollar, en paralelo. El diseño, produce especificaciones para la implementación de bases de datos relacionales; incluyendo definiciones para las relaciones, los índices, las vistas que se deben crear y otras especificaciones sobre el espacio de almacenamiento. Se debe documentar el sistema, con una tabla de especificaciones para cada relación en el modelo relacional. Tabla de Especificación de la Relación EMPLEADOS Nombre EMPNO NOMB APELL TBJO FCHING SAL JEFE DEPNO CF1 CF2 Columna Tipo de CP Clave Nulos/ NN, U NN NN NN NN 7369 Pedro Hoyos Dependiente 17-12-80 800 7902 20 7902 Ana Casas Analista 03-12-81 3000 7566 50 Unicos Ejemplos • Los tipos de clave válidos, son CP para una columna de clave primaria, y CF para una columna de clave foránea. Claudia • • • • • • Jiménez Ramírez Bases de Datos 4 4 Se usan sufijos para distinguir entre múltiples columnas de CF en una tabla simple, por ejemplo, CF1 y CF2. Se rotulan múltiples columnas clave con el mismo sufijo. Se usa el rótulo NN para las columnas que deben ser definidas como no nulas (NOT NULL). Se usa el rótulo U para una columna que deba ser única (unique). Si varias columnas deben ser únicas en combinación, se nombran con sufijos, por ejemplo U1. Se designa una columna simple que es clave primaria como NN, U. Se designan múltiples columnas CP como NN, U1 o posiblemente como NN, U1, U. El modelo E-R de una institución de educación no formal que se observa en la figura número 1, se empleará para ilustrar como transformar el modelo E-R en un modelo relacional. INSCRIPCION * Fecha inscripción o Fecha finalización o Nota para de tomado por medio de CURSO # Código * Nombre o Cuota o Duración dictado por registrado con ESTUDIANTE # Identificación * Nombre * Apellido * Teléfono instructor de PROFESOR # Identificación * Nombre * Apellido oTeléfono oficina Figura 7 Modelo E_R de una institución educativa Se siguen una serie de pasos para transformar el Modelo E-R a una serie de relaciones, produciendo un diseño inicial de la base de datos. PASO 1 - CONVERTIR LAS ENTIDADES SIMPLES A RELACIONES Claudia Jiménez Ramírez Bases de Datos 4 5 Las entidades simples, entidades que no son subtipos o supertipos, ni participan en una relación exclusiva en el modelo E-R, se transforman en relaciones del modelo relacional. Se crea una tabla de especificación para cada entidad simple. Inicialmente se comienza con el nombre que se le va a dar a esta entidad en el modelo relacional. El nombre de la tabla debe permitir recordar el nombre de la entidad. Se acostumbra a utilizar el plural del nombre de la entidad para el nombre de la relación en el modelo relacional, en especial si éste no es largo. PASO 2 - CONVERTIR LOS ATRIBUTOS A COLUMNAS Cada atributo se vuelve una columna de la relación a la cual pertenece. Se debe especificar que los atributos requeridos son columnas NOT NULL (NN). Ejemplo: Como los atributos identificación, nombre y apellido son atributos de entrada obligatoria de la entidad PROFESOR, se transforman en columnas no nulas. Se debe, entonces, designar sus columnas como NOT NULL. PROFESOR Nombre Columna ID_PROF NOMB APELL NN NN NN TEL Tipo de Clave Nulos/ Unicos Ejemplos Para cada atributo, se sugiere seleccionar un nombre de columna corto pero significativo. El nombre de la columna debe ser fácil de recordar. Es bueno utilizar abreviaturas consistentes para evitar confusión al programador y al usuario. Por ejemplo, Número será abreviado como NO o NUM. Esto es, NODEPTO o NUMDEPTO? Los nombres de las columnas cortos reducen el tiempo requerido para la ejecución de comandos del SQL. Para determinar los tipos de datos adecuados es útil documentar las tablas de especificaciones, con tuplas ejemplo. Los datos ejemplo, se pueden obtener de diversas maneras: • De notas de entrevistas con los usuarios finales. • De la documentación de sistemas informáticos actuales. • De conversaciones adicionales con el usuario. Claudia Jiménez Ramírez Bases de Datos 4 6 PASO 3 - CONVERTIR LOS IDENTIFICADORES UNICOS A CLAVES PRIMARIAS En este paso, cada atributo que hace parte de los identificadores únicos de la entidad se convierten en columnas con tipo de clave primaria (CP). • Todas las columnas CP deben ser también NN y U. Un identificador único que incluya varios atributos, se convierte en una clave primaria compuesta. Estas columnas son NN y U1. • Si el identificador único, IU, de una entidad incluye una relación, se deben añadir las columnas de las claves foráneas a la tabla y marcarlas como parte de la clave primaria. Ejemplo: el identificador único de la entidad INSCRIPCION está compuesto por las relaciones con las entidades CURSO y ESTUDIANTE. Por lo tanto, es necesario añadir dos columnas claves foráneas, a la tabla INSCRIPCION, para formar su clave primaria. Tabla: INSCRIPCION Columna Tipo Clave Nulos/ Unicos Ejemplos • • • FCH_INS FCH_FIN NOTA 29/09/98 --28/06/98 28/06/98 21/05/98 ----4.1 4.2 4.0 NN 20/08/98 05/06/98 14/06/98 08/05/98 05/05/98 COD_CUR ID_EST CP, CF1 CP, CF2 NN, U1 NN, U1 344 401 717 717 401 47593 15402 51394 94572 51394 Escoger un nombre único para cada columna CF, y rotular la(s) columna(s) CP, NN y CF. Si existen múltiples columnas CF en la tabla, usar sufijos para distinguir entre ellas, por ejemplo, CF1 y CF2. Debemos rotular varias columnas claves con el mismo sufijo Una CP compuesta debe ser única en combinación y se debe rotular como U1. PASO 4 - CONVERTIR LAS RELACIONES EN CLAVES FORANEAS Claudia Jiménez Ramírez Bases de Datos 4 7 Para una relación 1:n, se debe tomar el IU de la entidad con cardinalidad de uno y ponerla en la tabla relacional que corresponde a la entidad con cardinalidad de muchos. Por ejemplo, se toma la clave primaria Identificación en el lado de uno, y se coloca en la relación CURSO que está en el lado de "muchos". instructor de dictado por CURSO #Código * Nombre o Cuota o Duración Nombre Columna Tipo de Clave Nulos/ Unicos Ejemplos • • Tabla: CURSO COD_CUR NOMBRE CUOTA PROFESOR # Identificación * Nombre * Apellido DUR oTeléfono ID_PROF oficina CF CP NN, U NN 344 974 401 717 SQL SERVER ORACLE DISEÑO BD TAREAS DE UN DBA 1000 400 400 900 5 2 2 3 81 73 95 73 Se debe seleccionar un nombre único para la columna CF y rotularla como CF. Para relaciones obligatorias también se debe especificar que la columna es no nula, NN. Para una relación 1:1 obligatoria, se debe colocar la clave foránea única en la tabla al lado de la obligatoriedad y usar la restricción de NOT NULL para hacer cumplir la relación de obligación. Ejemplo: la relación entre COMPUTADOR PERSONAL y TARJETA MADRE ES UNA RELACIÓN 1:1 y es obligatoria hacia tarjeta madre. Entonces, se coloca la clave foránea de la relación en la tabla COMPUTADOR PERSONAL y se rotula Claudia Jiménez Ramírez Bases como NOT NULL. ID_TM es la clavbe foránea añadida. se rotula como U para hacer cumplir la relación 1:1. COMPUTADOR_PERSONAL Nombre Columna NO_ INV TIPO_ CASE FTE_ ID_TM ENER de Datos 4 8 Esta columna también TARJETA_MADRE Nombre Columna ID_TM CHIP_ PRO VEL_ PRO CHIP_ COPR Tipo Clave CP CF Tipo Clave CP Nulls/ Unique NN, U NN NN NN, U Nulls/ Unique NN, U NN NN NN Datos de 1045 Baby AT 150 4579 Datos de 9978 486 33 N Prueba 0437 Baby AT 200 8731 Prueba 4517 386 40 S 1458 Tower 220 4773 4773 486 25 N 1223 Tower 220 9978 4579 386SX 25 N 1088 Minitower 200 4517 8731 386 33 S La clave foránea en una relación 1:1 siempre debe ser única, pero puede permitir valores nulos, en algunos casos. Si una relación 1:1 es opcional en ambas direcciones, se puede colocar la clave foránea en la tabla que corresponda a cualquier entidad participante en la relación. Cuando exista una relación recursiva 1:n, se debe adicionar una columna CF a la tabla simple. Esta columna CF remitirá a los valores de la columna CP. Ejemplo: Para esta relación recursiva 1:M, añadir una columna CF a la tabla EMPLEADO por cada Jefe de empleado. Nombrar la columna ID_JEFE para reflejar la relación. jefe de bajo órdenes de Tabla: EMPLEADO EMPLEADO Nombre Columna #*Id ID_EMP *Nombre *Apellido NOMBRE APELL ID_JEFE Claudia Jiménez Tipo de clave Nulos/ Unicos Ejemplos Ramírez Bases CP NN, U NN NN 7450 5579 6714 María Juana Susana Pérez Mejía Jiménez de Datos 4 9 CF --7450 5579 Se debe observar que la columna CF se refiere a una fila en la misma tabla. La columna CF se nombra de tal manera que refleje la relación. Debe observarse, además, que una CF recursiva nunca será NOT NULL porque se crearía un ciclo infinito. Para una relación recursiva 1:1, es necesario añadir una clave foránea única a la tabla. Esta columna CF remitirá a los valores de la columna CP. Ejemplo: Para la relación recursiva 1:1 "casado(a) con", se agregó una columna única, a la tabla PERSONA. esposo(a) de casado(a) con Tabla: PERSONA Nombre Columna Tipo de Clave Nulos/Unicos Ejemplo • ID_PERS CP PERSONA NN, U1 #*Id 7450 *Nombre *Apellido 5579 6714 9451 3040 NOMBRE APELL ID_ESP NN María Juana Susana Raúl Diego NN Pérez Gómez Jiménez Tobón García CF U1 --9451 3040 5579 6714 La combinación de las columnas CF y CP siempre debe ser únicas para asegurar la relación 1:1. Se garantiza que la combinación sea única rotulándolas ambas columnas como U1. PASO 5 - ESCOGER OPCIONES DE ARCO Claudia Jiménez Ramírez OFICINA #*Id edificio #*Número oficina Bases de Datos 5 0 Figura 8 . Relación exclusiva INDIVIDUAL #*Id Los arcos representan una clase de clave foránea con varias alternativas. Se escoge entre dos diseños para llevar los arcos a claves foráneas: SOCIEDAD #*Código # Código • • Diseño de Arco Explícito Diseño de Arco Genérico COMPAÑIA #*Número # Número El diseño de Arco Explícito crea una columna, clave foránea, para cada relación incluida en el arco. Así, por el ejemplo, el modelo E-R de la figura número 2, el arco se extiende sobre el final de tres relaciones de "muchos". Entonces, se deben adicionar tres claves foráneas a la relación de OFICINAS: OFICINAS Nombre Columna Tipo de Clave Valores nulos/únicos ID_EDIF NO_OFIC ID_IND COD_SOC NO_COMP CP NN, U1 CP NN, U1 CF1 CF2 CF3 El diseño de Arco Explícito soporta múltiples claves foráneas con diferentes formatos. Por ejemplo, ID_IND, COD_SOC y NO_COMP pueden tener diferentes formatos de columna. Sin embargo, con este tipo de diseño, la aplicación debe hacer cumplir la exclusividad de la relación entre las claves foráneas. El diseño de arco genérico, por otro lado, crea una columna de clave foránea simple y una columna adicional utilizada para indicar cuál de las tablas es referenciada por la columna clave foránea en cada fila. Como las relaciones son exclusivas, solamente existe un valor de la clave foránea por cada fila en la tabla. Claudia Jiménez Ramírez Bases de Datos 5 1 Usando el diseño de arco genérico, con el ejemplo, se debe crear una columna de clave foránea simple y añadir una columna de tipos para indicar cuál de las tres tablas es la referenciada en cada fila. Por ejemplo, I por INDIVIDUO, S por SOCIEDAD y C por COMPAÑIA. OFICINAS Nombre Columna Tipo de Clave Valores nulos/únicos Ejemplos ID_EDIF NO_OFIC ID_RENTADOR TIPO_RENTADOR CP NN, U1 CP NN, U1 CF NN NN 1024 101 30045 I Si la relación bajo el arco es obligatoria, se deben definir todas las columnas añadidas como NOT NULL. Con este tipo de diseño, las claves foráneas deben compartir el mismo formato en todas las tablas de referencia y la relación de exclusividad queda asegurada automáticamente. PASO 6ESCOGER SUPERTIPO/SUBTIPOS Las opciones posibles, son las • • • OPCIONES PARA LAS EMPLEADO # Número * Nombre siguientes: * Apellidos DE PLANTA TEMPORAL Diseño de los subtipos, en una sola tabla (el supertipo). *Salario * Valor hora * Valor hora extra Diseño de los subtipos en tablas separadas. Como un arco de una relación exclusiva. Opción 1 - Diseño de los subtipos en una sola tabla. DEPARTAMENTO #*Código EMPRESA # nit RELACIONES Claudia Jiménez Ramírez Bases de Datos 5 2 Consiste en diseñar una tabla para el supertipo con toda la información de los subtipos. Es decir, la tabla resultante contendrá las instancias de todos los subtipos. Este diseño es apropiado cuando los subtipos tienen pocos atributos y relaciones propias y la consulta de los datos suele incluir datos de distintos subtipos. Pasos de diseño • • • • • • Crear una tabla para el supertipo Crear una columna TIPO para identificar a cuál subtipo pertenece cada fila. Crear una columna para cada uno de los atributos del supertipo. Crear una columna para cada uno de los atributos de los subtipos. Crear columnas CF para cada una de las relaciones del supertipo. Crear columnas CF para cada una de las relaciones de los subtipos. Como ejemplo, se convertirá el supertipo EMPLEADO y sus subtipos de la figura 3, en una sola tabla. EMPLEADO Nombre Columna Tipo de Clave Nulos/ Unicos Ejemplos NUM NOMB APELL TIPO NN, U NN NN NN 4579 6631 1190 370 800 7147 6794 Jaime Ana Juan Pedro Luis Alex Lili Pérez Casas Hoyos Díaz Ruiz Ríos Vega P P P P P T T SALARIO VLR_ HORA VLR_ EXTRA CP NUM_ EMP CF1 COD_ DEP CF2 NN 29000 25000 42700 44050 38450 8.50 6.75 12.75 11.50 201 150 40 35 40 30 35 35 30 El diseño de en una sola tabla requiere siempre que se cree una nueva columna (tipo) para identificar el subtipo correspondiente en cada fila. Ventajas de este diseño • • El acceso al supertipo es directo. Si en la organización se debe consultar frecuentemente el supertipo, esta opción es apropiada. Se puede tener acceso a los subtipos mediante vistas. Desventajas de este diseño Claudia • • Jiménez Ramírez Bases de Datos 5 3 Los requerimientos de atributos no nulos, en cada subtipo, no se pueden hacer cumplir desde la definición de la base de datos. La lógica de la aplicación debe proveer distintos atributos, dependiendo del tipo. Opción 2 - Diseño de los subtipos en tablas diferentes Esta opción consiste en convertir los subtipos en tablas diferentes -una para cada subtipo. Cada tabla contendrá instancias solamente de ese subtipo. Pasos de diseño • • • • • Crear una tabla para cada subtipo TABLA para cada atributo En cada tabla de un subtipo, crear las columnas B A subtipo. B En cada tabla de un subtipo, crear las columnas para los atributos supertipo. TABLA C C para cada relación En cada tabla de un subtipo, crear columnas CF subtipo. En cada tablas del subtipo, crear columnas CF para cada relación supertipo. del del del del Empleando este método de diseño, la relación supertipo/subtipo de la figura 3, conduce a convertir el supertipo EMPLEADO en dos tablas -una por cada subtipo como se muestra a continuación. Tabla: EMPLEADO DE PLANTA Nombre Columna NUM_ESC NOMB APELL SALARIO COD_DEP NN NN NN Tipo Clave CP Nulls/Unique NN, U NN Ejemplos CF 4579 Jaime Pérez 29000 40 6631 1190 Ana Juan Casas Hoyos 25000 42700 35 370 Pedro Díaz 44050 30 40 Claudia Jiménez Ramírez 800 Luis Bases Ruiz 38450 de Datos 5 4 35 Tabla: EMPLEADO TEMPORAL Nombre Columna NUMERO NOMB APELL VLR_HORA VLR_EXTRA NUM_EMP COD_DEP CF1 CF2 NN NN NN NN NN Tipo Clave CP Nulls/ Unique NN, U NN Ejemplos 7147 Alex Ríos 8.50 12.75 201 35 6794 Lili Vega 6.75 11.50 150 30 941 Saúl Mejía 12.00 18.00 201 45 Se usa el diseño de subtipos en tablas diferentes cuando los subtipos tienen muchos atributos y relaciones específicas o particulares. Ventajas de este diseño • • La opcionalidad de los atributos del subtipo se hace cumplir desde la definición de la base de datos. La lógica de la aplicación no requiere comprobaciones para los subtipos Desventajas de este diseño • El acceso al supertipo requiere del operador UNION o una vista creada con este operador. • Las vistas que unen las dos tablas son solamente de lectura. • El mantenimiento de identificadores únicos a través de los subtipos es más difícil de implementar, cuando los subtipos son excluyentes.