y relaciones recursivas
3.4.4 Atributos de los tipos de relación
Los tipos de relación también pueden tener atributos, parecidos a los de los tipos de entidad. Por ejemplo, para registrar el número de horas por semana que un empleado trabaja en un proyecto en particular, podemos
EMPLEADO TRABAJA_EN PROYECTO
e1 e2 e3 e4 r1 r2 r3 r4 r5 r6 r7 p1 p2 p3 p4
EMPLEADO ADMINISTRA DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7 d1 d2 d3 r1 r2 r3
Capítulo 3 Modelado de datos con el modelo Entidad-Relación (ER)
66
incluir un atributo Horaspara el tipo de relación TRABAJA_ENde la Figura 3.13. Otro ejemplo es incluir la fecha en que el director empezó a dirigir un departamento, mediante un atributo FechaIniciopara el tipo de relación ADMINISTRAde la Figura 3.1.
Los atributos de los tipos de relación 1:1 o 1:N se pueden trasladar a uno de los tipos de entidad participan- tes. Por ejemplo, el atributo FechaIniciopara la relación ADMINISTRApuede ser un atributo de EMPLEADO
o DEPARTAMENTO, aunque conceptualmente pertenece a ADMINISTRA. Esto se debe a que ADMINISTRAes una relación 1:1, por lo que cada entidad departamento o empleado participa a lo sumo en una instancia de relación. Por tanto, el valor del atributo FechaIniciose puede determinar por separado, bien mediante la enti- dad departamento participante, bien mediante la entidad empleado (director) participante.
En el caso de un tipo de relación 1:N, un atributo de relación sólo se puede migrar al tipo de entidad que se encuentra en el lado N de la relación. En la Figura 3.9, por ejemplo, si la relación TRABAJA_PARAtambién tiene un atributo FechaInicioque indica la fecha en que un empleado empezó a trabajar para un departamen- to, este atributo se puede incluir como un atributo de EMPLEADO. Esto se debe a que cada empleado trabaja sólo para un departamento y, por tanto, participa en un máximo de una instancia de relación en
TRABAJA_PARA. En los tipos de relación 1:1 y 1:N, la decisión sobre dónde debe colocarse un atributo de relación (como un atributo de tipo de relación o como un atributo de un tipo de entidad participante) la deter- mina subjetivamente el diseñador del esquema.
Para los tipos de relación M:N, algunos atributos pueden determinarse mediante la combinación de entidades
participantes en una instancia de relación, no mediante una sola relación. Dichos atributos deben especificar- se como atributos de relación. Un ejemplo de esto es el atributo Horasde la relación M:N TRABAJA_EN
(véase la Figura 3.13); el número de horas que un empleado trabaja en un proyecto viene determinado por una combinación empleado-proyecto, y no separadamente por cualquiera de estas entidades.
3.5
Tipos de entidades débiles
Los tipos de entidad que no tienen atributos clave propios se denominan tipos de entidad débiles. En contra- posición, los tipos de entidad regulares que tienen un atributo clave (que incluye todos los ejemplos que hemos explicado hasta ahora) se denominan tipos de entidad fuertes. Las entidades que pertenecen a un tipo de entidad débil se identifican como relacionadas con entidades específicas de otro tipo de entidad en combi- nación con uno de sus valores de atributo. Podemos llamar a este otro tipo de entidad tipo de entidad iden-
tificado o propietario10, y al tipo de relación que relaciona un tipo de entidad débil con su propietario lo
podemos llamar relación identificativa del tipo de entidad débil.11Un tipo de entidad débil siempre tiene una
restricción de participación total (dependencia de existencia) respecto a su relación identificativa, porque una
entidad débil no puede identificarse sin una entidad propietaria. No obstante, no toda dependencia de existen- cia produce un tipo de entidad débil. Por ejemplo, la entidad PERMISO_CONDUCIRno puede existir a menos que esté relacionada con una entidad PERSONA, aunque tiene su propia clave (NumPermiso) y, por tanto, no es una entidad débil.
Considere el tipo de entidad SUBORDINADO, relacionada con EMPLEADO, que sirve para llevar el control de las personas a cargo de cada empleado a través de una relación 1:N (véase la Figura 3.2). Los atributos de
SUBORDINADOson Nombre(el nombre de pila del dependiente), FechaNac, Sexoy Relación(con el em- pleador). Dos personas a cargo de dos empleados diferentes pueden, por casualidad, tener los mismos valores para Nombre, FechaNac, Sexoy Relación, pero todavía seguirán siendo entidades distintas. Se identifican como entidades diferentes únicamente después de determinar la entidad de empleado en particular con la que
10El tipo de entidad identificativa también se denomina a veces tipo de entidad padre o tipo de entidad dominante. 11El tipo de entidad débil también recibe a veces el nombre de tipo de entidad hija o tipo de entidad subordinada.
3.5 Tipos de entidades débiles 67
cada persona a cargo está relacionada. Cada entidad empleado posee entidades dependientes que están rela- cionadas con ella.
Un tipo de entidad débil normalmente tiene una clave parcial, que es el conjunto de atributos que pueden identificar sin lugar a dudas las entidades débiles que están relacionadas con la misma entidad propietaria.12
En nuestro ejemplo, si asumimos que no puede haber dos dependientes del mismo empleado con el mismo nombre, el atributo Nombrede SUBORDINADOes la clave parcial. En el peor de los casos, la clave parcial será un atributo compuesto por todos los atributos de la entidad débil.
En los diagramas ER, tanto el tipo de la entidad débil como la relación identificativa, se distinguen rodeando sus cuadros y rombos mediante unas líneas dobles (véase la Figura 3.2). El atributo de clave parcial aparece subrayado con una línea discontinua o punteada.
Los tipos de entidades débiles se puede representar a veces como atributos complejos (compuestos, multiva- lor). En el ejemplo anterior, podríamos especificar un atributo multivalor Subordinadospara EMPLEADO, que es un atributo compuesto por los atributos simples Nombre, FechaNac, Sexoy Relación. El diseñador de la base de datos toma la decisión del tipo de representación que hay que usar. Uno de los criterios que puede uti- lizar es elegir la representación del tipo de entidad débil si hay muchos atributos. Si la entidad débil participa independientemente en los tipos de relación de otra forma que su tipo de relación identificativa, entonces no debe modelarse como un atributo complejo.
En general, se puede definir cualquier cantidad de niveles de tipos de entidad débil; un tipo de entidad pro- pietaria puede ser ella misma un tipo de entidad débil. Además, un tipo de entidad débil puede tener más de un tipo de entidad identificativa y un tipo de relación identificativa de grado superior a dos, como se ilustra en la Sección 3.9.