3.4. Transformacion de interrelaciones ternarias

3.4. Transformacion de interrelaciones ternarias Dataprix 30 Septiembre, 2009 - 11:19

La transformación de las interrelaciones ternarias presenta similitudes importantes con la transformación de las binarias M:N. No es posible representar la interrelación mediante claves foráneas, sino que es necesario usar una nueva relación. Para que la nueva relación refleje toda la información que modeliza la interrelación, es necesario que contenga las claves primarias de las tres entidades interrelacionadas y los atributos de la interrelación.

Así pues, la transformación de una interrelación ternaria siempre da lugar a una nueva relación, que tendrá como atributos las claves primarias de las tres entidades interrelacionadas y todos los atributos que tenga la interrelación. La clave primaria de la nueva relación depende de la conectividad de la interrelación.

A continuación analizaremos cuál debe ser la clave primaria de la nueva relación según la conectividad. Empezaremos por el caso M:N:P y acabaremos con el caso 1:1:1.

3.4.1. Conectividad M:N:P

3.4.1. Conectividad M:N:P Dataprix 30 Septiembre, 2009 - 11:26

Cuando la conectividad de la interrelación es M:N:P, la relación que se obtiene de su transformación tiene como clave primaria todos los atributos que forman las claves primarias de las tres entidades interrelacionadas.

Ejemplo de transformación de una interrelación ternaria M:N:P

Analizaremos la transformación con un ejemplo:

La interrelación anterior se transforma en:

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

Para identificar completamente la relación, la clave debe constar de la clave de estudiante, de la clave de asignatura y de la clave de semestre. Si nos faltase una de las tres, la clave de la relación podría tener valores repetidos. Consideremos, por ejemplo, que no tuviésemos la clave de semestre. Dado que semestre está conectada con “muchos” en la interrelación, puede haber estudiantes que han sido evaluados de una misma asignatura en más de un semestre. Entonces, para estos casos habría valores repetidos en la clave de la relación EVALUACION-SEMESTRAL.

Observad que, del mismo modo que es necesaria la clave de semestre, también lo son la de estudiante y la de asignatura.

3.4.2. Conectividad M:N:1

3.4.2. Conectividad M:N:1 Dataprix 30 Septiembre, 2009 - 11:33

Cuando la conectividad de la interrelación es M:N:1, la relación que se obtiene de su transformación tiene como clave primaria todos los atributos que forman las claves primarias de las dos entidades de los lados de la interrelación etiquetados con M y con N.

Ejemplo de transformación de una interrelación ternaria M:N:1

Lo ilustraremos con un ejemplo:
 
                                      

Esta interrelación refleja los destinos que se dan a los maestros de escuela en los diferentes cursos. El 1 que figura en el lado de escuela significa que un maestro no puede ser destinado a más de una escuela en un mismo curso. El ejemplo de la figura se transforma en:

MAESTRO(código-maestro, ...)
CURSO(código-curso, ...)
ESCUELA(código-esc, ...)
DESTINO(código-maestro, código-curso, código-esc)
  donde {código-maestro} referencia MAESTRO
  {código-curso} referencia CURSO
  y {código-esc} referencia ESCUELA

No es necesario que la clave incluya código-esc para identificar completamente la relación. Si se fijan un maestro y un curso, no puede haber más de una escuela de destino y, por lo tanto, no habrá claves repetidas.

3.4.3. Conectividad N:1:1

3.4.3. Conectividad N:1:1 Dataprix 30 Septiembre, 2009 - 11:55

Cuando la conectividad de la interrelación es N:1:1, la relación que se consigue de su transformación tiene como clave primaria los atributos que forman la clave primaria de la entidad del lado N y los atributos que
forman la clave primaria de cualquiera de las dos entidades que están conectadas con 1.

Así pues, hay dos posibles claves para la relación que se obtiene. Son dos claves candidatas entre las cuales el diseñador deberá escoger la primaria.

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

Veamos un ejemplo de ello:
                       
                             

1) Una posible transformación es la siguiente:

HORA-SEMANAL(código-hora, ...)
AULA(código-aula, ...)
ASIGNATURA(asig, ...)
CLASE (código-hora, código-aula, asig, duración)
  donde {código-hora} referencia HORA-SEMANAL,
  {código-aula} referencia AULA
  y {asig} referencia ASIGNATURA

En este caso, la clave, a pesar de no incluir el atributo asig, identifica completamente la relación porque para una hora-semanal y un aula determinadas hay una única asignatura de la que se hace clase a esa hora y en esa aula.

2) La segunda transformación posible es esta otra:

HORA-SEMANAL(código-hora, ...)
AULA(código-aula, ...)
ASIGNATURA(asig, ...)
CLASE (código-hora, código-aula, asig, duración)
  donde {código-hora} referencia HORA-SEMANAL,
  {código-aula} referencia AULA
  y {asig} referencia ASIGNATURA

Ahora la clave incluye el atributo asig y, en cambio, no incluye el atributo código-aula. La relación también queda completamente identificada porque, para una asignatura y hora-semanal determinadas, de aquella asignatura se da clase en una sola aula a aquella hora.

3.4.4. Conectividad 1:1:1

3.4.4. Conectividad 1:1:1 Dataprix 30 Septiembre, 2009 - 12:07

Cuando la conectividad de la interrelación es 1:1:1, la relación que se obtiene de su transformación tiene como clave primaria los atributos que forman la clave primaria de dos entidades cualesquiera de las tres interrelacionadas.

Así pues, hay tres claves candidatas para la relación.

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

Veamos un ejemplo de ello:

                     

Hemos considerado que ...          
... , si dos estudiantes presentan un mismo proyecto de fin de carrera, el tribunal será necesariamente diferente.

Esta interrelación registra información de defensas de proyectos de fin de carrera. Intervienen en ella el estudiante que presenta el proyecto, el proyecto presentado y el tribunal evaluador.
La transformación del ejemplo anterior se muestra a continuación:

TRIBUNAL(trib, ...)
ESTUDIANTE(est, ...)
PROYECTO-FIN-CARRERA(pro, ...)

Para la nueva relación DEFENSA, tenemos las tres posibilidades siguientes:

•   Primera opción:

DEFENSA(trib, est, pro, fecha-defensa)
  donde {trib} referencia TRIBUNAL,
  {est} referencia ESTUDIANTE
  y {pro} referencia PROYECTO-FIN-CARRERA

•   Segunda opción:

DEFENSA(trib, pro, est, fecha-defensa)
  donde {trib} referencia TRIBUNAL,
  {est} referencia ESTUDIANTE
  y {pro} referencia PROYECTO-FIN-CARRERA

•   Tercera opción:

DEFENSA(est, pro, trib, fecha-defensa)
  donde {trib} referencia TRIBUNAL,
  {est} referencia ESTUDIANTE
  y {pro} referencia PROYECTO-FIN-CARRERA

En los tres casos, es posible comprobar que la clave identifica completamente la relación si se tiene en cuenta la conectividad de la interrelación defensa.