Pasar de Modelo Entidad-Relación a Modelo Relacional

Este recurso está diseñado para pasar de Modelo Entidad-Relación a Modelo Relacional, explicando cada una de las relaciones.

Cada pestaña explica la transformación de cada relación:

Negrita: Key

Negrita y subrayado: primary key

(fk): Foreign Key

ESQUEMA RELACIONAL

DIAGRAMA REFERENCIAL

Entidad1 (Id1, Atributos1)
Entidad2 (Id2, Atributos2)
Relación (Id1(fk), Id2(fk), Atributos_relación)

Id1
Relación --------------------> Entidad1
Id2
Relación --------------------> Entidad2

RELACIÓN N:M


Cuando la cardinalidad de la relación entre dos entidades es varios a varios (N:M), la relación siempre se transforma en tabla, adoptando como clave primaria y a la vez foránea, las claves primarias de las dos entidades, y teniendo como atributos los propios de la relación.

Relación N:M

ESQUEMA RELACIONAL

Entidad 1 (Id1, atributo1)
Entidad 2 (Id2, atributo2)
Relación (Id1(fk), Id2(fk), atributoRelación)

CASOS

ESQUEMA RELACIONAL

DIAGRAMA REFERENCIAL

(1,1)

Entidad(1,1) (IdEntidad(1,1), Atributos_Entidad(1,1))

Entidad(N) (IdEntidad(N), Atributos_Entidad(N), IdEntidad(1,1)(fk))

IdEntidad(1,1)
Entidad(N) -----------------> Entidad(1,1)
(0,1)

Entidad(1) (IdEntidad(1), AtributosEntidad(1))

Entidad(N) (IdEntidad(N), AtributosEntidad(N))

Relación (IdEntidad(N)(fk), AtributosRelación, IdEntidad(1)(fk))

IdEntidad(1)
Relación -----------------> Entidad(1)IdEntidad(N)
Relación -----------------> Entidad(N)

RELACIÓN 1:N


Relación uno a varios (1:N). Para estas relaciones tenemos dos casos distintos:

Caso 1:1

Se aplica cuando la entidad con cardinalidad máxima 1 es obligatoria, es decir (1,1).

Relación 1:N

ESQUEMA RELACIONAL

Entidad(1,1) (IdEntidad(1,1), Atributos_Entidad(1,1))

Entidad(N) (IdEntidad(N), Atributos_Entidad(N), IdEntidad(1,1)(fk))

 

Caso 0:1

Este caso se aplica cuando la entidad con cardinalidad máxima 1 no es obligatoria, es decir (0,1).

Relación 1:N caso (0,1)

ESQUEMA RELACIONAL

Entidad(1) (IdEntidad(1), AtributosEntidad(1))

Entidad(N) (IdEntidad(N), AtributosEntidad(N))

Relación (IdEntidad(N)(fk), AtributosRelación, IdEntidad(1)(fk))

CASOS

ESQUEMA RELACIONAL

DIAGRAMA REFERENCIAL

(1,1) (1,1) Entidad1yEntidad2 (Id1, Atributos1, Atributos2, Id2(fk))
Se puede elegir cúal clave será primaria y cuál foránea
 
(1,1) (0,1)

Entidad(1,1) (IdEntidad(1,1), AtributosEntidad(1,1))

Entidad(0,1) (IdEntidad(0,1), AtributosEntidad(0,1), IdEntidad(1,1)(fk))

IdEntidad(1,1)
Entidad(0,1) –-------------> Entidad(1,1)
(0,1) (0,1)

Entidad1 (IdEntidad1, AtributosEntidad1)

Entidad2 (IdEntidad2, AtributosEntidad2)

Relación (IdEntidad1(fk), IdEntidad2(fk), AtributosRelación)

IdEntidad1
Relación --------------> Entidad1

IdEntidad2
Relación -------------> Entidad2

RELACIÓN 1:1


Para las relaciones 1:1 podemos encontrarnos con tres casos distintos:

Caso (1,1)(1,1)

Se unen ambas entidades en una tabla y se escoge como clave primaria una cualquiera de las dos.

Relación 1:1 Caso (1,1)(1,1)

ESQUEMA RELACIONAL

Entidad1yEntidad2 (Id1, Atributos1, Atributos2, Id2(fk))

Se puede elegir cúal clave será primaria y cuál foránea

 

Caso (1,1)(0,1)

La clave primaria de la entidad con cardinalidad (1,1) se propaga como clave foránea de la entidad con cardinalidad (0,1).

Relación 1:1 Caso (0,1)(1,1)

ESQUEMA RELACIONAL

Entidad(1,1) (IdEntidad(1,1), AtributosEntidad(1,1))

Entidad(0,1) (IdEntidad(0,1), AtributosEntidad(0,1), IdEntidad(1,1)(fk))

 

Caso (0,1)(0,1)

La relación se convierte en tabla y su clave primaria estará compuesta por las claves primarias de ambas entidades, que a la vez serán claves foráneas.

Relación 1:1 Caso (0,1)(0,1)

ESQUEMA RELACIONAL

Entidad1 (IdEntidad1, AtributosEntidad1)

Entidad2 (IdEntidad2, AtributosEntidad2)

Relación (IdEntidad1(fk), IdEntidad2(fk), AtributosRelación)

CASOS

ESQUEMA RELACIONAL

DIAGRAMA REFERENCIAL

(1,1) Entidad1 (IdEntidad1, AtributosEntidad1, IdRol(fk)) IdRol
Entidad1 ------------> Entidad1
(1,N) o (0,N) (1,N)
Entidad1 (IdEntidad1, AtributosEntidad1, IdRol(fk))
Igual que el caso anterior(0,N)
Entidad1 (IdEntidad1, Atributos1)
Rol (IdEntidad1, IdRol(fk))
(1,N)
IdRol
Entidad1 ------------> Entidad1(0,N)
IdEntidad1
Rol ------------------------> Entidad1
IdRol Rol ------------------------> Entidad1
(N,M)

Entidad1 (IdEntidad1, Atributos1)

Rol (IdRol, AtributosRol)

Relación (IdEntidad1(fk), IdRol(fk), AtributosRelación)
Igual que las relaciones N:M Binarias

IdEntidad1
Relación -----------------> Entidad1IdRol
Relación ---------------------> Rol

RELACIÓN REFLEXIVA


Pueden darse los siguientes casos:

Caso (1:1)

En la tabla resultante se agregará 2 veces el mismo atributo, como clave primaria y como clave foránea a ella misma.

Relación Reflexiva 1:1

ESQUEMA RELACIONAL

Entidad1 (IdEntidad1, AtributosEntidad1, IdRol(fk))

 

Caso (1:N)

Para este tipo hay dos casos:

– 1:N. Si tiene cardinalidad (1,N) se procede igual que en las relaciones 1:1

ESQUEMA RELACIONAL

Entidad1 (IdEntidad1, AtributosEntidad1, IdRol(fk))

Igual que el caso anterior

 – 0:N. Si tiene cardinalidad (0,N) se crea una nueva tabla cuya clave será la de la entidad del lado de varios y, además, se propaga la clave a la nueva tabla como clave foránea.

Relación Reflexiva 0:N

ESQUEMA RELACIONAL

Entidad1 (IdEntidad1, Atributos1)

Rol (IdEntidad1, IdRol(fk))

 

Caso (N:M)

Se procede igual que las relaciones N:M. La relación se convierte en tabla y su clave primaria estará compuesta por la clave primaria de ambos roles. Estas a la vez serán clave primaria y foráneas.

Relación Reflexiva N:M

ESQUEMA RELACIONAL

Entidad1 (IdEntidad1, Atributos1)

Rol (IdRol, AtributosRol)

Relación (IdEntidad1(fk), IdRol(fk), AtributosRelación)

Igual que las relaciones N:M Binarias

CASOS

ESQUEMA RELACIONAL

DIAGRAMA REFERENCIAL

N: N : N Relación (Id1(fk), Id2(fk), Id3(fk)) Id1
Relación ---------- > Entidad1

Id2
Relación ---------- > Entidad2

Id3
Relación ---------- > Entidad3

1 : N : N Relación (Id1(fk), Id2(fk), Id3(fk))
1 : 1 : N Relación (Id1(fk), Id2(fk), Id3(fk))

RELACIÓN TERNARIA


La relación se convierte en tabla, conteniendo sus atributos más las claves primarias de todas las entidades que asocia como claves ajenas.
La clave primaria de la tabla resultante se compondrá de las claves de las entidades, teniendo en cuenta los siguientes casos:

Relación N:N:N 

Clave primaria de la relación compuesta por las claves de las entidades que a la vez serán foráneas.

ESQUEMA RELACIONAL

Relación (Id1(fk), Id2(fk), Id3(fk))

 

Relación 1:N:N

Igual que la anterior, pero la clave de la entidad con cardinalidad máxima 1 sólo será foránea, pero no primaria.

ESQUEMA RELACIONAL

Relación (Id1(fk), Id2(fk), Id3(fk))

 

Relación 1:1:N

Las claves primarias de las entidades serán foráneas de la relación, y la clave de la entidad con cardinalidad máxima N será a la vez primaria de la relación.

ESQUEMA RELACIONAL

Relación (Id1(fk), Id2(fk), Id3(fk))

CASOS

ESQUEMA RELACIONAL

Caso 1

Todas las subentidades dentro de la tabla de superentidad

Superentidad ( IdSuperentidad, AtributosEntidad, AtributosSub1, AtributosSub2)

Caso 2

Eliminación de la superentidad en jerarquías totales y exclusivas

Sub1 (IdSuperentidad, AtributosSuperentidad, AtributosSub1)

Sub2 (IdSuperentidad, AtributosSuperentidad, AtributosSub2)

Relación_Sub1 (Depende de la cardinalidad de la relación)

Relación_Sub2 (Depende de la cardinalidad de la relación)

Caso 3

Insertar relación 1:1 entre la superentidad y las subentidades

Superentidad (IdSuperentidad, AtributosSuperentidad)

Sub1 (IdSuperentidad, AtributosSub1)

Sub2 (IdSuperentidad, AtributosSub2)

Relación (Depende de la cardinalidad de la relación entre Supertipo y la otra entidad)

GENERALIZACIÓN


Generalizacion

Para este tipo de relaciones tenemos 3 opciones:

Opción 1

Integrar todas las entidades en una única tabla absorbiendo los subtipos. Se crea una tabla que contiene todos los atributos de la superentidad, todos los de las subentidades y el atributo discriminatorio para distinguir a qué subentidad pertenece cada registro de la tabla. Esta regla puede aplicarse a cualquier tipo de jerarquía.

ESQUEMA RELACIONAL

Todas las subentidades dentro de la tabla de superentidad

Superentidad ( IdSuperentidad, AtributosEntidad, AtributosSub1, AtributosSub2)

 

Opción 2

Eliminación de la superentidad en jerarquías totales y exclusivas. transfiriendo los atributos de la superentidad a cada subentidad, creándose una tabla por cada subentidad, la superentidad no tendrá tabla y se elimina el atributo que distingue entre subentidades.

ESQUEMA RELACIONAL

Eliminación de la superentidad en jerarquías totales y exclusivas

Sub1 (IdSuperentidad, AtributosSuperentidad, AtributosSub1)

Sub2 (IdSuperentidad, AtributosSuperentidad, AtributosSub2)

Relación_Sub1 (Depende de la cardinalidad de la relación)

Relación_Sub2 (Depende de la cardinalidad de la relación)

 

Opción 3

Insertar una relación 1:1 entre la superentidad y las subentidades. Los atributos se mantienen y cada subentidad se identificará con una clave ajena referenciando a la clave primaria de la superentidad. La superentidad mantendrá una relación 1:1 con cada subentidad.

ESQUEMA RELACIONAL

Insertar relación 1:1 entre la superentidad y las subentidades

Superentidad (IdSuperentidad, AtributosSuperentidad)

Sub1 (IdSuperentidad, AtributosSub1)

Sub2 (IdSuperentidad, AtributosSub2)

Relación (Depende de la cardinalidad de la relación entre Supertipo y la otra entidad)

Espero que este recurso os sirva para entender y acelerar el proceso de Diseño y Desarrollo de una buena Base de Datos, un saludo!!

 

Libro recomendado:

Aprende SQL en un fin de semana

Aprende SQL en un fin de semana

 


Pasar de Modelo Entidad-Relación a Modelo Relacional – JavierJG
Blog Entidad Relación
Link your Data!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *