Está en la página 1de 34

El modelo relacional

Transformación de las asociaciones uno a muchos (1:n)

Para la transformación de asociaciones Uno a Muchos (1:N) a


relaciones existen dos posibilidades:
 Propagar el Atributo Identificador Principal (AIP) de la entidad
que se encuentra en el lado 1 de la asociación al esquema de
relación resultante de la entidad en el lado N. Es decir, la
clave primaria de la relación en el lado 1 se incorpora como
clave externa en el esquema de la relación del lado N (vemos
a continuación ejemplo de este):
 Crear una nueva relación cuya clave primaria será sólo el
Atributo Identificador Principal (AIP) de la entidad en el lado
N. Esta opción suele utilizarse si la asociación tiene atributos o
si la propagación daría lugar a gran cantidad de valores NULOS
(NULL) para el campo que actúe como clave externa.
Transformación de las asociaciones uno a
muchos (1:n) - Ejercicio
Considere, por ejemplo, el diagrama Entidad/Relación con una
relación Uno a Muchos que presenta la siguiente figura:

Transformación de una asociación Uno a Muchos (1:N) al modelo relacional


utilizando propagación de la clave primaria del lado 1 al lado N (OpenUAX).

Ejercicio: Propagar el Atributo Identificador Principal (AIP) de la


entidad que se encuentra en el lado 1 de la asociación al esquema
de relación resultante de la entidad en el lado N. Es decir, la clave
primaria de la relación en el lado 1 se incorpora como clave externa
en el esquema de la relación del lado N.
Solución
Dado que cada ocurrencia de entidad de la entidad Libro sólo
puede asociarse con una ocurrencia de la entidad Editorial, es
posible incorporar el Atributo Identificador Principal de la
entidad Editorial (lado 1) al esquema de la relación que
representa la entidad Libro (lado N).

Transformación de una asociación Uno a Muchos (1:N) al modelo relacional


utilizando propagación de la clave primaria del lado 1 al lado N
Solución
Para relacionar Libro y Editorial, ya que 1 libro sólo es
editado por una editorial, ponemos el atributo IdEditorial
en Libro para que estén relacionadas Editorial y libro. No
podemos poner ISBN en Editorial para relacionar porque 1
IdEditorial puede tener varios libros y entonces IdEditorial
podría repetirse en Editorial (no pudiendo ocurrir por ser
clave principal):
IdEditorial Nombre Director ISBN
5 Planeta XXX 56
5 Planeta XXX 57

Transformación de una asociación Uno a Muchos (1:N) al modelo relacional


utilizando propagación de la clave primaria del lado 1 al lado N
Transformación de las asociaciones uno a
muchos (1:n)
En cuanto a la cardinalidad, habrá que tenerla en cuenta en la
transformación de la asociación Uno a Muchos (1:N) mediante
la propagación de la clave primaria del lado 1 como clave
externa de la relación del lado N de la siguiente forma:
 Si la cardinalidad mínima en el lado 1 es 1 indicando
obligatoriedad, la clave externa de la nueva relación no
podrá admitir valores nulos (NOT NULL). Ver a continuación:
Transformación de las asociaciones uno a
muchos (1:n)

Not null, todo libro


tiene 1 y sólo 1 editorial

Implicación de la cardinalidad mínima 1 (obligatoriedad) en el lado 1 de una asociación


Uno a Muchos (1:N) en su transformación al modelo relacional.
Transformación de las asociaciones uno
a muchos (1:n)
 En cambio si la cardinalidad mínima en el lado 1 es cero
indicando opcionalidad, el atributo clave primaria del lado 1
haciendo de clave externa en el lado N sí podrá tomar
valores nulos. Ver a continuación:

Puede ser null

Implicación de la cardinalidad mínima 0 (opcionalidad) en el lado 1 de una asociación


Uno a Muchos (1:N) en su transformación al modelo relacional (OpenUAX).
Transformación de las asociaciones uno
a muchos (1:n)
 Es muy importante tener en cuenta que si la cardinalidad
mínima de la asociación es 1 (obligatoriedad) en el lado N
se va a producir una situación de pérdida semántica. Esto
ocurre porque el diagrama Entidad/Relación refleja que
toda ocurrencia de entidad del lado 1 tiene que asociarse
obligatoriamente con una ocurrencia del lado N. El
diagrama relacional no tiene forma de reflejar esta
obligatoriedad ya que exigiría reflejar que todos y cada uno
de los elementos de la relación del lado 1 sean
referenciados desde los elementos del lado N. Ver a
continuación:
Transformación de las asociaciones uno
a muchos (1:n)

Una editorial tiene uno o varios libros


(1 ó más), cada tupla de editorial
(IdEditorial única) debería tener
asociada un libro. Habría que
comprobar que en Libro existieran
todas las IdEditorial:
No existe
EDITORIAL LIBRO
IdEditorial Nombre Director ISBN ISBN Título Autor IdEditorial
1 Planeta XXX 56 1 AAA DDD 1
2 Europa YYY 21 2 BBB EEE 2
3 Nórdica ZZZ 18 3 CCC FFF 1
Transformación de las asociaciones uno
a muchos (1:n)
 Finalmente, si la cardinalidad mínima de la asociación es 0
(opcionalidad) en el lado N, no se producirá tal situación de
pérdida semántica ya que el grafo relacional no indica que
sea obligatorio referencias a todos los elementos del la
relación del lado 1 desde la relación del lado N.
Transformación de las asociaciones uno a muchos (1:n)

Como dijimos antes, para la transformación de asociaciones Uno


a Muchos (1:N) a relaciones existen dos posibilidades:
 Ya visto: propagar el Atributo Identificador Principal (AIP) de
la entidad que se encuentra en el lado 1 de la asociación al
esquema de relación resultante de la entidad en el lado N. Es
decir, la clave primaria de la relación en el lado 1 se incorpora
como clave externa en el esquema de la relación del lado N
(ya vista)
 Crear una nueva relación cuya clave primaria será sólo el
Atributo Identificador Principal (AIP) de la entidad en el
lado N. Esta opción suele utilizarse si la asociación tiene
atributos o si la propagación daría lugar a gran cantidad de
valores NULOS (NULL) para el campo que actúe como clave
externa (vemos ejemplo de este):
Transformación de las asociaciones uno a
muchos (1:n) - Ejercicio
Ejercicio: En la siguiente figura crear una nueva relación para la
representación de la asociación Uno a Muchos (1:N), la nueva
relación tomará como clave primaria la clave de la entidad del
lado N. La relación que representa a una asociación Uno a
Muchos (1:N) tendrá como clave primaria la clave de la entidad
del lado N porque cada ocurrencia de esta entidad se relaciona
como máximo con una ocurrencia de entidad del lado 1 por lo
que una ocurrencia del lado N no puede aparecer más de una vez
en una ocurrencia de asociación.
Transformación de las asociaciones uno a
muchos (1:n) - Ejercicio

FecEdición NumEjemplares

Transformación de un diagrama Entidad/Relación con una asociación Uno a Muchos


(1:N) al modelo relacional utilizando una nueva relación para representar la asociación
(OpenUAX).
Solución
FecEdición NumEjemplares
Cada ISBN es único, no
hay dos libros con el
mismo ISBN en este
modelo. Además, un libro
(ISBN) sólo es editado por
una sola editorial, por lo
tanto en la asociación
Edición, cada ISBN será
distinto (y puede ser
clave principal) y será
asociado con una sóla
editorial.
Transformación de un diagrama Entidad/Relación con una asociación Uno a Muchos
(1:N) al modelo relacional utilizando una nueva relación para representar la asociación
(OpenUAX).
Transformación de las asociaciones uno a uno (1:1)

Para la transformación de las asociaciones Uno a Uno (1:1)


presentes en el modelo Entidad/Relación al modelo Relacional se
puede optar por dos soluciones:
 Crear una nueva relación, tal y como se ha explicado en el
apartado anterior para las relaciones Muchos a Muchos (M:N),
que incorpore como clave primaria los dos Atributos de
Identificación Principales de las entidades que participan en la
asociación. Además, cada una de estas claves primarias
actuará como clave externa desde la nueva relación hacia las
relaciones M:N):
Transformación de las asociaciones uno a uno (1:1)

OpenUAX
Transformación de las asociaciones uno a uno (1:1)
 Propagar el Atributo Identificador Principal desde una de las
entidades a la otra donde actuará como clave externa. Así, se
hará que la clave primaria de una de las relaciones se incluya
como clave externa en el esquema de relación de la otra, tal y
como se hace en el caso de asociaciones Uno a Muchos (1:N).
La elección de la entidad que propaga su clave primaria
depende de la cardinalidad mínima. Si las dos cardinalidades
mínimas tienen el valor 1 a ambos lados de la asociación Uno a
Uno (1:1) será indiferente que la clave primaria se pase de
una relación a otra como clave externa. Si uno de los dos lados
tiene cardinalidad mínima cero (opcionalidad) será la clave de
la otra entidad la que se propague.
Transformación de las asociaciones uno a uno (1:1)

La siguiente figura presenta una asociación Uno a Uno entre dos


entidades con cardinalidades mínimas con valor uno
(obligatoriedad) y su correspondiente transformación a grafo
relacional:

Transformación al modelo Relacional de un modelo Entidad/Relación con una asociación Uno


a Uno (1:1) con cardinalidad mínima 1 en ambos extremos de la asociación (OpenUAX).
Transformación de las asociaciones uno a uno (1:1)
La clave primaria incorporada como clave externa en el esquema
de relación correspondiente será una clave candidata ya que, por
la naturaleza de la asociación Uno a Uno (1:1), solo podrá figurar
asociada una única vez con un elemento de la otra asociación (un
gerente dirige un departamento y un departamento es dirigido
por un gerente) y, por tanto, su valor no puede repetirse en la
relación donde se incorpora:

Transformación al modelo Relacional de un modelo Entidad/Relación con una asociación Uno


a Uno (1:1) con cardinalidad mínima 1 en ambos extremos de la asociación (OpenUAX).
Transformación de las asociaciones uno a uno (1:1)
Es importante indicar que si las cardinalidades mínimas son
ambas obligatorias (valor 1) se producirá una pérdida semántica
ya que, de nuevo, el diagrama Entidad/Relación refleja una
situación que el diagrama relacional no puede expresar. Por
ejemplo, en el grafo relacional anterior no se puede reflejar que
todos los elementos de la relación Departamento deben ser
referenciados desde la relación Gerente. Es decir, que todos los
valores de la clave primaria de la relación Departamento deben
aparecer en el atributo del mismo nombre que hace de clave
externa en la relación Gerente:
GERENTE DEPARTAMENTO
IdEmpleado Nombre Apellidos Departamento IdDepartamento Nombre
1 AAA CCC 1 1 Ventas
2 BBB CCC 2 2 RRHH
?
3 CCC CCC 2 3 Logística
No se referencian todos los IdDepartamento desde Gerente
Transformación de las asociaciones uno a uno (1:1)
Sin embargo, si la cardinalidad mínima es cero en uno de los dos
extremos de la asociación Uno a Uno (1:1), tal y como se refleja,
por ejemplo, en la relación de la siguiente figura no se produce
pérdida semántica:

Transformación al modelo Relacional de un modelo Entidad/Relación con una asociación Uno a


Uno (1:1) con cardinalidad mínima 0 en uno de los extremos de la asociación (OpenUAX).
Transformación de las asociaciones uno a uno (1:1)
En el caso de que una de las cardinalidades mínima sea cero
(opcionalidad) se hace que la relación correspondiente a esta
cardinalidad incluya como clave externa la clave primaria de la
otra relación. De esta forma no se produce pérdida semántica ya
que el correspondiente grafo relacional refleja la cardinalidad
mínima 1 (obligatoriedad) entre las dos relaciones y también el
hecho de pueda haber tuplas de la relación con cardinalidad 0 que
no sean referenciadas desde la otra relación:
GERENTE DEPARTAMENTO
IdEmpleado Nombre Apellidos Departamento IdDepartamento Nombre
1 AAA CCC 1 1 Ventas
2 BBB CCC 2 2 RRHH
3 CCC CCC 2 3 Logística

No se referencian todos los IdDepartamento desde Gerente porque un departamento


puede tener 1 ó ningún gerente. Aquí el Departamento 3 no tiene ningún gerente
(IdEmpleado)
Transformación de asociaciones reflexivas
En una asociación reflexiva de tipo Uno a Uno (1:1), el Atributo
Identificador Principal de la entidad aparece en la relación como
su clave primaria y también con otro nombre para indicar la otra
ocurrencia de entidad con quien se realiza la asociación.
La siguiente figura muestra un ejemplo de transformación de
relación reflexiva Uno a Uno (1:1):

Transformación al modelo Relacional de una relación reflexiva 1:1


Transformación de asociaciones reflexivas
La clave primaria (IdAlumno) se almacena en la misma tabla como
un nuevo atributo (Compañero). La tabla Alumno vuelve a guardar
su clave primaria como atributo haciendo referencia al id del
alumno que es compañero.
Como la participación es de (1,1), el atributo Compañero es clave
alternativa en Alumno.

Transformación al modelo Relacional de una relación reflexiva 1:1


Transformación de asociaciones reflexivas
Por otro lado, en una asociación reflexiva de tipo Muchos a Muchos
(M:N) se crea una nueva relación de igual forma que se hace en las
asociaciones binarias. La siguiente figura muestra un ejemplo de
esta situación:
La clave principal de
COMPAÑEROS es la
combinación IDAlumno,
IDCompañero ya que un
alumno puede tener
muchos compañeros y un
compañero ser
compañero de muchos
alumnos. Por lo tanto,
hace falta la
combinación de ambas
Transformación al modelo Relacional de una relación reflexiva para identificar una
Muchos a Muchos (M:N).
tupla en COMPAÑEROS
Transformación de asociaciones de grado mayor que dos

La transformación de relaciones ternarias o que involucren a más


entidades se realizan normalmente mediante una relación para
cada tipo de ocurrencia y una relación para representar la
asociación con sus posibles atributos.
La siguiente figura muestra una transformación de asociación
ternaria al modelo Relacional:
Transformación de asociaciones de grado mayor que dos

La clave primaria de la nueva tabla estará formada por las tres


claves de las entidades que participan en la relación ya que la
relación es de muchos: muchos: muchos.

Transformación de una asociación ternaria al modelo Relacional


Transformación de jerarquías
La transformación de asociaciones jerárquicas del modelo
Entidad/Relacion al modelo Relacional puede realizarse siguiendo
distintas estrategias:
 Englobar todos los atributos del supertipo y los subtipos en una
sola relación y añadir como atributo el atributo discriminante.
Su principal ventaja es la eficiencia pero, como contrapartida,
se generarán gran cantidad de valores nulos en las distintas
tuplas. Esto ocurre cuando en mayor medida cuando se trata de
jerarquías exclusivas donde cada elemento pertenece
únicamente a uno de los subtipos.
Transformación de jerarquías
 Se pueden crear relaciones distintas para el supertipo y para los
subtipos con sus correspondientes atributos. La principal
ventaja de este enfoque es que en él queda reflejada fielmente
la semántica de la jerarquía.
 Finalmente, se puede crear una relación distinta para cada
subtipo que incluya, además, los atributos del supertipo. Este
enfoque puede resultar interesante si hay muchos atributos
distintos en los subtipos.
Transformación de jerarquías

Posibilidades de transformación al modelo Relacional de una


relación de jerarquía (OpenUAX).
Transformación de jerarquías

Englobar todos los atributos del supertipo y los subtipos


en una sola relación y añadir como atributo el atributo
discriminante. Su principal ventaja es la eficiencia pero,
como contrapartida, se generarán gran cantidad de
valores nulos en las distintas tuplas. Esto ocurre cuando
en mayor medida cuando se trata de jerarquías
exclusivas donde cada elemento pertenece únicamente a
uno de los subtipos.

Posibilidades de transformación al modelo Relacional de una


relación de jerarquía (OpenUAX).
Transformación de jerarquías

Se pueden crear relaciones distintas para el


supertipo y para los subtipos con sus
correspondientes atributos. La principal ventaja
de este enfoque es que en él queda reflejada
fielmente la semántica de la jerarquía.

Posibilidades de transformación al modelo Relacional de una


relación de jerarquía (OpenUAX).
Transformación de jerarquías

Se puede crear una relación distinta para cada


subtipo que incluya, además, los atributos del
supertipo. Este enfoque puede resultar
interesante si hay muchos atributos distintos en
los subtipos.

Posibilidades de transformación al modelo Relacional de una


relación de jerarquía (OpenUAX).

También podría gustarte