2.2.1. Generalització / especialització

En alguns casos, hi ha ocurrències d'una entitat que tenen característiques pròpies específiques que ens interessa modelitzar. Per exemple, pot passar que es vulgui tenir constància de quin cotxe de l'empresa tenen assignat els empleats que són directius, també que, dels empleats tècnics, interessi tenir una interrelació amb una entitat projecte que indiqui en quins projectes treballen i es desitgi registrar la seva titulació. Finalment, que convingui conèixer l'antiguitat dels empleats administratius. Així mateix, hi haurà algunes característiques comunes a tots els empleats: tots s'identifiquen per un DNI, tenen un nom, un cognom, una adreça i un número de telèfon.

La generalització / especialització permet reflectir el fet que hi ha una entitat general, que anomenem entitat superclasse, que es pot especialitzar en entitats subclasse:

a) L'entitat superclasse ens permet modelitzar les característiques comunes de l'entitat vista d'una forma genèrica.
b) Les entitats subclasse ens permeten modelitzar les característiques pròpies de les seves especialitzacions.
Cal que es compleixi que tota idea d'una entitat subclasse sigui també una ocurrència de la seva entitat superclasse.

Denotem la generalització / especialització amb una fletxa que part de les entitats subclasse i que es dirigeix ​​a l'entitat superclasse.

Exemple d'entitats superclasse i subclasse

A la figura següent estan representades l'entitat superclasse, que correspon a l'empleat de l'exemple anterior, i les entitats subclasse, que corresponen al directiu, el tècnic i l'administratiu d'aquest exemple.

En la generalització / especialització, les característiques (atributs o interrelacions) de l'entitat superclasse es propaguen cap a les entitats subclasse.És el que s'anomena herència de propietats.

En el disseny d'una generalització / especialització, es pot seguir un dels dos processos següents:

1) Pot passar que el dissenyador primer identifiqui la necessitat de l'entitat superclasse i, posteriorment, reconegui les característiques específiques que fan necessàries les entitats subclasse.En aquests casos es diu que ha seguit un procés d'especialització.

2) L'alternativa és que el dissenyador modelitzi en primer lloc les entitats subclasse i, després, s'adoni de les seves característiques comunes i identifiqui l'en-titat superclasse. Llavors es diu que ha seguit un procés de generalització.

La generalització / especialització pot ser de dos tipus:

El nostre exemple dels empleats ...

... Correspon a una generalització / especialització disjunta perquè cap empleat pot ser més d'un tipus.Es denota amb l'etiqueta D.

a) disjunta. En aquest cas no pot succeir que una mateixa ocurrència aparegui en dues entitats subclasse diferents. Es denota gràficament amb l'etiqueta D.

b) solapada. En aquest cas no té lloc la restricció anterior. Es denota gràficament amb l'etiqueta S.

A més, una generalització / especialització també pot ser:

1) Total. En aquest cas, tota ocurrència de l'entitat superclasse ha de pertànyer a alguna de les entitats subclasse. Això es denota amb l'etiqueta T.

2) Parcial. En aquest cas no cal que es compleixi la condició anterior. Es denota amb l'etiqueta P.

La generalització / especialització dels empleats

La generalització / especialització dels empleats és total perquè suposem que tot empleat ha de ser directiu, tècnic o administratiu.Es denota amb l'etiqueta T.

empleadoT