2.2.1. Generalizacion/especializacion

En algunos casos, hay ocurrencias de una entidad que tienen características propias específicas que nos interesa modelizar. Por ejemplo, puede ocurrir que se quiera tener constancia de qué coche de la empresa tienen asignado los empleados que son directivos; también que, de los empleados técnicos, interese tener una interrelación con una entidad proyecto que indique en qué proyectos trabajan y se desee registrar su titulación. Finalmente, que convenga conocer la antigüedad de los empleados administrativos. Asímismo, habrá algunas características comunes a todos los empleados: todos se identifican por un DNI, tienen un nombre, un apellido, una dirección y un número de teléfono.

La generalización/especialización permite reflejar el hecho de que hay una entidad general, que denominamos entidad superclase, que se puede especializar en entidades subclase: a) La entidad superclase nos permite modelizar las características comunes de la entidad vista de una forma genérica. b) Las entidades subclase nos permiten modelizar las características propias de sus especializaciones. Es necesario que se cumpla que toda ocurrencia de una entidad subclase sea también una ocurrencia de su entidad superclase.
Denotamos la generalización/especialización con una flecha que parte de las entidades subclase y que se dirige a la entidad superclase.


Ejemplo de entidades superclase y subclase

En la figura siguiente están representadas la entidad superclase, que corresponde al empleado del ejemplo anterior, y las entidades subclase, que corresponden al directivo, al técnico y al administrativo del mismo ejemplo.

 

En la generalización/especialización, las características (atributos o interrelaciones) de la entidad superclase se propagan hacia las entidades subclase. Es lo que se denomina herencia de propiedades.

En el diseño de una generalización/especialización, se puede seguir uno de los dos procesos siguientes:

1)  Puede ocurrir que el diseñador primero identifique la necesidad de la entidad superclase y, posteriormente, reconozca las características específicas que hacen necesarias las entidades subclase. En estos casos se dice que ha seguido un proceso de especialización.

2)  La alternativa es que el diseñador modelice en primer lugar las entidades subclase y, después, se dé cuenta de sus características comunes e identifique la en- tidad superclase. Entonces se dice que ha seguido un proceso de generalización.

La generalización/especialización puede ser de dos tipos:

Nuestro ejemplo de los empleados...
...corresponde a una generalización/especialización disjunta porque ningun empleado puede ser más de un tipo. Se denota con la etiqueta D.


a)  Disjunta. En este caso no puede suceder que una misma ocurrencia apa- rezca en dos entidades subclase diferentes. Se denota gráficamente con la etiqueta D.

b)  Solapada. En este caso no tiene lugar la restricción anterior. Se denota grá- ficamente con la etiqueta S.


Además, una generalización/especialización también puede ser:

1)  Total. En este caso, toda ocurrencia de la entidad superclase debe pertenecer a alguna de las entidades subclase. Esto se denota con la etiqueta T.

2)  Parcial. En este caso no es necesario que se cumpla la condición anterior. Se denota con la etiqueta P.

 

La generalización/especialización de los empleados

La generalización/especialización de los empleados es total porque suponemos que todo empleado debe ser directivo, técnico o administrativo. Se denota con la etiqueta T.

                                                                empleadoT