Diseño de base de datos: Modelo Entidad Relación (II) I. Relaciones Una relación es una asociación entre dos o más entidades. Así, por ejemplo, podría existir una relación entre la entidad Empleado y un Proyecto que se encuentra realizando. Las relaciones en el modelo E-R se representan mediante un rombo, tal y como se puede ver en la siguiente figura: Figura 1. Representación de relaciones Una relación queda caracterizada por las propiedades: Nombre: deben tener un nombre que las identifique unívocamente. Grado: número de tipos de entidad sobre las que se realiza la asociación. La relación juega_en entre Jugador y Equipo, será binaria, es decir, su grado sería dos. Cardinalidad: permite especificar si todas las ocurrencias de una entidad participan o no en la interrelación establecida con otra(s) entidad(es). Es decir, se puede definir la cardinalidad de un tipo de entidad como el número mínimo y máximo de ocurrencias de un tipo de entidad que pueden estar relacionadas con una ocurrencia del otro, u otros tipos de entidad que participan en el tipo 1 de interrelación. Su representación gráfica es una etiqueta del tipo (0,1), (1,1), (0,N) ó (1,n). A continuación veremos el tipo de relaciones existentes según su cardinalidad: 1. Reflexivas Una entidad se relaciona consigo misma. Por ejemplo pensemos en una relación que sea “es supervisado”. Así, en una empresa, un empleado es supervisado por su jefe inmediatamente superior, pero este a su vez es un empleado. Figura 2. Ejemplo de relación reflexiva 2. Relaciones1:1 (Uno a Uno) Sucede cuando un registro de una tabla sólo puede estar relacionado con un único registro de la otra tabla y viceversa. La clave foránea se ubica en alguna de las 2 tablas. Figura 3. Relaciones 1:1 Un ejemplo de relación 1:1 podría ser la existente entre un Empleado y un Puesto de trabajo. Un Empleado solo puede tener un Puesto de trabajo, y viceversa. 2 Figura 4. Representación de cardinalidad 1 a 1 3. Relaciones1: N (Uno a Muchos) Sucede cuando un registro de una tabla, llamada tabla secundaria, sólo se relaciona con un único registro de la otra tabla o tabla principal pero, a su vez, un registro de la tabla principal puede estar relacionado con más de un registro en la tabla secundaria. La clave foránea se ubica en la tabla secundaria (del lado de la N). Figura 5. Relaciones 1:N Un ejemplo de relación de este tipo es la anterior entre Alumno y Curso. En este caso, la tabla Alumno debe contener una clave foránea que referencia a la tabla Curso, ya que lo contrario sería imposible (piensa por un momento cómo sería). Figura 6. Representación de cardinalidad 1 a N 4. Relaciones N: M (Muchos a Muchos) Se produce cuando un registro de una tabla puede estar relacionado con más de un registro de la otra tabla y a la inversa. En este caso las dos tablas no están relacionadas 3 directamente, si no que se añade una tabla intermedia, que incluya los pares de valores relacionados entre sí (es decir, las claves primarias de cada tabla). La clave de esta tabla se conforma por la unión de los campos claves de las tablas que relaciona. Figura 7. Relaciones N:M Figura 8. Representación de la cardinalidad N a M II. Conceptos Avanzados 5. Entidades débiles Las entidades débiles no están bien definidas sino es con relación a otra entidad. Normalmente, estas relaciones son del tipo 1:N, y aunque no tengan clave primaria, sí que tienen un discriminante o clave parcial, es decir, un atributo que diferencia a esa entidad del resto de las relacionadas con la entidad fuerte. Pensemos en la entidad Capítulo (de un libro por ejemplo). Un capítulo podemos querer identificarlo por su título, o por su número. El título no lo identifica de manera unívoca, ya que puede haber varios capítulos con el mismo nombre en distintos libros. Lo mismo pasa con el número. Solo habrá un capítulo 1 por libro, pero casi todos los libros tendrán capítulo 1. Es por ello que Capítulo es una entidad débil, y para 4 identificarlo y diferenciarlo de todos los capítulos de todos los libros, debe ser a través del libro al que pertenece. Así pues, el libro El Quijote tendrá un primer capítulo, que se identifica de manera única con el par de atributos <ISBN, numero>. La clave primaria de una entidad débil se forma con unión de la clave primaria de la entidad fuerte (asociada con la entidad débil) y los atributos discriminantes. Se representan mediante líneas dobles y el discriminador se marca un doble subrayado. Figura 9. Ejemplo relación débil 2. Atributos multivaluados Como ya vimos anteriormente, éstos son atributos que pueden representar varios valores simultáneamente para una misma ocurrencia de una entidad. Se representan mediante una elipse doble. Por ejemplo el teléfono, ya que una persona puede tener varios números de teléfono. Figura 10. Atributo multivaluado 3. Atributos Compuestos Son atributos que están formados por otros atributos que a su vez pueden ser simples o compuestos. 5 Figura 11. Atributo compuesto A continuación tienes un ejemplo bastante completo que recoge atributos de los distintos tipos vistos hasta ahora. Figura 12. Ejemplo de representación de atributos 4. Relaciones ternarias Como su propio nombre indica son relaciones en las que participan 3 entidades. Por ejemplo, la relación existente entre un empleado que vende un producto a un cliente. Figura 13. Relación ternaria 6 5. Herencia También conocida como especialización generalización o ISA. Un conjunto de entidades puede incluir subgrupos de entidades. Por ejemplo, la entidad Persona con atributos nombre, calle y ciudad. Imaginemos que estamos diseñando una base de datos para una tienda. En este contexto, una persona puede ser: Cliente: quiere almacenar el atributo número de tarjeta de puntos. Empleado: quiere tener guardado el atributo salario. La entidad de nivel más alto se denomina superclase (Persona), mientras que las de nivel más bajo se denominan subclases (Empleado y Cliente). Las subclases heredan todos los atributos y la participación en las relaciones de la superclase. Figura 14. Ejemplo de herencia Las jerarquías se representan mediante rectángulos y un rombo invertido entre los supertipos y los subtipos como se aprecia en la imagen anterior. La palabra ISA viene del inglés IS A o en español ES UN, e indica que toda ocurrencia del supertipo es también una ocurrencia de uno o varios de los subtipos. Características generales Toda ocurrencia de un subtipo es una ocurrencia del supertipo, y las cardinalidades serán siempre (1,1) en el supertipo, y (0,1) ó (1,1) en los subtipos. Todo atributo del supertipo pasa a ser un atributo de los subtipos. 7 Así, tenemos que cada jerarquía se puede caracterizar por dos propiedades: Total / Parcial: todos los miembros u ocurrencias del supertipo son también miembros de alguno de los subtipos (total) o lo contrario (parcial). Es decir, si la relación de herencia contempla todos los posibles subtipos que pueden pertenecer a ese supertipo se dirá que es total, si puedes contemplar alguna ocurrencia de algún subtipo que no se encuentra representada, entonces dirás que es parcial. Disjunta / Solapada: ninguna ocurrencia de un subtipo puede pertenecer simultáneamente a otro subtipo (disjunta), es decir, si pertenece a un subtipo no pueden pertenecer a ningún otro más; o bien a la inversa (solapada). Figura 15 Representación de los distintos tipos de herencia 8 TEST 1. Los atributos multivaluados se representan: a. Fase 1: Con una doble línea en el óvalo o círculo que representa el atributo. b. Fase 2: Con una línea de puntos suspensivos. c. Fase 3: Con una línea en forma de rombo. d. Fase 4: Con una línea de color rojo. 2. Cuando un registro de una tabla solo puede estar relacionado con un único registro de otra tabla pero, sin embargo, un registro de la otra tabla sí puede estar relacionado con más de un registro de la primera tabla, hablamos de una relación: a. N:M. b. Reflexiva. c. 1:N. d. 1:1. 3. ¿Cómo se representan los datos de una tabla?: a. En filas y registros. b. En filas (llamadas campos) y columnas (llamadas registros). c. En columnas y campos. d. En columnas (llamadas campos) y filas (llamadas registros). 4. En los mecanismos normales de representación mediante tablas de un conjunto de relaciones del modelo Entidad-Relación: a. Las relaciones ternarias se representan mediante dos tablas. b. Las entidades débiles no generan tabla. c. Las relaciones de ISA pueden generar más de una tabla (supertipo, subtipo, etc). d. Cada relación siempre genera una tabla. 5. Un conjunto de entidades débiles del modelo E-R: a. Si tiene más de una clave candidata, entonces no puede tener atributos multivaluados. b. No puede tener atributos multivaluados. 9 c. Deben estar identificadas por la combinación de su discriminante con la clave primaria de una entidad fuerte. a. Siempre deben intervenir en dos o más relaciones con otras entidades del modelo. 6. En un Modelo Entidad-Relación, la cardinalidad máxima y mínima de los tipos de entidades participantes en un tipo de relación es: a. El número máximo y mínimo de tipos de subentidades que participan en una relación. b. El número máximo y mínimo de ocurrencias (registros) de un tipo de entidad que pueden estar relacionadas con una ocurrencia de otro, que participa en el tipo de relación. c. El número máximo y mínimo de atributos que un tipo de entidad tiene. d. El número máximo y mínimo de subtipos de un tipo de entidad que se relacionan con el supertipo de una entidad dominante 7. A partir del siguiente diagrama indica qué tipo de ISA se está representando: a. Solapada y total. b. Solapada y parcial. c. Exclusiva y total. d. Exclusiva y parcial. 8. Dadas las siguientes especificaciones: existe una relación de herencia entre una clase base VEHÍCULO, y sus clases hijas: MOTOCICLETA, TURISMO Y CAMIÓN. ¿De qué tipo señalarías la relación de herencia? a. Solapada y total. 10 b. Solapada y parcial. c. Exclusiva y total. d. Exclusiva y parcial. 9. Indica la afirmación correcta: a. Las relaciones reflexivas siempre generan una tabla intermedia. b. Las relaciones 1:N siempre generan una tabla intermedia. c. Las relaciones N:M siempre generan una tabla intermedia. d. Las relaciones 1:1 siempre generan una tabla intermedia. 10. ¿Cómo representarías una relación de un alumno que a su vez es delegado de clase? a. Sería una especialización o ISA. De la superclase alumno se deriva una clase DELEGADO. b. Es una relación entre la entidad débil DELEGADO y la fuerte ALUMNO. c. Una relación 1:N entre ALUMNO y DELEGADO. d. Como una relación reflexiva. Respuestas: 1 a/2 c/3 d/4 c/5 c/6 b/7 b/8 d/9 c/10 d 11