Entidades débiles y jerarquías
Cuándo una entidad no se sostiene sola, los dos tipos de debilidad, y cómo se modela la herencia con sus restricciones de totalidad y de solapamiento.
Entidad fuerte y entidad débil
Una entidad fuerte o regular se sostiene sola: existe con independencia de cualquier otra y se puede identificar con sus propios atributos. Un alumno o un curso son entidades fuertes.
Una entidad débil, en cambio, solo significa algo colgada de otra entidad, llamada entidad fuerte o propietaria, a través de una relación que se denomina relación identificadora. La línea de un pedido no significa nada sin el pedido; un intento de test no significa nada sin el test al que corresponde.
La consecuencia práctica es que una entidad débil necesita algo que le dé identidad. Ese algo procede siempre de la entidad fuerte, entera o en parte, y por eso su identificación nunca es autónoma.
La prueba para reconocer una entidad débil es preguntarse si la ocurrencia sigue teniendo sentido cuando desaparece la entidad de la que depende. Si no lo tiene, es débil.
Para el examen
Entidad débil: solo existe colgada de su entidad fuerte o propietaria
A través de qué: la relación identificadora
Lo que nunca puede: identificarse de forma autónoma
Debilidad en existencia y debilidad en identificación
La debilidad tiene dos grados y distinguirlos es de lo que más se pregunta del subtema.
En la dependencia en existencia, la entidad débil necesita a la fuerte para poder existir, pero tiene un atributo propio que la identifica sin ayuda. Una factura que solo se emite si hay un pedido detrás depende en existencia del pedido; ahora bien, su número de factura la identifica ella sola, así que no depende en identificación.
En la dependencia en identificación (también llamada dependencia en identidad), la entidad débil no solo necesita a la fuerte para existir: además no tiene ningún atributo propio capaz de identificarla. Su clave se forma combinando la clave de la entidad fuerte con un atributo suyo llamado discriminante o clave parcial, que solo distingue dentro de un mismo propietario.
Es lo que ocurre con los ejemplares físicos de un manual en una biblioteca: uno y otro son indistinguibles si se miran por separado, y solo se identifican diciendo que son el ejemplar número tres de ese manual. Toda dependencia en identificación arrastra dependencia en existencia; al revés no.
Dependencia en existencia: no puede existir sin la otra, pero se identifica sola. Dependencia en identificación: además necesita la clave de la otra para identificarse.
Para el examen
Debilidad en existencia: necesita a la fuerte para existir, pero se identifica sola
Debilidad en identificación: además forma su clave con la de la fuerte más un discriminante
Relación entre ambas: la identificación implica la existencia; al revés no
Generalización, especialización y discriminante
Una jerarquía de generalización recoge en el modelo la relación «es un»: un empleado técnico es un empleado, un alumno de Curso Express es un alumno. Hay un supertipo con lo común y varios subtipos con lo particular de cada uno. Es la herencia de la programación orientada a objetos llevada al modelo de datos.
Se puede llegar a ella por dos caminos, y el nombre cambia según el camino. La generalización va de abajo arriba: se detectan atributos comunes en varios tipos de entidad y se extraen a un supertipo. La especialización va de arriba abajo: se parte de un tipo de entidad general y se descubre que ciertos ejemplares tienen atributos o relaciones propias que los demás no tienen.
Los subtipos heredan del supertipo tanto los atributos como las relaciones, y añaden los suyos. La clave del supertipo es también la clave de cada subtipo, lo que evita que un mismo ejemplar aparezca dos veces con identidades distintas.
El atributo discriminador es el que indica a qué subtipo pertenece cada ocurrencia del supertipo. Es un atributo del supertipo, con un valor por subtipo, y su papel se ve claro cuando la jerarquía se transforma en tablas: si toda la jerarquía se implementa con una sola tabla, el discriminador es lo único que distingue las filas de un subtipo de las de otro.
Para el examen
Generalización: de los subtipos al supertipo, de abajo arriba
Especialización: del supertipo a los subtipos
Qué heredan los subtipos: atributos, relaciones y la clave
Discriminador: dice a qué subtipo pertenece cada ocurrencia
Restricciones de una jerarquía: total o parcial, disjunta o solapada
Una jerarquía no queda descrita solo con nombrar sus subtipos. Hacen falta dos restricciones que responden a dos preguntas distintas, y de ellas salen cuatro combinaciones posibles.
La primera pregunta es si todo ejemplar del supertipo tiene que pertenecer a algún subtipo. Si la respuesta es sí, la jerarquía es total y la cardinalidad mínima del supertipo es 1. Si puede haber ejemplares que no encajen en ninguno, es parcial y la mínima es 0.
La segunda pregunta es si un ejemplar puede pertenecer a varios subtipos a la vez. Si solo puede pertenecer a uno como máximo, la jerarquía es disjunta o exclusiva. Si puede pertenecer a varios, es solapada o no disjunta.
| Combinación | Qué exige | Ejemplo del dominio de la plataforma |
|---|---|---|
| Total y disjunta | Todo ejemplar está en un subtipo y solo en uno | Todo alumno está matriculado en exactamente una modalidad: Largo, Mediano o Express |
| Total y solapada | Todo ejemplar está en al menos un subtipo y puede estar en varios | Todo colaborador es redactor de temas, corrector de preguntas o ambas cosas |
| Parcial y disjunta | Puede no estar en ninguno, y como mucho está en uno | Un alumno puede tener beca de desempleo o beca de discapacidad, o ninguna |
| Parcial y solapada | Puede no estar en ninguno y puede estar en varios | Un alumno puede tener acceso a simulacros, a tutorías, a ambos o a ninguno |
Total o parcial responde a la mínima: si es obligatorio pertenecer a algún subtipo. Disjunta o solapada responde a la máxima: a cuántos subtipos se puede pertenecer a la vez.
Para el examen
Total frente a parcial: todo ejemplar cae en algún subtipo, o puede no caer en ninguno
Disjunta frente a solapada: como mucho en uno, o en varios a la vez
Combinaciones: las dos restricciones son independientes: cuatro combinaciones
La agregación
La agregación es un recurso del modelo E/R extendido que permite tratar una relación entera, con las entidades que enlaza, como si fuera una única entidad de nivel superior, para poder relacionarla a su vez con otra cosa.
Se necesita cuando aparece una relación entre una relación y una entidad, que el modelo básico no admite. Si un alumno realiza un intento de un test y hace falta registrar qué tutor ha revisado esa realización concreta, no se puede unir «tutor» a la relación «realiza» directamente: se agrega el bloque formado por alumno, test y la relación entre ambos, y esa agregación es la que se relaciona con tutor.
Sirve también como recurso de legibilidad: agrupar un trozo de un diagrama grande y tratarlo como una caja permite razonar sobre el conjunto sin perderse en el detalle. No hay que confundirla con la agregación de UML, que expresa una relación de todo y parte entre clases.
Para el examen
Qué permite: tratar una relación entera como una entidad para relacionarla con otra
No confundir: no es la agregación de UML, que es todo-parte