Como continuación de la última entrada sobre bases de datos, donde explicamos el modelo entidad-relación, hoy vamos a adentrarnos en la evolución de dicho modelo o, como se conoce, el modelo entidad-relación extendido.
Repasando el modelo Entidad-Relación
Por recordar brevemente los conceptos que tratamos en la entrada sobre el modelo entidad-relación, recuerda que el doctor Peter Chen estableció tres elementos o constructores:
- Las entidades, que representan cualquier objeto del que se desea guardar información.
- Los atributos, que son las propiedades, características o datos que se desea almacenar en la BD.
- Y las relaciones, que representaban asociaciones entre dos o más entidades que tenían conexión entre sí.
Vimos también que los atributos podían ser simples, compuestos, monovaluados, multivaluados, almacenados, derivados y nulos. Las relaciones, por su parte, contaban con un grado (binarios, ternarias o reflexivas) y una cardinalidad: relación uno-uno (1:1), relación uno a muchos (1:N) y relación muchos a muchos (N:M).
Además, teníamos otros elementos como las claves o el dominio. Pero no quiero ser repetitivo, por lo que si necesitas refrescar los conceptos o aprenderlos desde cero, pásate por donde ya escribí sobre ello.
Introducción al modelo Entidad-Relación Extendido
Debido a que representar el mundo real era muy complicado dentro de las limitaciones de las reglas del modelo E-R, los doctores T. J. Teorey, D. Yang y J. P. Fry describieron en junio de 1986 el modelo Entidad-Relación Extendido (ERE) en «A logical design methodology for Relational Databases using the Extended Entity – Relationship Model«.
En esta expansión del modelo E-R se incorporaron nuevos conceptos como herencia, entidades débiles, cardinalidades máxima y mínima, dependencia en existencia e identificación, especialización y generalización.
Elementos del modelo Entidad-Relación Extendido
Cardinalidades mínima y máxima
Vamos a definir la cardinalidad mínima y máxima de una entidad E1 que participa en una relación (E1 <> E2) como el nº mínimo y máximo de instancias de la otra entidad (E2) que están relacionados con una única instancia de E1.
Esto, traducido a lenguaje humano, significa que vamos a señalar el nº menor y mayor que la instancia LIBRO participa en la instancia ESCRITOR y viceversa. De esta manera podemos afirmar que, como mínimo, un ESCRITOR escribe un LIBRO (porque si no ha escrito ninguno, no se puede considerar escritor) y como máximo escribe varios libros. De igual forma, un libro puede ser escrito como mínimo por un escritor y como máximo por varios escritores. Con este ejemplo, obtenemos que las cardinalidades mínimas y máximas serían 1,n en ambos sentidos.
Las cardinalidades mínimas y máximas se representan entre paréntesis, separadas por coma y en minúsculas, junto a las entidades de la relación. Recuerda que las del modelo E-R son en mayúsculas, separadas por dos puntos y sobre la propia relación.
Entidades débiles
Cuando una entidad participa en una relación puede adquirir el papel de fuerte o débil. Una entidad débil es aquella que no puede existir sin participar en la relación o, dicho de otra forma, no puede ser identificada inequívocamente solo por sus atributos ya que su clave primaria está formada, al menos, por dos atributos. Por lo tanto, podemos afirmar que uno de estos atributos será la clave primaria de la entidad a la que dependen.
Como siempre, esto se entiende mejor con un ejemplo. Pensemos en la base de datos de una empresa, la cual extiende los servicios del seguro médico a los familiares convivientes del empleado. La relación sería tal que así:
Fíjate que tanto la relación como la entidad llevan doble línea, lo cual indica su debilidad. Además, mira como el atributo Nombre de la entidad FAMILIAR solo esté rellenado a la mitad. Esto indica que la clave primaria de FAMILIAR es parcial, es decir, depende del atributo CodEmp de EMPLEADO para su identificación.
Dependencia en existencia e identificación
Podemos afirmar que toda entidad débil tienen dependencia en existencia de la entidad fuerte con la que está vinculada.
Sin embargo, no toda dependencia en existencia da lugar a un tipo de entidad débil. Es posible que la entidad dependiente tenga su propia clave que identifique inequívocamente a todas sus instancias. Siguiendo el ejemplo de arriba, si al FAMILIAR le sumamos el atributo DNI, habría dependencia en existencia (si no hay empleado, no hay familiar) pero no así de identificación (puesto que cada uno tendrá un DNI exclusivo).
Es por este motivo que se reserva el nombre de dependencia en existencia para los casos en los que no hay entidad débil, mientras que nombraremos dependencia en identificación cuando si la haya.
Pero recalcaré una vez más que toda dependencia en identificación es dependencia en existencia, pero no al revés. Una dependencia en existencia en una necesidad de la entidad padre para poder existir, mientras que en identificación es una necesidad para existir pero, además, lo es para identificar a cada una de sus instancias.
Para representar estas dependencias en el diagrama de Entidad-Relación extendido usamos la siguiente forma:
Herencia. Subtipos y supertipos de entidades
En muchas ocasiones, el conjunto de instancias de una entidad puede agruparse en subconjuntos de estas, los cuales son significativos y que deben representarse explícitamente en la base de datos.
Por ejemplo, si tenemos una base de datos de un instituto donde almacenamos los empleados del mismo, podemos distinguir dos subconjuntos de instancias de la entidad EMPLEADO: personal docente y personal no docente. Cada uno de estos subconjuntos lo denominamos subtipo o subclase de la entidad EMPLEADO, la cual se denomina supertipo o superclase de las entidades DOCENTE y NO DOCENTE.
La relación que se establece entre un supertipo y cualquiera de sus subtipos recibe varios nombres: relación supertipo-subtipo, relación superclase-subclase o relación ES-UN (que en inglés sería relación IS-A) dada la forma en la que nos referimos al concepto: un DOCENTE ES-UN EMPLEADO.
Debemos tener en cuenta las siguientes características:
- Todo elemento de cualquier subtipo, lo es también del supertipo.
- Un elemento del supertipo puede pertenecer a más de un subtipo.
- No es necesario que todo elemento del supertipo sea miembro de algún subtipo.
- Todos los subtipos de un supertipo tienen los atributos del supertipo al que pertenecen, además de los suyos propios.
- Los subtipos participan de todas las relaciones en las que participe el supertipo.
La representación es la siguiente:
Viendo esta forma de representación vertical, podemos entender de mejor manera que las entidades subtipo heredan todos los atributos de la entidad supertipo, así como las relaciones en las que participa la entidad supertipo. Este es el concepto de herencia entre superclases y subclases en el modelo E-R-E.
Los subtipos de una entidad supertipo pueden venir determinados por una condición predefinida. En estos casos, se suele representar la condición o atributo discriminante en los diagramas E-R-E mediante un círculo asociado al vínculo del supertipo-subtipo.
Especialización y generalización. Tipos
La especialización
La especialización es el proceso de definir un conjunto de subtipos de una entidad supertipo. Este conjunto se define a partir de alguna característica distintiva de las instancias de la entidad supertipo.
Si atendemos al ejemplo anterior, el conjunto de subtipo {DOCENTE, NO DOCENTE} es una especialización del supertipo EMPLEADO, cuya característica distintiva es el tipo de trabajo que desempeñan los empleados.
Una entidad puede tener varias especializaciones. Por ejemplo, el supertipo EMPLEADO puede tener la especialización formada por los subtipos {FIJO, TEMPORAL}, donde se distingue entre los tipos de contratos.
Hay dos razones por las que se suelen incluir relaciones Tipo-Subtipo en un modelo de datos:
- Si hay instancias en el supertipo a las que se pueden aplicar unos atributos concretos, que no se pueden aplicar a otras, se pueden definir subtipos para agrupar las instancias a las que se aplican esos atributos. Por ejemplo, la subclase DOCENTE puede tener el atributo específico Asignatura y la sublcase NO DOCENTE el atributo de Ocupación, pero el resto de atributos (Nombre, DNI, Fecha Nacimiento, etc) los comparten como miembros de la entidad EMPLEADO.
- Si existen relaciones en las que solo pueden participar algunas instancias de una entidad, podemos definir una subclase para agrupar las instancias que pueden participar y, así, relacionar esta subclase con una tercera entidad mediante un vínculo específico.
En resumen, la especialización nos permite:
- Definir un conjunto de subclases de una entidad.
- Establecer atributos específicos adicionales para cada subclase.
- Establecer relaciones específicas entre cada subclase y otras entidades.
La generalización
La generalización consiste en el proceso inverso a la especialización, en el que se identifican los rasgos comunes a varias entidades y los generalizamos para formar una sola superclase.
En el ejemplo anterior, se podría haber visto de esta forma si partimos de las entidades DOCENTE y NO DOCENTE y creamos EMPLEADO como una generalización de ambas.
Tipos de especialización/generalización
Podemos distinguir 4 tipos de especialización/generalización, teniendo en cuenta:
- Si los subtipos se solapan o si son disjuntos.
- Si los subtipos engloban a todas las instancias del supertipo (totalidad) o no (parcialidad).
Las cuatro combinaciones posibles de estas dos características dan lugar a los 4 tipos siguientes:
Especialización total sin solapamiento
Siguiendo con el ejemplo que hemos usado durante toda la entrada, sería el caso si:
- Un EMPLEADO no puede ser a la vez DOCENTE y NO DOCENTE (disjuntos).
- Todo EMPLEADO tiene que ser obligatoriamente DOCENTE o NO DOCENTE (totalidad).
La característica de subtipos disjuntos se representa en los diagramas E-R-E mediante un arco debajo del triángulo y la característica de totalidad se representa mediante un círculo en la línea que une la entidad supertipo con el triángulo.
Especialización parcial sin solapamiento
Sería el caso si:
- Un EMPLEADO no puede ser a la vez DOCENTE y NO DOCENTE (disjuntos).
- Hay EMPLEADOS que no se pueden englobar en DOCENTE ni en NO DOCENTES ya que no se le pueden aplicar los atributos específicos de ellos (parcialidad).
Se representan:
Especialización total con solapamiento
Sería el caso si las personas relacionadas con una empresa las agrupamos en PROVEEDORES Y CLIENTES: un proveedor puede ser también cliente y viceversa (solapamiento); sin embargo, toda persona relacionada con la empresa o es CLIENTE o es PROVEEDOR (totalidad).
Especialización parcial con solapamiento
Sería el caso si entre las personas relacionadas con una empresa definimos los grupos PROVEEDORES y CLIENTES, pero hay otras personas registradas en la entidad PERSONA (trabajadores, directivos, etc): un proveedor puede ser también cliente y viceversa (solapamiento); sin embargo, no toda persona relacionada con la empresa o es cliente o es proveedor (totalidad).
Conclusión
Y con esto damos por explicado el modelo Entidad-Relación extendido, una ampliación como hemos dicho del modelo Entidad-Relación.
A fin de cuentas, plasmar el mundo real en una base de datos informática no es una tarea sencilla, por lo que estas mejoras ayudan a los analistas a realizar mejor su trabajo, contemplando así todas las casuísticas posibles.
En la próxima entrada sobre bases de datos daremos un saltito más, aprendiendo a construir el diagrama del modelo Entidad-Relación (y el modelo Entidad-Relación extendido) a partir de un enunciado, el cual se conoce como Universo del discurso.
Y por último, como siempre, te pido que me ayudes a difundir esta entrada en redes sociales usando los botones de abajo, para que más gente conozca la página.
Recuerda suscribirte a nuestra newsletter para no perderte ninguna novedad en nuestra web. Tienes el formulario justo aquí debajo y en el pie de página. Solo recibirás la notificación de que hemos publicado una nueva entrada, ¡nada más!
Hasta la próxima, ¡un saludo!