gestión base de datos : modelo relacional (ii) · gestión base de datos : modelo relacional (ii)...

13
1 Gestión base de datos : Modelo Relacional (II) I. Transformación del Modelo ER al Modelo Relacional Como se vio anteriormente la elaboración de un buen diseño de la base de datos es un proceso que requiere una serie de fases. La primera de ella consistía en la creación de un diseño conceptual a partir de los requerimientos del sistema. A continuación se genera un modelo lógico que permite adaptar el modelo inicial al gestor que utilicemos, para finalmente generar el modelo físico listo para ser implementado en el Sistema Gestor de Base de Datos (SGBD). A primera vista se puede observar que con la transformación de un esquema E/R a un esquema relacional se pierde semántica puesto que tanto las entidades como las interrelaciones se transforman en relaciones. También hay pérdida de semántica en la propagación de clave, donde desaparece incluso la relación 1:N. Esta pérdida de semántica no implica un peligro para la integridad de la BD, ya que pueden definirse restricciones de integridad referencial que aseguren la conservación de la misma. Se parte del siguiente diagrama del MER para ilustrar las reglas de transformación:

Upload: duongtuong

Post on 26-Sep-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

1

Gestión base de datos : Modelo Relacional (II)

I. Transformación del Modelo ER al Modelo Relacional

Como se vio anteriormente la elaboración de un buen diseño de la base de datos es un

proceso que requiere una serie de fases.

La primera de ella consistía en la creación de un diseño conceptual a partir de los

requerimientos del sistema. A continuación se genera un modelo lógico que permite

adaptar el modelo inicial al gestor que utilicemos, para finalmente generar el modelo

físico listo para ser implementado en el Sistema Gestor de Base de Datos (SGBD).

A primera vista se puede observar que con la transformación de un esquema E/R a un

esquema relacional se pierde semántica puesto que tanto las entidades como las

interrelaciones se transforman en relaciones. También hay pérdida de semántica en la

propagación de clave, donde desaparece incluso la relación 1:N.

Esta pérdida de semántica no implica un peligro para la integridad de la BD, ya que

pueden definirse restricciones de integridad referencial que aseguren la conservación

de la misma.

Se parte del siguiente diagrama del MER para ilustrar las reglas de transformación:

2

Ilustración 1 Modelo ER entre PERSONA y VIVIENDA

A continuación se muestra una reseña para indicar la representación del tipo de clave

en el paso a tabla:

Representación de claves

Primaria:

Externa o foránea:

1. Paso 1: Transformación de entidades

a) Las entidades normales

Las entidades normales, no, las débiles, del diagrama ER se transforman en

relaciones (tablas) en el modelo relacional. La tabla se llamará igual que el

tipo de entidad de donde proviene.

Ej: PERSONA (dni, nombre, fecha_na)

b) Las entidades débiles

Las entidades débiles del diagrama ER se convierten en relaciones en el modelo

relacional, con todos sus atributos simples. Se incluye como clave externa en

esta relación la clave primaria de la relación que representa a la entidad

propietaria de la entidad débil. La clave primaria de la relación se formará con

esta clave externa más la clave parcial de la entidad débil. La clave

identificadora queda así resuelta.

3

Para esta transformación en concreto se parte del siguiente diagrama MER:

Ilustración 2 Modelo ER entre PLANTA y la entidad débil CAMA

Ej. PLANTA (num_planta, capacidad)

CAMA (num_cama, num_planta)

Paso 2: Transformación de atributos de entidades

Cada atributo de una entidad se transforma en una columna de la relación a la que ha

dado lugar la entidad.

a) Los atributos simples

En el diagrama ER se convierten en atributos o columnas en la tabla, los

cuales tienen permitido tomar valores nulos, a no ser que se indique lo

contrario (NOT NULL).

b) Los atributos compuestos en el diagrama ER

Se convierten en tantos atributos/columnas como componentes simples

tengan.

c) Los atributos identificadores principales

Pasan a ser la (o las) clave primaria de la relación. Si la clave elegida es

compuesta, en la relación la clave será el conjunto de atributos

correspondientes a sus componentes simples.

4

d) Los atributos multivaluados

Se convierten en una nueva relación o tabla cuya clave estará formada por

la concatenación de la clave de la relación que se encuentra y el nombre del

atributo.

3. Paso 3 Transformación de interrelaciones

Por cada vínculo binario N:M (ó N:N) del diagrama ER

Se crea una nueva relación que tendrá como clave primaria la

concatenación de los atributos identificadores principales de los tipos de

entidad que asocia. Cada uno de los atributos que forman la clave primaria

de esta relación constituyen una clave ajena respecto a cada una de las

tablas donde este atributo es clave primaria.Otra característica que

debemos recoger en esta transformación son las cardinalidades máxima y

mínima de cada una de las entidades que participan en la relación. La

cardinalidad mínima se transforma mediante la admisión o no de valores

nulos en la entidad que se propaga su AIP (atributo identificador principal) y

la máxima mediante la especificación de restricciones o aserciones.

Ej. Suponiendo que la relación del ejemplo fuera N:M

PERSONA (dni, nombre, fecha_na)

VIVIENDA (direccion, m2)

TIENE (dni, direccion, fecha_compra)

Por cada vínculo binario 1:N del diagrama ER

Existen dos soluciones:

La clave primaria de la relación que representa a la entidad del lado

1 pasa como clave externa a la relación que representa a la entidad

del lado N. Si el vínculo tiene atributos, estos van a la relación del

lado N. De esta forma desaparece el nombre de la relación. Será la

opción utilizada en caso de que la relación no tenga atributos o

tenga muy pocos.

Ej. Suponiendo que la relación del ejemplo fuera N:1

5

PERSONA (dni, nombre, fecha_na, dirección, fecha_compra)

VIVIENDA (direccion, m2)

Formar una nueva relación formada por los campos de las claves

principales de las entidades que intervienen en la interrelación junto

con los atributos de la interrelación. En este caso la clave primaria

será la formada por los campos de la clave de la entidad que está en

el lado de la N.

Ej. Suponiendo que la relación del ejemplo fuera N:1

PERSONA (dni, nombre, fecha_na)

VIVIENDA (direccion, m2)

TIENE (dni, direccion, fecha_compra)

Por cada vínculo binario 1:1 del diagrama ER

Se considera un caso particular de las interrelaciones con tipo de

correspondencia 1:N. No hay una regla fija para su transformación,

pudiéndose crear una nueva tabla o transformarla mediante una

propagación de clave.

Casos:

Si las entidades que se asocian poseen cardinalidades (0,1),

entonces se puede propagar la clave de cualquiera de ellas a la otra

tabla, teniendo en cuenta los accesos más frecuentes y prioritarios a

los datos de las tablas.

Ej. Suponiendo que la relación del ejemplo fuera 1:1 (con cardinalidades

0,1)

PERSONA (dni, nombre, fecha_na, dirección, fecha_compra)

VIVIENDA (direccion, m2)

Si una de las entidades que participa en la relación posee

cardinalidad (0,1) mientras que en la otra es (1,1), conviene

propagar la clave de la entidad con cardinalidad (1,1) a la tabla

resultante de la entidad de cardinalidades (0,1), con el fin de evitar

que aparezcan valores nulos.

6

Ej. Suponiendo que la relación del ejemplo fuera 1:1 (con cardinalidades

0,1 hacia PERSONA y 1,1 hacia VIVIENDA)

PERSONA (dni, nombre, fecha_na, dirección, fecha_compra)

VIVIENDA (direccion, m2)

En el caso de que ambas entidades presenten cardinalidades (1,1),

ocurriría un caso similar al primero; se puede propagar la clave de

cualquiera de ellas a la tabla resultante de la otra, teniendo en

cuenta en este caso los accesos más frecuentes y prioritarios a los

datos de las tablas.

Ej. Suponiendo que la relación del ejemplo fuera 1:1 (con cardinalidades

1,1)

PERSONA (dni, nombre, fecha_na, dirección, fecha_compra)

VIVIENDA (direccion, m2)

Por cada vínculo n-ario (n>2) del diagrama ER , se crea una

nueva relación. Se incluyen en ella como atributos de clave externa los

atributos clave primaria de cada una de las relaciones que representan a las

entidades que participan en el vínculo. Si el vínculo tiene atributos, estos

van a la relación creada. La clave primaria de la nueva relación es la

combinación de las claves externas.

A partir del siguiente esquema para una relación ternaria, se tienen los supuestos:

Ilustración 3 Modelo ER de una relación ternaria

Si existen 2 ó más N se genera una nueva tabla (además de las ya

existentes: CLIENTE, CUENTA y SUCURSAL):

7

N:N:1

TIENE (num_cliente, num_cuenta, num_sucursal)

N:N:N

TIENE (num_cliente, num_cuenta, num_sucursal)

Si solo hay una N o menos se le hace el mismo tratamiento que las

binarias (no generando una tabla para la relación):

N:1:1 (en este caso se migran hacia el lado de la N)

CLIENTE (num_cliente, num_cuenta, num_sucursal)

Paso 4.- Transformación de la dimensión

temporal

Es habitual que ciertas interrelaciones incorporen atributos de carácter temporal y

que además estos sean multivaluados.

Un ejemplo típico es el de la interrelación que vincula a los clientes con las

habitaciones de un hotel ya que estos se han podido alojar en más de una ocasión

en la misma habitación, con lo que el campo fecha_entradasería multivaluado. En

este caso la tabla generada estará formada por los campos dni, num_habitacion y

fecha_entrada, que serán también los que forman la clave primaria.

Cuando esto ocurre la interrelación se transforma en una nueva tabla cuyos

campos serán las claves de las entidades relacionadas y los campos propios de la

relación, mientras que la clave será la fomada por las claves de las entidades y, en la

mayoría de los casos, uno o varios de los campos temporales.

Ej. HOSPEDA (dni, num_habitacion, fecha_entrada)

Paso 5.- Transformación de relaciones reflexivas

A partir del siguiente diagrama existen dos soluciones:

8

Ilustración 4 Modelo ER de relación reflexiva

1:N (N del lado del rol contenido)

OBJETO (cod_objeto_contenido, cod_objeto_contenedor, dimension)

N:N

OBJETO (cod_objeto, dimension)

CONTIENE (cod_objeto_contenido, cod_objeto_contenedor)

6. Paso 6.- Transformación de Jerarquías de Tipos y

Subtipos

En general se puede dar tres posibilidades:

Englobar todos los atributos de la entidad y sus subtipos en una sola

relación. El inconveniente es que si los subtipos participan en relaciones

(1:N) se tiene que garantizar que el supertipo pueda ser de un subtipo o de

otra de forma indiferente.

Considerar las relaciones distintas para cada subtipo, que contengan

además los atributos comunes y eliminar el supertipo. Cuando la ISA es

parcial no se puede utilizar, no se cumplen todos los subtipos. En el caso de

que sean exclusivas se necesita utilizar un trigger o disparador para

discernir que un tipo no sea de otro tipo.

Crear una relación para el supertipo y tantas relaciones como subtipos

haya, con sus atributos correspondientes. Es la más utilizada. Los subtipos

se transforman en relaciones débiles respecto al supertipo, añadiéndoseles

9

la clave primaria del supertipo. Se les suele poner un atributo tipo para

distinguirlas, así se mejora el rendimiento al hacer joins. Si hay muchas

consultas sobre el supertipo será mucho más cómodo.

Si es inclusiva, el tipo forma parte de la clave primaria.

A continuación se representa una ISA de entidades seguros, de tal forma

que heredan de la misma el seguro de hogar, de vida y de automóvil:

- SEGURO(cod_seguro, prima, tipo, …)

- SEGURO_HOGAR (cod_seguro, contenido, continente, riesgoAnexo,

…)

- SEGURO_VIDA (cod_seguro, edad, profesion, cobertura)

- SEGURO_AUTOMOVIL (cod_seguro, coche, anios, edad, cobertura,

…)

10

Test

1. En la siguiente tabla: alumno (dni, num_expediente, num_seguridad_social,

nombre, apellidos, dirección, teléfono)

a. dni, num_expediente, num_seguridad_social y nombre son consideradas

claves candidatas.

b. nombre podría ser clave primaria en la relación.

c. Si selecciono el num_expediente como primaria, las claves alternativas

serían el dni y el num_seguridad_social.

d. num_expediente, apellidos, dirección o teléfono podrían considerarse

superclaves de la relación.

2. Al transforma la siguiente relación ternaria al Modelo Relacional, ¿qué

atributos formarían parte de la clave?

a. PK_A, PK_B y PK_C

b. PK_A, PK_B

c. PK_A, PK_C

d. PK_B, PK_C

3. En la transformación al Modelo Relacional del siguiente Esquema E/R

empleando propagación de clave, indicar cuál de las siguientes afirmaciones

es cierta:

11

a. Se genera una nueva tabla PAGA cuya clave primaria es la combinación de

las claves primarias de las entidades que interrelaciona, y tiene

adicionalmente el atributo fecha.

b. Se genera una nueva tabla PAGA cuya clave primaria es la combinación de

las claves primarias de las entidades que interrelaciona, y el atributo fecha.

c. Se migraría la clave primaria de la entidad CLIENTE a FACTURA como clave

externa y el atributo fecha como clave primaria.

d. Se migraría la clave primaria de la entidad CLIENTE a FACTURA como clave

externa y el atributo fecha también de la misma forma que se encuentra

representado.

4. Señala la incorrecta a la hora de representar jerarquías:

a. Se permite englobar todos los atributos de la entidad y sus subtipos en una

sola relación.

b. Se pueden considerar las relaciones distintas para cada subtipo, que

contengan además los atributos comunes y eliminar el supertipo

c. Una opción es crear una relación para el supertipo y tantas relaciones como

subtipos haya, con sus atributos correspondientes.

d. Si la relación es solapada, no es posible su representación en el SGBD.

5. ¿Qué afirmación es cierta acerca de las relaciones reflexivas?:

a. Las relaciones reflexivas implican una clave foránea del lado del objeto

contenedor.

b. Las relaciones reflexivas implican siempre una clave foránea del lado del

objeto contenido.

c. Las relaciones reflexivas generan dos tablas, una para el contenedor y otra

para el contenido.

d. No es posible representar las relaciones reflexivas.

6. Escoge la opción correcta en cuanto a clave primaria para representar los

distintos alojamientos de un cliente en un hotel:

a. dni, num_habitacion, fecha_entrada

b. dni, num_habitacion, fecha_entrada

c. dni, num_habitacion, fecha_entrada

d. dni, num_habitacion, fecha_entrada

12

7. Señala la opción incorrecta en relaciones 1:1:

a. Ambas entidades presenten cardinalidades (1,1) se puede propagar la clave

a cualquiera de ellas.

b. Si una entidad posee cardinalidad (1,1) y la otra (0,1), conviene propagar la

clave de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad

de cardinalidades (0,1).

c. Si las entidades que se asocian poseen cardinalidades (0,1), entonces se

puede propagar la clave de cualquiera de ellas a la otra tabla

d. Nunca generan una tabla intermedia.

8. Señala la opción incorrecta en relaciones 1:N:

a. Existen dos soluciones posibles.

b. Una solución consiste en que la clave primaria de la relación que

representa a la entidad del lado 1 pasa como clave externa a la relación

que representa a la entidad del lado N.

c. Formar una nueva relación formada por los campos de las claves

principales de las entidades que intervienen en la interrelación junto con

los atributos de la interrelación, siendo la clave primaria la formada por los

campos de la clave de la entidad que está en el lado de la N.

d. Formar una nueva relación formada por los campos de las claves

principales de las entidades que intervienen en la interrelación junto con

los atributos de la interrelación, siendo la clave primaria la formada por los

campos de la clave de la entidad que está en el lado de la 1.

9. En cuanto a la transformación de atributos:

a. Los atributos simples en el diagrama ER se convierten en atributos o

columnas en la tabla que no pueden tomar valor nulo.

b. Los atributos compuestos se transforman en una única columna en la tabla.

c. Los atributos multivaluados se convierten en una única columna en la

tabla.

d. Los atributos identificadores principales pasan a ser la (o las) clave primaria

de la relación.

10. Señala la correcta en cuanto a entidades débiles

a. Se convierten en relaciones en el modelo relacional, obviando sus atributos.

13

b. Se incluye como clave externa en esta relación la clave primaria de la

relación que representa a la entidad propietaria de la entidad débil.

c. La clave primaria de la relación se formará únicamente con la clave externa.

d. No existe una representación en el MR para las entidades débiles.

Respuestas:

1 c/ 2 d/3 d/4 d/5 a/6 c/7 d/8 d/9 d/10 b