jerar

Anuncio
CAPÍTULO 4
JERARQUÍAS
En ocasiones es muy útil y “natural” clasificar las entidades en distintos subtipos,
según el rol que cumplen en el sistema que se quiere modelar o por las distintas
características que tienen, otras veces, se puede hacer el camino inverso, es decir, a
partir de distintas entidades se puede abstraer características comunes y realizar una
generalización de ellas, esto es, crear un nuevo tipo de entidad llamado entidad base o
supertipo que contenga todas las características comunes a aquellas. Este proceso
simple, lleva a dos conceptos del modelo entidad interrelación extendido; la
especialización y la generalización respectivamente. La diferencia existente entre ellas
es algo sutil y se puede expresar en función de las limitantes que impone cada una de
ellas, como se verá en el ítem 4.2.
Para ejemplificar el uso y beneficio del modelado con jerarquías, tomaremos el
caso de una universidad en la que existen docentes que se desempeñan en ciertas
cátedras; también suponemos que existen técnicos docentes que ocupan cargos, como
ser, Directores de departamento, Secretarios académicos o Decanos y que también
pueden trabajar en determinadas cátedras y por último, podemos agregar también que
existen empleados profesionales que trabajan en algunas dependencias y que además
trabajan para alguna cátedra. Todo esto se muestra en el DER de la figura 4.6.
DOCENTE
CÁTEDRA
se desempeña
en
TÉCNICO
DOCENTE
EMPLEADO
PROFESIONAL
Figura 4.6
trabaja
en
pertenece a
Ejemplo de modelado sin uso de jerarquías
Podemos hacer dos observaciones importantes sobre esa representación:
a) en esencia las tres interrelaciones tienen el mismo significado, se les impuso
distinto nombre solo porque no podemos tener nombres de entidades o interrelaciones
repetidos. A medida que el ejemplo dado crezca en complejidad, proliferarán distintos
nombres para representar, en esencia, las mismas cosas, haciendo más engorrosa su
comprensión.
b) Mirando nuevamente la representación gráfica de esta realidad, podemos
notar que hay algo en común entre los siguientes tres tipos de entidades: docente,
técnico docente y empleado profesional; en esencia, cada una de las entidades que
pertenecen a dichos conjuntos de entidades son a su vez, empleados de la universidad.
De hecho, si representamos en el DER a todos los atributos, se vería más claramente la
cantidad de características (atributos) en común que tienen. En efecto, los tres tipos de
entidades comparten atributos, como ser el número de legajo y/o documento, la
dirección, el nombre, etc.
Podemos mejorar sustancialmente la representación de esta realidad si juntamos a las
características comunes y las usamos para caracterizar a un nuevo tipo de entidad,
llamada, en este caso, Empleado. En la figura 4.7 se muestra la versión mejorada usando
jerarquías.
trabaja en
EMPLEADO
TÉCNICO
DOCENTE
DOCENTE
CÁTEDRA
EMPLEADO
PROFESIONAL
Figura 4.7 Ejemplo de modelado con jerarquías
Note la simplicidad de la nueva representación, en efecto, en la figura anterior (4.6)
se tiene a tres conjuntos de interrelaciones con sus respectivas cardinalidades mientras
que en la nueva representación hay solo una interrelación con su cardinalidad, además,
el uso de una entidad que generaliza a otras (Empleado) ayuda a una mayor abstracción
del problema, resaltando las cosas comunes y ocultando los detalles.
El proceso que se realizó en el ejemplo se llama generalización; esto es, se parte de
varios tipos de entidades y luego mediante la observación se descubre que comparten
atributos en común y luego se considera a un nuevo tipo de entidad (supertipo o tipo
base) que agrupe a esas características comunes dejando a las anteriores como subtipos
(o tipos derivados) del mismo. Como ya se dijo se podría realizar el proceso en forma
inversa es decir mediante la especialización. En este último caso, sería partir de la
entidad Empleado y luego, por medio de especializar sus funciones, descubrir que
existen conjuntos de entidades derivadas de esta llamadas subtipos.
4.1 HERENCIA
En todo lo anterior se dio por sobreentendido dos importantes hechos:
a) el conjunto de características que describen a cada entidad perteneciente a un
subtipo dado esta formado por todos los atributos del subtipo en cuestión más todos los
atributos pertenecientes al tipo base. Es decir que los atributos del tipo base son
heredados por el tipo derivado.
b) análogamente a a) pero con respecto a las interrelaciones que llegan a la entidad
base, es decir, que cada una de las interrelaciones que llegan a la entidad base es
heredada por las entidades derivadas y no se las representan en el DER (como en la
figura 4.7) por razones de mayor legibilidad.
Lo anterior esta englobado en el concepto de herencia. Una entidad derivada
hereda de la entidad base los atributos y las interrelaciones.
4.2 TIPIFICACIÓN DE LAS JERARQUÍAS
Antes de mostrar ejemplos concretos con mayor detalle y sin perder generalidad, se
verá el caso abstracto de un supertipo A y sus dos subtipos B y C, ver figura 4.8, a
partir de ese ejemplo tipificaremos los caso posibles en que se puede dar una jerarquía.
Existen dos restricciones; B ∩ C = φ (conjuntos disjuntos) y B ∪ C = A (completitud de
la partición), que según se combinen dejan cuatro casos posibles:
1. Si
B ∪ C = A (partición completa) y
B ∩ C = φ (conjuntos disjuntos)
2. Si
B ∪ C ≠ A (partición parcial)
y
B ∩ C = φ (conjuntos disjuntos)
3. Si
B ∪ C = A (partición completa)
B ∩ C ≠ φ (conjuntos solapados)
4. Si
B ∪ C ≠ A (partición parcial)
y
B ∩ C ≠ φ (conjuntos solapados)
y
A
B
Figura 4.8
C
Ejemplo abstracto: A es una entidad base, y B y C entidades
derivadas.
En los casos uno y tres, donde B ∪ C = A se dice que la jerarquía es total y jerarquía
parcial en los casos en que B ∪ C ≠ A.
El lector debe generalizar el ejemplo dado para el caso de tener n subtipos.
4.3 GENERALIZACIÓN y ESPECIALIZACIÓN
Se llama generalización cuando imperan las limitantes del caso uno, dado
anteriormente. Es decir, que si se tiene la restricción de que los subtipos sean disjuntos
(no solapados) más la obligación de que en todo momento, la partición en B y C sea
completa (completitud de la partición). Dicho de un modo más formal, E es una
generalización de E1, E2,...,En si cada ocurrencia de E es también una ocurrencia de
una y solo una de las entidades subtipos. A este tipo de jerarquías se las suele llamar “
es un ” .
Un ejemplo de generalización es el caso de una inmobiliaria que comercializa
distintos objetos como ser: lotes , casas, departamentos y locales. Podría ser útil
generalizar dichos objetos y formar el supertipo INMUEBLE caracterizado por los
atributos comunes a todos los subtipos. En la figura 4.9 se muestra el caso, obsérvese la
simbología utilizada y el rótulo que le da semántica a la jerarquía.
INMUEBLE
Es un
DEPARTAMENTO
LOCAL
LOTE
CASA
Figura 4.9. Ejemplo de generalización.
En otros casos se está frente a una especialización. Esta podrá tener las tres variantes
restantes (tipo 2, 3 y 4); por lo tanto, se debe utilizar una simbología que nos indique
visualmente de que variante se trata.
Un ejemplo de especialización se presenta en el caso de modelar a una empresa
de préstamos, donde se registran a tres clases de personas; deudores, cónyuges y
garantes; si la empresa permite que el cónyuge o el garante de un deudor soliciten otro
préstamo, habrá un solapamiento entre los subtipos (Ver figura 4.10. Obsérvese que si
la misma empresa prohibe que un cónyuge o un garante tengan otros préstamos se
modelaría con una generalización.
PERSONA
PUEDE SER
DEUDOR
Figura 4.10
CÓNYUGE
n
GARANTE
Ejemplo de especialización total con posibilidad de
solapamiento.
La simbología utilizada para marcar el caso de subtipos posiblemente solapados
(especialización) es un arco como se muestra en la figura 4.10 donde se le agregó un
rótulo en este caso “n” para que sea más claro y universal entre los distintos dialectos
del DER. En caso de ser una jerarquía “ES UN” el arco sería redundante pero a veces
se lo encuentra con el rótulo “1”. El caso de jerarquización parcial ,es decir cuando E1
∪ E2 ∪ E3 ∪ ... ∪ En ≠ A , se lo simboliza igual que la opción ninguna, pero debe
observarse su ubicación antes de la ramificación.
La figura 4.11 muestra a la entidad ALUMNO de la cual interesa diferenciar a
dos subtipos; los alumnos becarios y los alumnos auxiliares de cátedra. Se entiende que
no todos los alumnos corresponden a estos dos subtipos, luego se trata de una
especialización parcial, además, se supone que son dos subtipos no excluyentes, es
decir, que se permite a los alumnos ser becario y ayudante de cátedra, al mismo tiempo,
por lo tanto, se trata también de subtipos con solapamiento. Estos dos hechos están
simbolizados en la figura 4.11 el primero (especialización parcial) con el círculo que
indica la opción nula y el segundo (solapamiento) con el arco y el rótulo n.
ALUMNO
PUEDE SER
BECARIO
n
AYUDANTE
Figura 4.11 Ejemplo de especialización parcial con
posibilidad de solapamiento.
La figura 4.12 ejemplifica el último caso que queda (caso tipo 2). A la entidad
Docente se la dividió en dos cargos mutuamente excluyentes, obviamente, existen otros
cargos que no se especializaron (suponga que no le interesa a la Organización) por lo
que la especialización es parcial.
Las ventajas que se obtienen al modelar con jerarquías, son las propias de la
mayor abstracción de datos y del uso del concepto de herencia. El subtipo hereda todos
los atributos del supertipo como así también toda interrelación y limitantes que le llegue
a través del supertipo.
DOCENTE
PUEDE SER
TITULAR
Figura 4.12
ASOCIADO
Ejemplo de especialización parcial sin solapamiento
Descargar