jueves, 22 de septiembre de 2011

Modelado de datos con especialización y generalización

Las subclases y superclases se corresponden con entidades y por tanto se representarán con rectángulos en el diagrama ERE. Ahora veremos con más detalle las propiedades de especialización y generalización.

Restricciones de especialización y generalización

En los siguientes párrafos veremos las restricciones aplicables a una especialización o a una generalización; sin embargo, por abreviar, nuestra visión se referirá solamente a la especialización en vez de a ambas técnicas.

En general podremos tener varias especializaciones definidas sobre la misma entidad o superclase, como se ve en la figura 1. En tal caso las ocurrencias de entidad pueden pertenecer a cada una de las especializaciones. Sin embargo, una especialización puede consistir en solo una subclase, tal como JEFE en la figura 1; en tal caso no utilizaremos la notación círculo.

En algunas especializaciones podremos determinar exactamente que ocurrencias de entidad se convertirán en ocurrencias de cada subclase, mediante la utilización de una condición en algún atributo de la superclase. Tales subclases se llaman subclases definidas por predicado (o definidas por condición). Por ejemplo, si la entidad EMPLEADO tiene el atributo tipotrabajo, como se ve en la figura 3, podremos especificar una condición de pertenencia a la subclase SECRETARIA mediante el predicado tipotrabajo = "Secretaria"), al cual llamaremos predicado de definición de la subclase. Esta condición es una restricción especificando que los miembros de la subclase SECRETARIA deben satisfacer el predicado y que todas las ocurrencias de la entidad EMPLEADO en las que el valor del atributo tipotrabajo sea "Secretaria" deben pertenecer a la esta subclase.

Si todas las subclases en una especialización tienen la condición de pertenencia en el mismo atributo de la superclase, la especialización será una especialización definida por atributo y el atributo será llamado atributo de definición de la especialización. Definiremos una especialización definida por atributo en el diagrama colocando el atributo de definición cerca del arco que va desde el círculo a la superclase, como puede verse en la figura 3.

Cuando no exista tal condición para determinar la pertenencia a una superclase, la subclase se llamará subclase definida por el usuario. En tales subclases, la pertenencia vendrá determinada por los usuarios de la Base de Datos cuando realicen una operación de inserción de una ocurrencia en la subclase; por tanto, el usuario especifica la pertenencia de cada ocurrencia individualmente y no mediante una condición que pueda ser evaluada automáticamente.

Figura 3

Se pueden aplicar dos restricciones mas a la especialización. La primera es la restricción de desunión, la cual especifica que las subclases de la especialización deben estar separadas. Esto significa que una ocurrencia de la entidad puede ser miembro de como máximo una de las subclases de la especialización. Una especialización definida por atributo implica la restricción dedesunión, si el atributo para definir el predicado de pertenencia es simple. la figura 3 muestra este caso, donde la d del círculo denota la desunión. También usaremos la notación d para especificar que una especialización definida por el usuario debe tener la restricción de desunión asociada, como puede verse en la especialización {ASALARIADO, SUBCONTRATADO} de la figura 1.


Figura 4

Si las subclases no son desunidas, sus conjuntos de ocurrencias pueden solaparse, esto es, la misma ocurrencia de entidad puede ser miembro de más de una subclase de la especialización. Este caso, que es el caso por defecto, se representa mediante una O en el circulo, como se muestra en el ejemplo de la figura 4.

La segunda restricción a la especialización se llama la restricción de totalidad, la cual puede ser parcial o total. Una restricción de especialización total especifica que cada ocurrencia de entidad de la superclase debe ser miembro de alguna subclase de la especialización. Por ejemplo, si cada EMPLEADO debe se ASALARIADO o SUBCONTRATADO, entonces la especialización {ASALARIADO, SUBCONTRATADO} de la figura 1 es una especialización total de EMPLEADO; esto se representa en el diagrama ERE usando una línea doble entre el círculo y la superclase. Una línea sencilla se utiliza para representar una especialización parcial, la cual permite que una ocurrencia de entidad no pertenezca a ninguna de las subclases. Por ejemplo, si alguna ocurrencia de entidad EMPLEADO no pertenece a ninguna de las subclases {SECRETARIA, INGENIERO, TÉCNICO} de las figuras 1 y 3, entonces la especialización es parcial.

Hay que tener en cuenta que las restricciones de desunión y totalidad son independientes, por tanto habrá cuatro tipos de especialización:
    • Desunión, total
    • Desunión, parcial
    • Solapamiento, total
    • Solapamiento, parcial
Como es lógico, las restricciones correctas vienen dadas por la naturaleza del problema real aplicado a cada especialización, si embargo, la generalización en una superclase suele ser total, ya que la superclase se deriva de las subclases y, por tanto, contiene sólo ocurrencias de entidad que están en las subclases.

Reglas de inserción y borrado para Especialización y Generalización

Como consecuencia de las restricciones definidas anteriormente, aparecen reglas para la inserción y borrado de Especialización (y Generalización). Algunas de esas reglas son las siguientes:
Borrar una tupla de una superclase implica el borrado automático en todas las subclases a las que pertenezca.
Insertar una tupla en una superclase implica que tiene que ser obligatoriamente insertada en todas las subclases definidas por predicado en las que satisfaga el predicado de definición.
Insertar una tupla en una superclase de una especialización total implica una inserción obligatoria en al menos una de las subclases de la especialización.

Existen otras reglas correspondientes a los distintos tipos de especialización y a las operaciones de inserción y borrado.

Jerarquías de Especialización, Red de Especialización y Herencia Múltiple


Figura 5


Una subclase puede, a su vez, tener más subclases especificadas a partir de ella, formando una jerarquía o red de especializaciones. Por ejemplo, en la figura 5 INGENIERO es una subclase de EMPLEADO y es a su vez superclase de JEFE DE INGENIERIA ; esto representa la restricción del mundo real por la que un jefe de ingenieria debe ser un ingeniero. Una jerarquía de especialización tiene la restricción cada subclase participa (como subclase) en una relación clase/subclase. Como contraste, para una red de especialización una subclase puede ser subclase en mas de una relación clase/subclase. Por consiguiente la figura 5 representa una red de especialización.

La figura 6 muestra otra red de especialización con más de un nivel. Este diagrama podría ser parte del esquema conceptual de una Base de Datos de una universidad. La estructura sería una jerarquía si no fuese por la subclase AYUDANTE, la cual es subclase en dos relaciones clase/subclase distintas. Todas las personas pertenecientes a la Base de Datos son miembros de la entidad PERSONA, la cual se especializa en las subclases {EMPLEADO, ESTUDIANTE}. Esta especialización tiene solapamiento. Por ejemplo, un empleado puede a su vez ser estudiante. La subclase ESTUDIANTE es superclase de la especialización {DE TFC, DE CURSOS }, mientras que EMPLEADO es superclase de la especialización {LABORAL, DOCENTE, AYUDANTE}. Hay que tener en cuenta que AYUDANTE es también subclase de ESTUDIANTE. Finalmente, AYUDANTE es superclase de la especialización {INVESTIGACION, DOCENCIA}.

Figura 6

En tal red o jerarquía de especialización, una subclase hereda no solamente los atributos de su superclase directa, sino también todos los de sus predecesores hasta la raíz. Por ejemplo, una ocurrencia de entidad DE TFC hereda los valores de sus atributos como ocurrencia de ESTUDIANTE y PERSONA. Hay que tener en cuenta que una ocurrencia de entidad puede existir en distintas hojas de la jerarquía; por ejemplo, un miembro de DE TFC puede también ser miembro de INVESTIGACION.

Una subclase con más de una superclase se llama subclase compartida. Por ejemplo, si cada JEFE DE INGENIERIA debe ser un INGENIERO pero también un ASALARIADO y JEFE, entonces JEFE DE INGENIERIA será una subclase compartida de las tres superclases (Figura 5.). Esto nos lleva al concepto de herencia múltiple, ya que la subclase compartida JEFE DE INGENIERIA hereda directamente atributos de varias clases. Hay que tener en cuenta que una subclase compartida implica una red; si no existen subclases compartidas estaremos en presencia de una jerarquía en vez de una red.

Aunque se ha utilizado la especialización para definir estos conceptos, la generalización es igualmente aplicable a estos. Por tanto podremos hablar de la misma forma de jerarquía de generalización y red de generalización.

Diseño Top-down frente a Bottom-up

En el proceso de especialización, solemos empezar con una entidad y a continuación definimos las subclases de la entidad mediante especializaciones sucesivas; esto es, definimos repetitivamente más agrupamientos específicos a partir de la entidad. Por ejemplo, durante el diseño de la red de especialización de la figura 6, podemos especificar primero la entidad PERSONA para la BD de una universidad. Entonces descubriremos que se van a representar dos tipos diferentes de personas en la BD: empleados de la universidad y estudiantes. Para este propósito crearemos la especialización {EMPLEADOS, ESTUDIANTES} y elegiremos la restricción de solapamiento porque una persona puede pertenecer a ambas subclases. Entonces especializaremos EMPLEADO en {LABORAL, DOCENTE, AYUDANTE}, y especializaremos ESTUDIANTE en {TFC,CURSO}. Finalmente especializaremos AYUDANTE en {INVESTIGACION,DOCENCIA}. Esta especialización sucesiva corresponde a un proceso de refinamiento conceptual top-down durante el diseño del esquema conceptual.

Hasta aquí, tendremos una jerarquía; descubriremos entonces que AYUDANTE es una subclase compartida, desde el momento en que es también una subclase de ESTUDIANTE, llevándonos esto a una red.

Es posible llegar a la misma jerarquía o red desde otra dirección. En tal caso el proceso conlleva generalización en vez de especialización y corresponde a una síntesis conceptual bottom-up. En términos estructurales, las jerarquías o redes resultantes de ambos procesos puede se idénticas; la única diferencia radica en la manera o el orden en que se especifican las clases y subclases del esquema.

En la práctica, es frecuente que no se utilice solamente especialización o solamente generalización, sino una combinación de ambos procesos. En este caso, se incorporan continuamente nuevas clases a la jerarquía o la red según se van haciendo visibles para usuarios y diseñadores.

No hay comentarios:

Publicar un comentario