El modelo EER

El modelo Entidad Relación Extenso EER es una ampliación del modelo ER para poder reflejar otros aspectos de la realidad. Concretamente, veremos los conceptos de:

  • Especializaciones (también llamadas generalizaciones)

  • Agregaciones

Especializaciones o generalizaciones

Veámoslo a partir de un ejemplo:

Ejemplo especialización

La entidad PERSONAS es una generalización de las entidades ALUMNOS, PROFESORES y LIMPIADORES: cada alumno, profesor o limpiador ES también una persona. Las ocurrencias de las 3 entidades hijas están representadas también en la entidad madre.

¿Cuándo usar la especialización/generalización?

Es lo mismo una especialización y una generalización. Cambia el momento de crearla:

  • Especialización: cuando tenemos varias entidades y les creamos una entidad madre.

  • Generalización: cuando tenemos una entidad y le creamos entidades hijas.

¿Cuándo especializaremos una entidad?"

Cuando tenemos una entidad en la que algunas ocurrencias tienen atributos diferentes y/o sólo algunas ocurrencias pueden estar implicadas en alguna relación. En ese caso haremos una especialización en la entidad: le pondremos hijas y "bajaremos" los atributos y/o relaciones diferentes en cada hija.

¿Cuándo generalizaremos entidades?

Cuando tenemos 2 o más entidades en las que las ocurrencias de una de ellas representan el mismo objeto que en otra y, además, esas entidades tienen algún atributo en común y/o están implicadas en una misma relación. En ese caso haremos una generalización de esas entidades: les pondremos una madre y "subiremos" atributos y/o relaciones en común.

Definición formal de generalización

Generalización

Una entidad E es una generalización de un grupo de entidades E1, E2, ... En sí cada instancia de cada una de esas entidades es también una instancia de E.

Especialización - Generalización

Todos los atributos de la entidad genérica serán heredados por las entidades específicas. Es decir, que las entidades E~1~, E~2~, ..., E~n~, además de sus respectivos atributos (x, y, z), también tienen los atributos de la entidad E (a~0~ y a~1~). Y, por tanto, la clave de E~1~, de E~2~, ...y de En será a~0~ (sólo hay que indicar la clave de E).

Los símbolos T1 y T2 del polígono representan los tipos de especialización. Puede ser de diferentes tipos:

  • Total o Parcial:

    • Total: si todas las ocurrencias de la entidad madre están en alguna hija .
    • Parcial: si sólo algunas ocurrencias de la entidad madre están en las hijas.
  • Disjunta o Superpuesta:

    • Disjunta: si las ocurrencias de una hija no están en ninguna otra hija
    • Superpuesta: si las ocurrencias de una hija  están en otra hija.

Vamos a ver ejemplos de todos estos tipos de especializaciones:

  • a) Total y Disjunta

Total y disjunta

  • Total porque todo autor o está vivo o está muerto.

Poniendo a T estamos diciendo que toda ocurrencia que esté en la entidad padre seguro que también estará en alguna entidad hija. Es decir: cada ocurrencia de AUTORES también estará en alguna de las entidades hijas: en la entidad VIVOS o en la entidad MUERTOS

  • Disjunta porque un autor vivo no puede estar muerto y viceversa.

Poniendo la D estamos diciendo que toda ocurrencia que esté en una entidad hija no estará en ninguna otra entidad hija. Es decir: las ocurrencias de VIVOS no están en MUERTOS (y las de MUERTOS no están en VIVOS).

  • b) Parcial y Disjunta

Parcial y disjunta

  • Parcial porque hay personas que no están solteras ni casadas (faltan las personas separadas y viudas). Es decir: puede darse el caso de que alguna ocurrencia de PERSONAS no esté ni en SOLTERAS ni en CASADES.

  • Disjunta porque una persona soltera no puede estar casada y viceversa.

  • c) Parcial y Superpuesta

Parcial y superpuesta

  • Parcial porque algún alumno puede ser de bachillerato y no repetidor. Por tanto, las ocurrencias de ALUMNOS que cumplan esto no estarán en la entidad DE_CICLES ni en la de REPETIDORES

  • Superpuesta porque algún alumno de ciclo puede ser también un repetidor.

  • d) Total y Superpuesta

Total u superpuesta

  • Total, porque todo autor o está vivo o está muerto. Por tanto, seguro que toda ocurrencia de AUTORES estará en alguna de las hijas (al menos en VIVOS o en MUERTOS).

  • Superpuesta porque algún autor vivo (o muerte) puede ser europeo.

Otras consideraciones sobre las especializaciones:

  • Una entidad hija puede ser madre de otra especialización (jerarquía hijas, nietas, ...)
  • Una entidad puede ser madre de distintos "grupos de hermanas". Es decir: una entidad puede ser genérica de diversas especializaciones (3 hijas por un lado, 2 por otro...)
  • Puede haber relaciones entre las entidades hijas o entre una madre y una hija, etc.

Advertencia

Esto NO es una especialización:

Ejemplo erróneo de especialización

¿Por qué no?

Porque, recordemos, en una especialización, cada instancia de una entidad hija ES también una instancia de la entidad madre.

En los ejemplos anteriores tenemos que:

  • AUTORES es una generalización de VIVOS y MUERTOS porque un autor vive ES un autor. Y un autor muerto ES un autor.
  • PERSONAS es una generalización de SOLTERAS y CASADAS porque una persona soltera ES una persona. Y una persona casada ES una persona.
  • ALUMNOS es una especialización de DE_CICLOS y de REPETIDORES porque un alumno de ciclos ES un alumno. Y un repetidor ES un alumno.

Pero, en cambio, un hombre NO ES un matrimonio. Y una mujer NO ES un matrimonio. Sino que un matrimonio ESTÁ FORMADO POR un hombre y una mujer. Por eso la entidad MATRIMONIOS no puede ser una generalización de HOMBRES y MUJERES.

En caso de querer expresar que una ocurrencia de una entidad ESTÁ FORMADA POR ocurrencias de otras entidades no usaremos la especialización sino la agregación, que lo veremos en el punto siguiente.

Ejercicios generalizaciones

Ejercicio 15

Invéntate varios escenarios para buscar ejemplos de generalizaciones de todos los tipos. Piensa que, para que tenga sentido una generalización, es necesario que algunas entidades específicas tengan algún atributo diferente y/o estén implicadas en alguna relación y otras no.

  • a) Total y Disjunta
  • b) Total y Superpuesta
  • c) Parcial y Disjunta
  • d) Parcial y Superpuesta
Ejemplo de respuesta

Ejemplo de respuesta

Ejercicio 16

Realiza el esquema ER para el siguiente análisis de requerimientos:

En un instituto queremos saber el dni, nombre y fecha de nacimiento de todos los alumnos. De cada profesor se debe guardar su dni, nombre, si es diplomado o licenciado, y el nombre de la carrera que han hecho. Del personal de limpieza se debe guardar dni, nombre y turno (mañana o tarde). De las aulas se debe saber el código del aula, cuántos ordenadores hay en cada una, si tiene proyector o no y qué profesores dan clase en cada una, teniendo en cuenta que un profesor puede impartir clase en distintas aulas.

Ejemplo de respuesta

Ejemplo de respuesta

Ejercicio 17

Amplía el anterior ER para añadir los siguientes requerimientos:

Se quiere guardar el departamento al que pertenece cada profesor, del que queremos saber el código, el nombre, quién es el jefe del departamento y quién es el secretario (ambos son profesores que pertenecen al departamento). Un profesor no puede tener dos cargos (secretario y jefe).

Ejemplo de respuesta

Ejemplo de respuesta

Las dos primeras soluciones requieren de Restricciones de integridad referencial para que no se pueda asignar un jefe o secretario que no pertenezca al departamento. La tercera solución, en cambio, no requiere de restricciones de integridad referencial, ya que el jefe y el secretario son profesores que pertenecen al departamento.

Agregaciones

Agregación

La agregación es cuando una relación entre entidades pasa a considerarse como una nueva entidad más compleja, con existencia independiente. Por ejemplo, COCHES sería una agregación de las entidades chasis y motores relacionadas por la relación incorporar.

Agragación

Otras formas de decirlo:

Si unas determinadas entidades relacionadas (E~1~, E~2~, ... E~n~) FORMAN PARTE de una entidad que las engloba (E), diremos que esa nueva entidad es una agregación de aquellas.

Diremos que una entidad E es una agregación de entidades si una ocurrencia de E está formada por una ocurrencia de cada una de las entidades que agrega. En el ejemplo anterior, una ocurrencia de MOTORS (el motor de código "ABC") incorporado a una ocurrencia de CHASIS (el chasis de código "555") forman una ocurrencia de la entidad COCHES. La relación "ha conducido" relaciona una ocurrencia de PILOTES con una pareja de ocurrencias de CHASIS y MOTORES que ya está en la relación "incorporar".

¿Cuándo realizaremos una agregación?

Normalmente, crearemos una agregación cuando necesitamos una relación de una entidad con otra relación. Es decir, en el caso anterior, necesitábamos una relación entre la entidad PILOTOS y la entidad COCHES. Como la entidad COCHES no existía, la hemos formado a partir de la agregación entre chasismotores.

Diferencia entre generalización y agregación:

La generalización que hemos visto anteriormente era una relación de jerarquía , es decir, del tipo "A~1~ es A". Por ejemplo: "un soltero es una persona". En cambio, la agregación es una relación de participación ,es decir, es del tipo "A~1~ y A~2~ forman parte de A". Por ejemplo: "un motor y un chasis forman parte de un coche ".

Ejercicios Agregaciones

Realiza el esquema ER para cada uno de los siguientes análisis de requerimientos:

Ejercicio 18

En una fábrica de Almussafes se fabrican piezas para la Ford. De cada máquina queremos guardar el código y el nombre. De los operarios: código y nombre. Y de cada tipo de prenda fabricada, el código y nombre. Queremos saber el total de horas acumuladas que cada operario ha trabajado en cada máquina, así como qué tipos de piezas y en qué cantidad ha fabricado cada operario en cada máquina.

Ejemplo de respuesta

Ejemplo de respuesta

Ejercicio 19

Una agencia matrimonial quiere guardar de cada persona: dni, nombre, sexo (m/f), y un histórico de la gente a la que ha emparejado la agencia y en qué fecha. La empresa dispone de unos lugares de encuentro de las parejas (bar tal, biblioteca, jardín...), de los que quiere guardar un código, dirección, qué parejas se han citado allí y si les ha ido bien o no.

Ejemplo de respuesta

Ejemplo de respuesta

Ejercicio 20

Un estudio de rodaje quiere guardar información de los actores (dni, nombre) y de las escenas de una película (código, lugar, fecha, hora, descripción). Queremos guardar qué actores actúan en qué escenas y si hablan o no en cada escena en la que actúan. El estudio también dispone de un fondo de armario para el vestuario, en el que tiene etiquetada cada prenda con un código identificativo. De cada prenda queremos saber el tipo (pantalón, camisa...), color, talla y época. Queremos saber qué prendas vestirá cada actor en cada escena.

Ejemplo de respuesta

Ejemplo de respuesta