Tema 2: Diseño conceptual de Bases de Datos: el Modelo Entidad–Relación Andrés Cordón Franco Departamento de Ciencias de la Computación e Inteligencia Artificial UNIVERSIDAD DE SEVILLA Bases de Datos Curso 2005–06 1 Contenido: 2.1 Introducción al diseño de BD 2.2 Elementos básicos del modelo ER: Entidades, Atributos y Relaciones 2.3 Entidades débiles y fuertes: Concepto de clave primaria y de discriminador 2.4 Cardinalidad y tipo de una relación 2.5 Jerarquı́as de Generalización 2.6 Uso de relaciones reflexivas 2 Introducción al diseño de BD(I): El diseño de una BD consta de tres fases: (A) Diseño conceptual: Se parte de: especificación de requisitos (descripción detallada de la información que debe recoger la BD y de las prestaciones que debe ofrecer a los futuros usuarios). Se obtiene: Esquema Conceptual (descripción en lenguaje natural o gráfico de la estructura de la BD, independiente del SGBD que se usará posteriormente para implementarla). Modelo conceptual: lenguaje natural o gráfico que se emplea para describir un esquema conceptual. 3 Introducción al diseño de BD(II): (B) Diseño lógico: Se parte de: esquema conceptual. Se obtiene: Esquema lógico (descripción de la estructura de la BD basada en el modelo de datos elegido para implementarla). Por ejemplo, descripción gráfica de un conjunto de tablas relacionales. Modelo lógico: lenguaje empleado para describir el esquema lógico. Es independiente del SGBD que se empleará para implementar la base de datos, pero sı́ depende del modelo de datos elegido. Nota. Posteriormente estudiaremos técnicas de mejora de los esquemas lógicos basados en el modelo relacional: Normalización en BD. 4 Introducción al diseño de BD(III): (C) Diseño fı́sico: Se parte de: esquema lógico. Se obtiene: Esquema fı́sico (descripción de la implementación de la BD usando un determinado SGBD. Se detallan las estructuras fı́sicas de almacenamiento de datos en el ordenador, los métodos de acceso a dichos datos y el modelo de seguridad del sistema). Nota 1. Sólo estudiaremos el diseño conceptual y el diseño lógico de BD. Nota 2. En este curso simpre emplearemos... Modelo conceptual: modelo Entidad–Relación Modelo lógico: modelo de datos relacional 5 Introducción al modelo ER: El modelo Entidad–Relación (ER) es el modelo conceptual más utilizado para el diseño conceptual de BD. Dicho modelo fue introducido por Peter Chen en 1976 en el artı́culo: (•) The Entity–Relationship Model. Toward a Unified View of Data, Chen, P. Transactions on Database Systems, Vol.1, 1976 (pp.9–36) El modelo ER está formado por un conjunto de conceptos (entidad, atributo, relación) que permiten describir la infromación relevante de cierta parcela de la realidad mediante un conjunto de representaciones gráficas. El esquema conceptual asociado se llama Diagrama Entidad–Relación(DER). 6 Entidades: Entidad: cualquier objeto concreto o abstracto del que se desea almacenar información. Una entidad puede ser una persona, un lugar, una cosa, un concepto, un suceso, ... Cada entidad tiene asociado un NOMBRE (usualmente, sustantivo común singular). Ejemplos: AUTOR, LIBRO, PRÉSTAMO,... Lope de Vega es una instancia de AUTOR Representación gráfica: un rectángulo. • Regular o fuerte: tiene existencia por sı́ misma en el universo del discurso, independientemente de cualquier otra entidad. • Débil: depende de alguna entidad existente en el universo del discurso. Al desaparecer esta entidad superior, desaparecerá la entidad débil vinculada a la misma. Ejemplo: EJEMPLAR (entidad débil) que depende de LIBRO (entidad fuerte) Nota: Entidad débil: doble rectángulo. 7 Relaciones(I): Relación: correspondencia o asociación entre dos o más entidades. Cada entidad tiene asociado un NOMBRE (usualmente, verbo en singular). Ejemplo: Escribe relaciona la entidad Autor y la entidad Libro. La correspondencia Lope de Vega–El perro del hortelano es una instancia de la relación Escribe. Representación gráfica: un rombo. Como las entidades, una relación puede ser: • Regular o fuerte: todas las entidades que relaciona son fuertes. • Débil: al menos una de las entidades que relaciona es una entidad débil. Nota: Relación débil: doble rombo. 8 Relaciones(II): Las relaciones débiles lo pueden ser... • por Existencia(E): una instancia de la entidad débil no puede existir si desaparece la instancia de la entidad fuerte de la que depende, pero sı́ puede ser identificada por sı́ misma. • por Identificación(ID): es una relación débil por existencia y, además, una instancia de la entidad débil no puede ser identificada por sı́ misma. Es necesario añadir información de la instancia de la entidad regular con la que está relacionada. Ejemplos: 1.- La relación entre Cliente y Pedido es débil en existencia. La entidad débil Pedido puede identificarse por sı́ misma(mediante el código de pedido). 2.- La relación entre Cuenta-bancaria y Operación es débil en identificación. El número de la operación no basta para identificarla, necesitamos además el número de cuenta. 9 Atributos(I): Atributo: propiedad o caracterı́stica de interés que describe a una entidad o a una relación. Rango o dominio de un atributo: conjunto de valores que puede tomar el atributo. Ejemplos: 1.- DNI, Nombre, Domicilio, Edad son atributos de la entidad Alumno. Dominio(Edad) ⇒ número entero Dominio(Nombre) ⇒ cadena de texto Dominio(Domicilio) ⇒ cadena de texto 2.- Fecha es un atributo de la relación Presta que asocia las entidades Libro y Persona. Dominio(Fecha) ⇒ formato fecha–hora Representación gráfica: un óvalo. 10 Atributos(II): Tipos de atributos: • Simple/Compuesto: un atributo es compuesto cuando está formado por más de un atributo. • Univaluado/multivaluado: un atributo es multivaluado cuando puede contener más de un valor. • Obligatorio/Opcional: un atributo obligatorio siempre debe tomar algún valor para cada instancia de la entidad o la relación. • Primitivo/Derivado: un atributo es derivado cuando su valor puede calcularse a partir de los valores de otros atributos. 11 Claves de una entidad: Clave: conjunto de uno o más atributos que permiten identificar de forma única a cada instancia de la entidad. Además, dicho conjunto de atributos debe ser minimal, esto es, ningún subconjunto de atributos de la clave puede actuar también como clave. Clave candidata: cada una de los conjuntos de atributos que pueden actuar como clave de una entidad. Clave primaria (PK=Primary Key ): clave candidata elegida por el diseñador de la BD para identificar una entidad. Si una entidad débil tiene dependencia en identificación, NO posee clave primaria. En su lugar, posee un discriminador. Discriminador de una entidad débil: conjunto minimal de atributos que, junto con la clave primaria de la entidad fuerte de la que depende en identificación, permiten identificar cada instancia de la entidad. 12 Cardinalidad. Tipo de una relación(I): Grado: número de entidades que intervienen en la relación. Nota: binaria ≡ grado 2, ternaria ≡ grado 3,... Nota: Podemos restringirnos a relaciones binarias. En efecto, una relación de grado k > 2 puede simularse añadiendo una nueva entidad y k nuevas relaciones binarias. Cardinalidad de la entidad E1 en la relación R: es el par (a, b) que indica el número mı́nimo(=a) y máximo(=b) de instancias de E1 que pueden estar asociadas a una instancia fija de E2. Son posibles las siguientes cardinalidades: (0, 1), (1, 1), (0, n), (1, n), (m, n). Nota: m, n significan “muchos”. 13 Cardinalidad. Tipo de una relación(II): Ejemplos: (•) Relación Posee entre Libro y Ejemplar. 1.- Libro participa con cardinalidad (1, 1). Fijada una instancia de Ejemplar : (-) estará relacionada con 1, y sólo una, instancia de Libro. 2.- Ejemplar participa con cardinalidad (0, n). Fijada una instancia de Libro: (-) puede no estar relacionada con ninguna instancia de Ejemplar ; y (-)podrá estar relacionada con muchas instancias de Ejemplar. Nota: En una relación débil, la entidad fuerte participa con cardinalidad (0/1, 1). (•) Relación Encuesta entre Persona y Ciudadde-veraneo. Ambas entidades participan en la relación con cardinalidad (0, n). 14 Cardinalidad. Tipo de una relación(III): Tipo de una relación: se define a partir de los máximos de las cardinalidades de las entidades que intervienen en la relación. Distinguimos tres tipos de relaciones binarias: • Una a una (1:1): una instancia de E1 está asociada con 1,y sólo una, instancia de E2. (Ejemplo: Paı́s y Capital) • Una a muchas (1:N): una instancia de E1 puede estar asociada con muchas instancias de E2, pero una instancia de E2 sólo puede estar asociada con 1 instancia de E1. (Ejemplo: Cliente y Pedido) • Muchas a Muchas (N:M): una instancia de E1 puede estar asociada con muchas instancias de E2 y viceversa. (Ejemplo: Alumno y Asignatura) 15 Jerarquı́as de Generalización(I): Descomposición de una entidad padre (o supertipo) en varias entidades hijo (o subtipos). • Los subtipos heredan los atributos de la entidad padre. • Los subtipos pueden además poseer atributos propios. Ejemplo: La entidad padre Documento se divide en los subtipos Libro, Artı́culo y Revista. Para incluir jerarquı́as en el modelo E–R, se emplean relaciones de especialización ES-UN (en inglés, IS-A). Representación gráfica de relaciones ES-UN: triángulo invertido, con la base paralela al rectángulo que representa el supertipo y conectado a los subtipos. 16 Jerarquı́as de Generalización(II): Clasificación de jerarquı́as: (A) Total o Parcial. Total: cada instancia del supertipo pertenece obligatoriamente a un subtipo. Parcial: existen instancias del supertipo que no pertenecen a ningún subtipo. (una jerarquı́a parcial se transforma en total añadiendo un nuevo subtipo Otros). (B) Exclusiva o Solapada: Exclusiva: Una instancia de la entidad padre sólo puede pertencer a un único subtipo. Solapada: una instancia de la entidad padre puede pertenecer a más de un subtipo. Ejemplos: El supertipo Persona y los subtipos Hombre, Mujer forman una jerarquı́a total y exclusiva. El supertipo Obra y los subtipos Libro, Artı́culo, Recopilación forman una jerarquı́a parcial y solapada (una recopilación es también un libro). 17 Tipos especiales de relación(I): (•) Relación reflexiva: relaciona una entidad consigo misma. Ejemplo: empleados de una empresa que pueden ser jefes de otros empleados. Si los empleados pueden dividirse en jefes y subordinados, es preferible usar una jerarquı́a de generalización en lugar de una relación reflexiva. Pero si un jefe puede a su vez tener otro jefe de nivel superior y ası́ recursivamente es necesario usar una relación reflexiva. (•) Dos o más relaciones entre las mismas dos entidades: útil para almacenar información histórica completa. Ejemplo: proyectos en los que trabaja actualmente un empleado y proyectos en los que ha trabajado anteriormente. 18 Tipos especiales de relación(II): (•) Relaciones de grado k ≥ 3. Para hallar la cardinalidad con la que participa una entidad E1 en una relación ternaria (en general, de grado k ≥ 3) se fija una combinación de dos (en general, k − 1) instancias de las entidades restantes; y se calcula el número mı́nimo y máximo de instancias de E1 que se relacionan con dicha combinación. Ejemplo: Relación Edita entre las entidades Libro, Autor y Editorial. (•) Cuántos autores puede tener un determinado libro publicado en una determinada editorial. Cardinalidad de Autor (0, n). (•) Cuántos libros puede tener un determinado autor publicados en una determinada editorial. Cardinalidad de Libro (0, n). (•) En cuántas editoriales puede un determinado autor publicar un mismo libro. Cardinalidad de Editorial (0, 1). Nota: Tipo de relación: (1:N:M) 19 Fases para la obtención del DER • Identificar las entidades dentro del sistema. (Entidades fuertes y entidades débiles). • Identificar y describir los atributos de cada entidad. (Tipo de dato y dominio). • Determinar las claves primarias de las entidades. (Discriminadores para entidades débiles). • Establecer las relaciones entre la entidades y obtener su cardinalidad. • Diagrama E–R. Representar gráficamente el modelo obtenido. • Verificación. (Eliminar relaciones redundantes, eliminar o añadir entidades, eliminar o añadir atributos de una entidad, ...) 20 Bibliografı́a: • Concepción y diseño de bases de datos, Adoración de Miguel, Mario Piattini, RA– MA Editorial (1993) • Apuntes de Ficheros y Bases de Datos, Mercedes Marqués, Universidad Jaume I en Castellón (2001) 21