La segunda extensión incorporada en el modelo Entidad/Relación Extendido se centra en nuevos tipos de relaciones que van a permitir modelar la realidad de una manera más fiel. Estos nuevos tipos de relación reciben el nombre de jerarquías y se basan en los conceptos de generalización, especialización y herencia.
Cuando estamos diseñando una base de datos puede que nos encontremos con conjuntos de entidades que posean características comunes, lo que permitiría crear un tipo de entidad de nivel más alto que englobase dichas características. Y a su vez, puede que necesitemos dividir un conjunto de entidades en diferentes subgrupos de entidades por tener éstas, características diferenciadoras. Este proceso de refinamiento ascendente/descendente, permite expresar mediante la generalización la existencia de tipos de entidades de nivel superior que engloban a conjuntos de entidades de nivel inferior. A los conjuntos de entidades de nivel superior también se les denomina superclase o supertipo. A los conjuntos de entidades de nivel inferior se les denomina subclase o subtipo.
Por tanto, existirá la posibilidad de realizar una especialización de una superclase en subclases, y análogamente, establecer una generalización de las subclases en superclases. La generalización es la reunión en una superclase o supertivo de entidad de una serie de subclases o subtipos de entidades, que poseen características comunes. Las subclases tendrán otras características que las diferenciarán entre ellas.
¿Cómo detectamos una generalización? Podremos identificar una generalización cuando encontremos una serie de atributos comunes a un conjunto de entidades, y otros atributos que sean específicos. Los atributos comunes conforman la superclase o supertipo y los atributos específicos la subclase o subtipo.
Las jerarquías se caracterizan por un concepto que hemos de tener en cuenta, la herencia. A través de la herencia los atributos de una superclase de entidad son heredados por las subclases. Si una superclase interviene en una relación, las subclases también lo harán.
¿Cómo se representa una generalización o especialización? Existen varias notaciones, pero hemos de convenir que la relación que se establece entre una superclase de entidad y todos sus subtipos se expresa a través de las palabras ES UN, o en notación inglesa IS A, que correspondería con ES UN TIPO DE. Partiendo de este punto, una jerarquía se representa mediante un triángulo invertido, sobre él quedará la entidad superclase y conectadas a él a través de líneas rectas, las subclases.
En el ejemplo de la imagen, las subclases INVITADO
, REGISTRADO
y ADMINISTRADOR
constituyen subclases de la superclase USUARIO
. Cada una de ellas aporta sus propias características y heredan las pertenecientes a su superclase.
Una generalización/especialización podrá tener las siguientes restricciones semánticas:
- Totalidad: una generalización/especialización será total si todo ejemplar de la superclase pertenece a alguna de las subclases.
- Parcialidad: una generalización/especialización será parcial si no todos los ejemplares de la superclase pertenecen a alguna de las subclases.
- Solapamiento: una generalización/especialización presentará solapamiento si un mismo ejemplar de la superclase puede pertenecer a más de una subclase.
- Exclusividad: una generalización/especialización presentará exclusividad si un mismo ejemplar de la superclase pertenece sólo a una subclase.