gestión base de datos : modelo relacional (ii) · gestión base de datos : modelo relacional (ii)...
Post on 26-Sep-2018
232 Views
Preview:
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
top related