Modelo relacional

Transformación del Modelo Entidad Relación al Modelo Relacional.

Tabla de contenidos

Entidades

Cada ENTIDAD del Modelo Entidad Relación se convertirá en una TABLA en el Modelo Relacional, de esta manera:

ENTIDAD (Identificador, Atributo_1, Atributo_2, …, Atributo_N)
C.P: Identificador
V.N.N: Atributo_1    
Tabla resultado de la transformación de una entidad

Significados:

  • C.P: Clave Primaria o Clave Principal (se identificarán tantos atributos como se hayan descrito como identificadores de la Entidad)
  • V.N.N: Valor No Nulo (se identificarán tantos atributos como se hayan declarado como No Nulos)

Relaciones

1:N

En el caso de las relaciones 1:N las ENTIDADES se convertirán en TABLAS y la entidad sobre la que recaiga la N añadirá tantos atributos como identificadores tenga la otra tabla (Clave/s Ajena/s) para recoger la información de la misma, de esta manera:

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N)
C.P: Identificador
V.N.N: Atributo_1, Atributo_2

ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N, Identificador_Entidad_1)
C.P: Identificador
C.Aj: Identificador_Entidad_1 -> ENTIDAD_1 V.N.N: Atributo_1, Atributo_N      

Significados:

  • C.Aj: Clave Ajena (atributo o atributos añadidos, tantos atributos como atributos identificadores – clave primaria – tenga la otra tabla con la que se relaciona y de dónde saldrá la información).

Consiguiendo que la información esté relacionada de esta manera:

ENTIDAD_1
IdentificadorAtributo_1Atributo_2
1InformaciónInformación
2InformaciónInformación
ENTIDAD_2
IdentificadorIdentificador_Entidad_1Atributo_1Atributo_N
11InformaciónInformación
21InformaciónInformación
3 InformaciónInformación
4 InformaciónInformación
51InformaciónInformación
6 InformaciónInformación

La clave ajena indica de dónde sale la información. El ejemplo indica que una ocurrencia de la ENTIDAD_1 se puede relacionar con 0 o N de la ENTIDAD_2. Es por ello que para ilustrar el ejemplo el Identificador ‘2’ no se utiliza en el atributo Identificador_Entidad_1, se han dejado en blanco algunos Identificador_Entidad_1 y el Identificador ‘1’ aparece muchas veces (N) en Identificador_Entidad_1 – reflejando que una ocurrencia de ENTIDAD_1 se puede relacionar con muchas de ENTIDAD_2.

Veamos el mismo ejemplo pero con la relación al revés:

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N, Identificador_Entidad_2)
C.P: Identificador C.Aj: Identificador_Entidad_2 à ENTIDAD_2 V.N.N: Atributo_1, Atributo_2 ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_N      

En este caso la Clave Ajena se tendría que añadir en la ENTIDAD_1.

Ahora veamos qué pasa cuando alguna de las entidades es débil;es decir, tiene alguna Restricción de Existencia (RE):

En este caso estamos indicando que las ocurrencias de la ENTIDAD_2 se relacionan obligatoriamente con 1 (por la RE) ocurrencia de la ENTIDAD_1. Esto lo podemos reflejar en tabla obligando a que la Clave Ajena sea obligatoriamente introducida. Esto lo podemos hacer haciendo que la misma sea Valor NO Nulo.

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N)
C.P: Identificador
V.N.N: Atributo_1, Atributo_2
ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N, Identificador_Entidad_1) C.P: Identificador C.Aj: Identificador_Entidad_1 à ENTIDAD_1 V.N.N: Atributo_1, Atributo_N, Identificador_Entidad_1      

Haciendo la Clave Ajena valor NO nulo estamos obligando a que sea introducida la información, por lo que los ejemplos anteriores podrían quedar así:

ENTIDAD_1
IdentificadorAtributo_1Atributo_2
1InformaciónInformación
2InformaciónInformación
ENTIDAD_2
IdentificadorIdentificador_Entidad_1Atributo_1Atributo_N
11InformaciónInformación
21InformaciónInformación
31InformaciónInformación
41InformaciónInformación
51InformaciónInformación
61InformaciónInformación

El ejemplo indica que una ocurrencia de la ENTIDAD_1 se puede relacionar con 0 (como mínimo) o N (como máximo) de la ENTIDAD_2 y que cada ocurrencia de la ENTIDAD_2 se ha de relacionar con 1 (como mínimo) o 1 (como máximo);es decir, que se ha de relacionar sí o sí con una ocurrencia de la ENTIDAD_1. Es por ello que para ilustrar el ejemplo el Identificador ‘2’ de la ENTIDAD_1 no se utiliza en el atributo Identificador_Entidad_1. NO se ha dejado en blanco ningún Identificador_Entidad_1 porque es un Valor NO Nulo y el Identificador ‘1’ aparece muchas veces (N) en Identificador_Entidad_1 – reflejando que una ocurrencia de ENTIDAD_1 se puede relacionar con muchas de ENTIDAD_2.

¿Qué sucede cuando la RE está en el otro lado? Pues sucede que es un caso que NO podemos reflejar, dado que no se puede obligar de ninguna manera a introducir la información, por lo que tendríamos que reflejar una Pérdida Expresiva (PE). Veamos el caso:

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N)
C.P: Identificador
V.N.N: Atributo_1, Atributo_2
ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N, Identificador_Entidad_1) C.P: Identificador C.Aj: Identificador_Entidad_1 à ENTIDAD_1 P.E: No se puede reflejar que ENTIDAD_1 se relacione obligatoriamente con ENTIDAD_2 V.N.N: Atributo_1, Atributo_N      

N:M

En el caso de las relaciones N:M las ENTIDADES se convertirán en TABLAS y la relación también (entidad-relación), siendo la clave primaria de la entidad-relación la combinación de las claves primarias de las entidades involucradas, de esta manera:

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N)
C.P: Identificador V.N.N: Atributo_1, Atributo_2
ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_N RELACIONAR (Identificador_Entidad_1, Identificador_Entidad_2) C.P: Identificador_Entidad_1, Identificador_Entidad_2 C.Aj: Identificador_Entidad_1 à ENTIDAD_1 C.Aj: Identificador_Entidad_2 à ENTIDAD_2        

Consiguiendo que la información esté relacionada de esta manera:

ENTIDAD_1
IdentificadorAtributo_1Atributo_2
1InformaciónInformación
2InformaciónInformación
ENTIDAD_2
IdentificadorAtributo_1Atributo_N
1InformaciónInformación
2InformaciónInformación
RELACIONAR 
Identificador_Entidad_1Identificador_Entidad_2
12
11
21
22

Al ser Clave Primaria en conjunto lo que no se puede repetir es el conjunto de atributos. De esta manera se puede conseguir que una ocurrencia de la ENTIDAD_1 se pueda relacionar con varias ocurrencias de la ENTIDAD_2 y a la inversa.

Ahora veamos qué pasa cuando alguna de las entidades es débil;es decir, tiene alguna Restricción de Existencia (RE). ¿Qué sucede cuando hay RE en alguna de las entidades relacionadas? Pues sucede que es un caso que NO podemos reflejar, dado que no se puede obligar de ninguna manera a introducir la información, por lo que tendríamos que reflejar una Pérdida Expresiva (PE). Veamos el caso:

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_2 P.E: No se puede reflejar que ENTIDAD_1 se relacione obligatoriamente con ENTIDAD_2 ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_N RELACIONAR (Identificador_Entidad_1, Identificador_Entidad_2) C.P: Identificador_Entidad_1, Identificador_Entidad_2 C.Aj: Identificador_Entidad_1 à ENTIDAD_1 C.Aj: Identificador_Entidad_2 à ENTIDAD_2     

En el caso de que la RE estuviera en la ENTIDAD_2 habría que reflejar la PE en esta entidad o en las dos en el caso de que haya RE en las dos entidades.

1:N (ID) RESTRICCIÓN DE IDENTIFICACIÓN

Las Restricciones de Identificación (ID) son un caso especial de relación 1:N. La restricción siempre cae en el lado de la N y su paso a tablas lo único que conlleva es que la clave primaria de la entidad débil estará formada por los atributos identificadores de su entidad más los atributos identificadores de la otra entidad implicada, de esta manera:

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_2 ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N, Identificador_Entidad_1) C.P: Identificador, Identificador_Entidad_1 C.Aj: Identificador_Entidad_1 à ENTIDAD_1 V.N.N: Atributo_1, Atributo_N    
  • ATRIBUTOS EN LAS RELACIONES

En el caso de que hayan atributos en las relaciones, los mismos habrá que reflejarlos en las entidades que lleven el peso de la relación, sin pérdida de todo lo expuesto anteriormente, de esta manera:

ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N, Identificador_Entidad_2, Atributo_R ) C.P: Identificador C.Aj: Identificador_Entidad_2 à ENTIDAD_2 V.N.N: Atributo_1, Atributo_2 ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_N    
ENTIDAD_1 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_2 ENTIDAD_2 (Identificador, Atributo_1, Atributo_2, …, Atributo_N) C.P: Identificador V.N.N: Atributo_1, Atributo_N RELACIONAR (Identificador_Entidad_1, Identificador_Entidad_2, Atributo_R) C.P: Identificador_Entidad_1, Identificador_Entidad_2 C.Aj: Identificador_Entidad_1 à ENTIDAD_1 C.Aj: Identificador_Entidad_2 à ENTIDAD_2