La forma en que se transformará una relación del diagrama E/R al modelo Relacional dependerá
de su cardinalidad:
- Cardinalidad N:M.- Una relación con cardinalidad N:M siempre se
transformará en una tabla nueva que tendrá como clave primaria compuesta la
concatenación de las claves primarias de las entidades que relaciona, cada una de las
cuales, además de ser parte de la clave primaria de la nueva tabla, será clave ajena que
referenciará a la tabla de procedencia (a la tabla donde este atributo es clave
primaria).
Si la relación contiene atributos, éstos pasarán a formar parte
de la nueva tabla. En este caso es importante que comprobemos que la clave primaria
compuesta de la nueva tabla es suficiente, siendo habitual que deba completarse con algún
atributo procedente de la relación, especialmente si es de tipo fecha.
- Cardinalidad 1:N o N:1.- Para transformar una relación de uno a muchos o de
muchos a uno hay dos soluciones:
A) Propagar la
clave primaria de la entidad con cardinalidad 1 a la tabla resultante de
transformar la entidad con cardinalidad N donde será una clave ajena que referenciará a la
tabla donde es clave primaria.
B) Transformar la
relación en una nueva tabla, como si se tratara de una relación N:M.
Para decidir sobre una u otra solución nos fijaremos en la
cardinalidad de la entidad que tiene cardinalidad máxima 1:
Si esa cardinalidad es (1,1) optaremos por propagar la clave desde la
entidad con cardinalidad máxima 1 a la entidad con cardinalidad máxima N, donde será clave
ajena. Los posibles atributos de la relación se pasarán a la entidad con tipo N.
Si esa cardinalidad es (0,1) optaremos por crear una nueva tabla que
tendrá como clave primaria la clave primaria de la entidad con cardinalidad N, y como clave
ajena la clave primaria de la entidad con cardinalidad 1. La nueva tabla acogerá los
posibles atributos de la relación.
Nótese que si en este caso optásemos por propagar la clave nos encontraríamos con que todos
los inmuebles no vendidos tendrían nulo el valor del DNI.
Resumen del paso al modelo relacional de la relación UNO a MUCHOS
Cardinalidades de entidad
|
¿Cómo pasamos al modelo relacional?
|
(1,n) y (0,1)
|
CREAR nueva tabla con las claves primarias de ambas
entidades y los propios atributos de la relación. La clave primaria de esta
nueva tabla será la que corresponde a la entidad de cardinalidad N. Las
claves ajenas serán los atributos que hemos propagado de ambas entidades y
referenciarán a ellas respectivamente.
|
(1,n) y (1,1)
|
PROPAGAR la clave primaria desde la entidad con cardinalidad
máxima 1 hacia la entidad con cardinalidad máxima N siendo además clave
ajena que referenciará a su tabla de procedencia. Los atributos de la
relación también se propagarán a la entidad con cardinalidad N.
|
Después de observar los dos posibles casos, en la mayoría de los
casos cuando nos encontramos con una relación UNO a MUCHOS en los que se podría emplear la
creación de una nueva tabla, también se utiliza la PROPAGACIÓN de clave de la entidad con
cardinalidad máxima 1 hacia la entidad con cardinalidad máxima N. La ventaja de crear una
nueva tabla tan sólo es para evitar el almacenamiento de valores NULL.
- Cardinalidad 1:1.- La transformación de relaciones con cardinalidad de uno a uno
presenta dos posibilidades:
A).- Crear una nueva tabla.
B).- Propagar la clave primaria de una de las
entidades, como clave ajena, a la tabla resultante de la otra entidad.
Para elegir una u otra opción debemos prestar atención a las
cardinalidades de las dos entidades relacionadas:
La opción A será recomendable si las cardinalidades de las
entidades son (0,1) y (0,1). En este caso crearemos una nueva tabla, con el mismo
tratamiento visto para el caso de M:N, pues en ambas entidades habrá ocurrencias no
relacionadas con las de la otra entidad.
La opción B se elegirá si al menos una cardinalidad de entidad es
(1,1). Podemos tener dos casos:
-
- Si las cardinalidades de las entidades son (0,1) y (1,1) entonces la propagación
se hará desde la entidad con cardinalidad (1,1) hacia la que tiene cardinalidad
(0,1).
- Si las cardinalidades de las entidades son (1,1) y (1,1) entonces podemos elegir
propagar la clave primaria de una de las tablas hacia la otra o viceversa.
Supongamos el siguiente esquema E/R:
Un análisis detallado de las
cardinalidades de las entidades indica que todo grupo tiene un profesor tutor, pero no
todo profesor es tutor de un grupo. Lo correcto será exportar la clave primaria de
PROFESOR a GRUPO, donde será clave ajena, evitando con ello los valores nulos que se
producirían en caso contrario.
Resumen del paso al modelo relacional de la relación UNO a UNO
Cardinalidades de entidad
|
¿Cómo pasamos al modelo
relacional? |
(0,1) y (0,1)
|
CREAR nueva tabla poniendo como clave primaria una de las
claves primarias de alguna de las entidades que relaciona.
|
(1,1) y (1,1)
|
PROPAGAR la clave primaria desde una entidad cualquiera
hacia la otra convirtiéndose en clave ajena.
|
(0,1) y (1,1)
|
PROPAGAR la clave primaria desde la entidad con cardinalidad
(1,1) hacia la entidad con cardinalidad (0,1). Siendo allí clave ajena.
|
Si una cardinalidad de entidad es (1,1) siempre vamos a propagar
la clave y no crearemos ninguna tabla nueva. Tendremos que fijarnos en la cardinalidad de la
otra entidad para saber si podemos propagar la clave de la entidad que que decidamos
nosotros como diseñadores o bien debemos propagar la clave de una de ellas hacia la otra.
- Relaciones no binarias, con grado distinto a 2.
Las relaciones de grado
1 o reflexivas se transforman siguiendo las pautas indicadas anteriormente, con
la salvedad de que en vez de dos entidades distintas se trata de la misma entidad.
Las relaciones de grado
3 o superior es recomendable descomponerlas en
varias de grado 2, pero no siempre es posible sin que se pierda semántica asociada a la
situación real. En este caso suelen transformarse creando una nueva tabla que
contendrá como claves ajenas las tres claves primarias de las entidades que relaciona. La
elección de la clave primaria dependerá de la cardinalidad:
Cómo elegir la clave primaria en las relaciones ternarias
Cardinalidad de la relación
|
Clave primaria de la nueva tabla
|
M:N:P
|
Compuesta por las distintas claves primarias de las entidades relacionadas.
|
M:N:1
|
Compuesta por las dos claves primarias de las entidades etiquetadas con
cardinalidad M y N.
|
N:1:1
|
Compuesta por la clave primaria de la entidad etiquetada con cardinalidad N y
cualquiera de las claves primarias de las entidades etiquetadas con
cardinalidad 1.
|
1:1:1
|
Compuesta por las claves primarias de dos
entidades cualesquiera.
|
- Relaciones con restricciones de exclusividad, inclusividad, exclusión e
inclusión.
Al transformar el diagrama E/R al modelo Relacional no se tienen
en cuenta las posibles restricciones de las relaciones. La implementación de esas
restricciones se realizará con disparadores que se estudiarán más adelante.
...