3.3. Transformacion de interrelaciones binarias

3.3. Transformacion de interrelaciones binarias Dataprix 30 Septiembre, 2009 - 10:31

Para transformar una interrelación binaria es necesario tener en cuenta su conectividad, y si las entidades son obligatorias u opcionales en la interrelación.

3.3.1. Conectividad 1:1

3.3.1. Conectividad 1:1 Dataprix 30 Septiembre, 2009 - 10:52

Nuestro punto de partida es que las entidades que intervienen en la interrelación 1:1 ya se han transformado en relaciones con sus correspondientes atributos.
Entonces sólo será necesario añadir a cualquiera de estas dos relaciones
una clave foránea que referencie a la otra relación.

Ejemplo de transformación de una interrelación binaria 1:1
 

Para la interrelación de la figura anterior, tenemos dos opciones de transformación:

•   Primera opción:
                

•   Segunda opción:
               

Ambas transformaciones nos permiten saber en qué ciudad hay una delegación, y qué delegación tiene una ciudad. De este modo, reflejan correctamente el significado de la interrelación situación del modelo ER.

En la primera transformación, dado que una delegación está situada en una sola ciudad, el atributo nombre-ciudad tiene un único valor para cada valor de la clave primaria {nombre-del}. Observad que, si pudiese tener varios valores, la solución no sería correcta según la teoría relacional.

En la segunda transformación, teniendo en cuenta que una ciudad tiene una sola delegación, el atributo nombre-del también toma un solo valor para cada valor de la clave primaria {nombre-ciudad}.

También es necesario tener en cuenta que, en las dos transformaciones, la clave foránea que se les añade se convierte en una clave alternativa de la relación porque no admite valores repetidos. Por ejemplo, en la segunda transformación no puede haber más de una ciudad con la misma delegación; de este modo, nombre-del debe ser diferente para todas las tuplas de CIUDAD.

3.3.2. Conectividad 1:N

3.3.2. Conectividad 1:N Dataprix 30 Septiembre, 2009 - 10:58

Partimos del hecho de que las entidades que intervienen en la interrelación 1:N ya se han trasformado en relaciones con sus correspondientes atributos. En este caso sólo es necesario añadir en la relación correspondiente a la entidad del lado N, una clave foránea que referencie la otra relación.

Ejemplo de transformación de una interrelación binaria 1:N
                    
          

La interrelación de la figura anterior se transforma en:

DESPACHO(desp, ...)
EMPLEADO(emp, ..., desp)
  donde {desp}referencia DESPACHO

Esta solución nos permite saber en qué despacho está asignado cada empleado, y también nos permite consultar, para cada despacho, qué empleados hay. Es decir, refleja correctamente el significado de la interrelación asignación.

Teniendo en cuenta que un empleado está asignado a un único despacho, el atributo desp tiene un valor único para cada valor de la clave primaria {emp}. Si hubiésemos puesto la clave foránea {emp} en la relación DESPACHO, la solución habría sido incorrecta, porque emp habría tomado varios valores, uno para cada uno de los distintos empleados que pueden estar asignados a un despacho.

3.3.3. Conectividad M:N

3.3.3. Conectividad M:N Dataprix 30 Septiembre, 2009 - 11:05

Una interrelación M:N se transforma en una relación. Su clave primaria
estará formada por los atributos de la clave primaria de las dos entidades interrelacionadas. Los atributos de la interrelación serán atributos de la nueva relación.

Ejemplo de transformación de una interrelación binaria M:N

La interrelación de la figura anterior se transforma en:

ESTUDIANTE(est, ...)
ASIGNATURA(asig, ...)
EVALUACIÓN(est,asig, nota)
  donde {est} referencia ESTUDIANTE
  y {asig} referencia ASIGNATURA

Observad que la clave de evaluacion debe constar tanto de la clave de estudiante como de la clave de asignatura para identificar completamente la relación.

La solución que hemos presentado refleja correctamente la interrelación evaluación y su atributo nota. Permite saber, para cada estudiante, qué notas obtiene de las varias asignaturas y, para cada asignatura, qué notas tienen los diferentes estudiantes de aquella asignatura.

En el caso M:N no podemos utilizar claves foráneas para transformar la interrelación, porque obtendríamos atributos que necesitarían tomar varios valores, y esto no se permite en el modelo relacional.

3.3.4. Influencia de la pendencia de existencia en la transformacion de las interrelaciones binarias

3.3.4. Influencia de la pendencia de existencia en la transformacion de las interrelaciones binarias Dataprix 30 Septiembre, 2009 - 11:14

La dependencia de existencia, o más concretamente, el hecho de que alguna de las entidades sea opcional en una interrelación se debe tener en cuenta al hacer la transformación de algunas relaciones binarias 1:1 y 1:N.

Si una de las entidades es opcional en la interrelación, y la transformación ha consistido en poner una clave foránea en la relación que corresponde a la otra entidad, entonces esta clave foránea puede tomar valores nulos.

Ejemplo de transformación de una entidad opcional en la interrelación

En el ejemplo siguiente, la entidad departamento es opcional en dirección y, por lo tanto, puede haber empleados que no sean directores de ningún departamento.
  

En principio, hay dos opciones de transformación:

•   Primera opción:

DEPARTAMENTO(dep, ..., emp-dir)
  donde {emp-dir} referencia EMPLEADO
EMPLEADO(emp, ...)

•   Segunda opción:

DEPARTAMENTO(dep, ...)
EMPLEADO(emp, ..., dep)
  donde {dep} referencia DEPARTAMENTO
  y dep puede tomar valores nulos

La segunda transformación da lugar a una clave foránea que puede tomar valores nulos (porque puede haber empleados que no son directores de ningún departamento). Entonces será preferible la primera transformación, porque no provoca la aparición de valores nulos en la clave foránea y, de este modo, nos ahorra espacio de almacenamiento.

En las interrelaciones 1:N, el hecho de que la entidad del lado 1 sea opcional también provoca que la clave foránea de la transformación pueda tener valores nulos. En este caso, sin embargo, no se pueden evitar estos valores nulos porque hay una única transformación posible.