1.3. Modelo Entidad Relación extendida.

GENERALIZACIÓN.

Es una relación contenida que existe entre el conjunto de nivel más alto (superclase) y uno o más conjuntos de entidades de nivel más bajo (subclase). La generalización permite que las entidades de nivel más bajo hereden los atributos de la entidad generalizadora de más alto nivel. La entidad general se llama superentidad y las otras subentidades. La superentidad normalmente tiene una clave principal distinta de las subentidades (éste sería el detalle más importante para diferenciarlas de las relaciones ISA de especificación).

La Generalización trata de eliminar la redundancia (repetición) de atributos, al englobar los atributos semejantes. La entidad(es) de bajo nivel cuentan (heredan) todos los atributos correspondientes. Para la representación de este tipo de interrelación, utilizamos un triángulo invertido, con la base paralela al rectángulo que representa el supertipo (Generalización) y conectado a éste y a los subtipos (Especialización). Las cardinalidades son siempre (1,1) en el supertipo y (0,1) en los subtipos.

 

ESPECIALIZACIÓN.

El proceso por el que se definen las diferentes subclases de una superclase se conoce como especialización. Ocurre cuando partimos de una entidad que podemos dividir en subentidades para detallar atributos que varían en las mismas. Comparten clave con la superentidad y los atributos de la superclase se heredan en las subclases.

Ejemplo

EJEMPLO 1

La entidad empleado tiene varios atributos como nombre, dirección, teléfono, fecha de nacimiento, tiempo de servicio, etc. Pero un empleado tiene la característica de que puede ser contratado por horas o permanente. Si es por horas, necesitaremos conocer cuántas horas trabajó en el mes y el precio de la hora para calcular su salario mensual. En cambio si es asalariado, ya tiene un salario mensual fijo.

   
 

En este ejemplo, los subtipos Empleado por horas y Empleado Asalariado corresponden a la especialización. En especialización, los subtipos heredan los atributos y las interrelaciones de su supertipo. La clave la tiene la superentidad. Empleado por horas y empleado asalariado heredan los atributos de la superentidad. El resto son atributos propios solo de cada entidad. Podemos tener varias especializaciones de una misma entidad basándonos en distintos criterios. Por ejemplo, otra especialización de EMPLEADO podría dar lugar a las subclases Secretaria, Ingeniero, Técnico.

   
  Generalizacion

 

La generalización o la especialización se suelen distinguir por las claves. Si se comparte clave entre la superentidad y sus descendientes, se habla de especialización; de otro modo se habla de generalización. En la generalización cada entidad de alto nivel debe ser también una entidad de bajo nivel. La especialización no tiene esta limitante.

Ejemplo

EJEMPLO 2

Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos semejantes de No_Cta y Saldo, aunque además de estos dos atributos, Cta_Ahorro tiene el atributo Tasa_Interes y Cta_Cheques el atributo Saldo_Deudor. De todos estos atributos podemos juntar (generalizar) No_Cta y Saldo que son iguales en ambas entidades.

   
  Generalizacion

 

Ejemplo

EJEMPLO 3

Se tiene la superclase Médico y las subclases Cirujano, Pediatra, Oftalmólogo, Ginecólogo, Dermatólogo. Entonces podemos decir que Cirujano y Pediatra, es un tipo de Médico.

   
  Especializacion

 

Características:

Generalización:

  • Énfasis en las similitudes
  • Cada instancia del supertipo es también una instancia de alguno de los subtipos.

Especialización:

  • Énfasis en las diferencias
  • Alguna instancia del supertipo puede no ser instancia de ningún subtipo.

 

1.3.2 AGREGACIÓN

Es un concepto de abstracción para construir objetos compuestos a partir de sus objetos componentes.

Permite combinar entidades entre las que existe una interrelación y formar una entidad de más alto nivel. Es útil cuando la entidad de más alto nivel se tiene que interrelacionar con otra entidad.

La agregación surge de la limitación que existe en el modelado de E-R, al no permitir expresar las relaciones entre relaciones de un modelo E-R en el caso de que una relación X se quiera unir con una entidad cualquiera para formar otra relación.

Ejemplo

EJEMPLO 1

Supóngase que se desean registrar los directores para las tareas realizadas por un empleado en una sucursal; es decir, se desean registrar directores por combinaciones (empleado, sucursal, trabajo). Asúmase que existe una entidad director.

Considere el conjunto de relaciones trabaja-en (que relaciona los conjuntos de entidades empleado, sucursal y trabajo) como un conjunto de entidades de nivel más alto denominado trabaja-en.

Tal conjunto de entidades se trata de la misma forma que cualquier otro conjunto de entidades. Una alternativa es crear una relación cuaternaria “dirige”  entre empleado, sucursal, trabajo y director. Algunas combinaciones empleado – sucursal – trabajo puede ser que no tengan director.

   
  Agregacion
   
  Utilizando agregación, se puede crear una relación binaria “dirige” entre trabaja-en y director para representar quién dirige las tareas.
   
  Agregacion

 

Ejemplo

EJEMPLO 2.

Considere el conjunto de objetos HOMBRE y MUJER. Se puede definir la relación Está-casado-con. A esta relación se le denomina conjunto de objetos agregado. Si le ponemos nombre, a este agregado se le puede llamar MATRIMONIO.

   
  Agregacion
   
 

La relación ANIVERSARIO conecta a las parejas de casados con su aniversario de bodas. Otra relación RESIDE-EN los conecta con su dirección de residencia, y así podríamos ir agregando más relaciones entre ellas.

   
  Agregacion

 

Ejemplo

EJEMPLO 3.

Se desea almacenar información sobre las entrevistas que una empresa organiza entre solicitantes de empleo y diferentes empresas. Algunas entrevistas dan lugar a ofertas de empleo y otras no.

   
  Agregacion
 

Oferta_Empleo tiene dependencia en existencia respecto de Resulta_en.

La agregación convierte en un solo objeto una relación. Si se elimina la entidad agregada se eliminan además las entidades que la forman.

 

1.3.3 RELACIONES REFLEXIVAS Y EXCLUSIVAS.

Relaciones Reflexivas: Relacionan una entidad consigo misma.

Ejemplo

EJEMPLO.

Empleados de una empresa que pueden ser jefes de otros empleados. Si los empleados pueden dividirse en jefes y subordinados, es preferible usar una jerarquía de generalización en lugar de una relación reflexiva. Pero si un jefe puede a su vez tener otro jefe de nivel superior y así recursivamente, es necesario usar una relación reflexiva.

   
  Reflexiva

 

Relaciones Exclusivas:

Dos o más tipos de relación son exclusivos, respecto de un tipo de entidad que participa en ambos, si cada instancia del tipo de entidad sólo puede participar en uno de los tipos de relación. Se representa por un arco.

Ejemplo

EJEMPLOS.

 

  1. Un vehículo puede consumir gasoil o puede gastar gasolina. Consume y gasta son exclusivas respecto del tipo de entidad Vehículo.
  Exclusiva
   
  2. Las relaciones PUBLICA y APARECE son exclusivas, ya que se ha recogido en el esquema que en una determinada biblioteca los artículos están publicados en revistas o recogidos en recopilaciones, pero no en ambos.
  Exclusiva

 

 

1.3.4 RESTRICCIONES

Un modelo E-R puede definir ciertas restricciones a las cuales debe ajustarse. (A veces suele llamarse restricciones sobre las generalizaciones). Una restricción importante es la de las cardinalidades de asignación, que puede verse en dos tipos distintos: cardinalidad en atributos y cardinalidad en relaciones.

 

Cardinalidad en atributos: En general, puede considerarse que cada entidad de un conjunto, tiene asociado exactamente un valor de cada atributo. Sin embargo esto no es obligatorio. Pueden especificarse cantidad mínima y máxima de valores de un atributo asociados a una entidad.

 La cardinalidad mínima indica el número mínimo de valores para el atributo:

  • Si la cardinalidad mínima es cero indica que el atributo es opcional y puede no estar especificado en algunos casos.
  • Si la cardinalidad mínima es 1 indica que el atributo es obligatorio y al menos un valor debe especificarse para cada instancia de la entidad.

La cardinalidad máxima indica el número máximo de valores para el atributo.

  • Si la cardinalidad máxima es 1, indica que el atributo es monovalente.
  • Si la cardinalidad máxima es mayor que 1, indica que el atributo es polivalente.

Como disciplina de modelado, es aconsejable iniciar el proceso restringiéndose a atributos con exactamente un valor (1,1) por los siguientes motivos:

  •  Los atributos multivalorados (cardinalidad máxima n) son difíciles de implementar en un sistema gestor de base de datos relacional, obligando a procesos de normalización.
  • Los atributos opcionales (cardinalidad mínima 0) generalmente indican clases especiales de entidades.

Cardinalidad en relaciones: Expresan el número de entidades con las que puede asociarse otra entidad mediante un conjunto de relaciones. Para un conjunto binario de relaciones R entre los conjuntos de entidades A y B, la cardinalidad de asignación debe ser una de las siguientes:

  • Una a Una (1,1)
  • Una a Muchas (1,n)
  • Muchas a una (n,1)
  • Muchas a muchas (n, n)