Transformación modelo entidad-relación a modelo relacional

Transformación modelo entidad-relación a modelo relacional

 

He preparado una tabla para hacer más fácil la transformación de un diagrama entidad-relación a un modelo relacional. Según la relación y la cardinalidad entre las entidades de nuestro diagrama, estas pueden transformarse a tablas o no.

Transformación modelo entidad-relación a modelo relacional

Os dejo un archivo PDF con la tabla de transformaciones y paso a explicarosla:

Transformación modelo entidad-relación a modelo relacional

 

LEYENDA

Para el esquema relacional de los siguientes casos hay que tener en cuenta:

Negrita: Clave

Negrita y subrayado: clave primaria

(fk): Foreign Key (Clave foránea)

 

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.

Transformación modelo entidad-relación a modelo relacional - CasoNM

 

 

ESQUEMA RELACIONAL

Entidad 1 (Id1, atributo1)
Entidad 2 (Id2, atributo2)
Relación (Id1(fk), Id2(fk), atributoRelació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).

Transformación modelo entidad-relación a modelo relacional - caso1N

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).

Transformación modelo entidad-relación a modelo relacional - caso 01

ESQUEMA RELACIONAL

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

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

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

 

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.

Transformación modelo entidad-relación a modelo relacional - caso 11-11

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).

Transformación modelo entidad-relación a modelo relacional - caso 01-11

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.

Transformación modelo entidad-relación a modelo relacional - caso 01-01

ESQUEMA RELACIONAL

Entidad1 (IdEntidad1, AtributosEntidad1)

Entidad2 (IdEntidad2, AtributosEntidad2)

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

 

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.

Transformación modelo entidad-relación a modelo relacional - reflexiva 11

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.

Transformación modelo entidad-relación a modelo relacional - reflexiva 0N

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.

 

Transformación modelo entidad-relación a modelo relacional - reflexiva NM

ESQUEMA RELACIONAL

Entidad1 (IdEntidad1, Atributos1)

Rol (IdRol, AtributosRol)

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

Igual que las relaciones N:M Binarias

 

 

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))

 

 

 

GENERALIZACIÓN


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, por tanto 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)

 

Libros recomendados

Aprende SQL en un fin de semana

Aprende SQL en un fin de semana

Modelos de Bases de Datos

Modelos de Bases de Datos

The Coder Habits: Los 39 hábitos del programador profesional

The Coder Habits

 

Otros artículos

Instalación de MySQL 5.7

Antivirus ESET Nod32 100% Recomendado

Transformación modelo entidad-relación a modelo relacional – Javier Jiménez

 

Mantente conectado

Ir al contenido