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