Como es lógico, las restricciones correctas vienen dadas por la naturaleza del problema real aplicado a cada especialización, sin 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.
- Jerarquías de Especialización, Red de Especialización y Herencia Múltiple.
Una subclase puede, a su vez, tener más subclases especificadas a partir de ella, formando una jerarquía o red de especializaciones. 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.
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.
Una subclase con más de una superclase se llama subclase compartida. 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. Esta especialización sucesiva corresponde a un proceso de refinamiento conceptual top-down durante el diseño del esquema conceptual.
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.
Categorías y Categorización
Una categoría es una subclase de la unión de dos o más superclases que pueden tener diferentes claves ya que pueden representar diferentes entidades. En este caso es necesario sintetizar una clave subrogada, que identifique cada una de las ocurrencias de la categoría y que será heredada como clave foránea por cada una de las superclases. Por cuestiones de eficiencia a la hora de realizar los joins entre la categoría y sus correspondientes clases, se añadirá un atributo a la tabla de la categoría que exprese a que subclase pertenece cada túpla en particular.
Hola,Renato. Tengo una pregunta, ¿qué valores deberían ingresar en el atributo NIVEL?
ResponderEliminar