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

  • Published on
    26-Sep-2018

  • View
    212

  • Download
    0

Transcript

1 Gestin base de datos : Modelo Relacional (II) I. Transformacin del Modelo ER al Modelo Relacional Como se vio anteriormente la elaboracin de un buen diseo de la base de datos es un proceso que requiere una serie de fases. La primera de ella consista en la creacin de un diseo conceptual a partir de los requerimientos del sistema. A continuacin se genera un modelo lgico que permite adaptar el modelo inicial al gestor que utilicemos, para finalmente generar el modelo fsico listo para ser implementado en el Sistema Gestor de Base de Datos (SGBD). A primera vista se puede observar que con la transformacin de un esquema E/R a un esquema relacional se pierde semntica puesto que tanto las entidades como las interrelaciones se transforman en relaciones. Tambin hay prdida de semntica en la propagacin de clave, donde desaparece incluso la relacin 1:N. Esta prdida de semntica no implica un peligro para la integridad de la BD, ya que pueden definirse restricciones de integridad referencial que aseguren la conservacin de la misma. Se parte del siguiente diagrama del MER para ilustrar las reglas de transformacin: 2 Ilustracin 1 Modelo ER entre PERSONA y VIVIENDA A continuacin se muestra una resea para indicar la representacin del tipo de clave en el paso a tabla: Representacin de claves Primaria: Externa o fornea: 1. Paso 1: Transformacin de entidades a) Las entidades normales Las entidades normales, no, las dbiles, 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 dbiles Las entidades dbiles del diagrama ER se convierten en relaciones en el modelo relacional, con todos sus atributos simples. Se incluye como clave externa en esta relacin la clave primaria de la relacin que representa a la entidad propietaria de la entidad dbil. La clave primaria de la relacin se formar con esta clave externa ms la clave parcial de la entidad dbil. La clave identificadora queda as resuelta. 3 Para esta transformacin en concreto se parte del siguiente diagrama MER: Ilustracin 2 Modelo ER entre PLANTA y la entidad dbil CAMA Ej. PLANTA (num_planta, capacidad) CAMA (num_cama, num_planta) Paso 2: Transformacin de atributos de entidades Cada atributo de una entidad se transforma en una columna de la relacin 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 relacin. Si la clave elegida es compuesta, en la relacin la clave ser el conjunto de atributos correspondientes a sus componentes simples. 4 d) Los atributos multivaluados Se convierten en una nueva relacin o tabla cuya clave estar formada por la concatenacin de la clave de la relacin que se encuentra y el nombre del atributo. 3. Paso 3 Transformacin de interrelaciones Por cada vnculo binario N:M ( N:N) del diagrama ER Se crea una nueva relacin que tendr como clave primaria la concatenacin de los atributos identificadores principales de los tipos de entidad que asocia. Cada uno de los atributos que forman la clave primaria de esta relacin constituyen una clave ajena respecto a cada una de las tablas donde este atributo es clave primaria.Otra caracterstica que debemos recoger en esta transformacin son las cardinalidades mxima y mnima de cada una de las entidades que participan en la relacin. La cardinalidad mnima se transforma mediante la admisin o no de valores nulos en la entidad que se propaga su AIP (atributo identificador principal) y la mxima mediante la especificacin de restricciones o aserciones. Ej. Suponiendo que la relacin del ejemplo fuera N:M PERSONA (dni, nombre, fecha_na) VIVIENDA (direccion, m2) TIENE (dni, direccion, fecha_compra) Por cada vnculo binario 1:N del diagrama ER Existen dos soluciones: La clave primaria de la relacin que representa a la entidad del lado 1 pasa como clave externa a la relacin que representa a la entidad del lado N. Si el vnculo tiene atributos, estos van a la relacin del lado N. De esta forma desaparece el nombre de la relacin. Ser la opcin utilizada en caso de que la relacin no tenga atributos o tenga muy pocos. Ej. Suponiendo que la relacin del ejemplo fuera N:1 5 PERSONA (dni, nombre, fecha_na, direccin, fecha_compra) VIVIENDA (direccion, m2) Formar una nueva relacin formada por los campos de las claves principales de las entidades que intervienen en la interrelacin junto con los atributos de la interrelacin. 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 relacin del ejemplo fuera N:1 PERSONA (dni, nombre, fecha_na) VIVIENDA (direccion, m2) TIENE (dni, direccion, fecha_compra) Por cada vnculo 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 transformacin, pudindose crear una nueva tabla o transformarla mediante una propagacin 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 ms frecuentes y prioritarios a los datos de las tablas. Ej. Suponiendo que la relacin del ejemplo fuera 1:1 (con cardinalidades 0,1) PERSONA (dni, nombre, fecha_na, direccin, fecha_compra) VIVIENDA (direccion, m2) Si una de las entidades que participa en la relacin 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 relacin del ejemplo fuera 1:1 (con cardinalidades 0,1 hacia PERSONA y 1,1 hacia VIVIENDA) PERSONA (dni, nombre, fecha_na, direccin, fecha_compra) VIVIENDA (direccion, m2) En el caso de que ambas entidades presenten cardinalidades (1,1), ocurrira 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 ms frecuentes y prioritarios a los datos de las tablas. Ej. Suponiendo que la relacin del ejemplo fuera 1:1 (con cardinalidades 1,1) PERSONA (dni, nombre, fecha_na, direccin, fecha_compra) VIVIENDA (direccion, m2) Por cada vnculo n-ario (n>2) del diagrama ER , se crea una nueva relacin. 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 vnculo. Si el vnculo tiene atributos, estos van a la relacin creada. La clave primaria de la nueva relacin es la combinacin de las claves externas. A partir del siguiente esquema para una relacin ternaria, se tienen los supuestos: Ilustracin 3 Modelo ER de una relacin ternaria Si existen 2 ms N se genera una nueva tabla (adems 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 relacin): N:1:1 (en este caso se migran hacia el lado de la N) CLIENTE (num_cliente, num_cuenta, num_sucursal) Paso 4.- Transformacin de la dimensin temporal Es habitual que ciertas interrelaciones incorporen atributos de carcter temporal y que adems estos sean multivaluados. Un ejemplo tpico es el de la interrelacin que vincula a los clientes con las habitaciones de un hotel ya que estos se han podido alojar en ms de una ocasin en la misma habitacin, con lo que el campo fecha_entradasera multivaluado. En este caso la tabla generada estar formada por los campos dni, num_habitacion y fecha_entrada, que sern tambin los que forman la clave primaria. Cuando esto ocurre la interrelacin se transforma en una nueva tabla cuyos campos sern las claves de las entidades relacionadas y los campos propios de la relacin, mientras que la clave ser la fomada por las claves de las entidades y, en la mayora de los casos, uno o varios de los campos temporales. Ej. HOSPEDA (dni, num_habitacion, fecha_entrada) Paso 5.- Transformacin de relaciones reflexivas A partir del siguiente diagrama existen dos soluciones: 8 Ilustracin 4 Modelo ER de relacin 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.- Transformacin de Jerarquas de Tipos y Subtipos En general se puede dar tres posibilidades: Englobar todos los atributos de la entidad y sus subtipos en una sola relacin. 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 adems 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 relacin para el supertipo y tantas relaciones como subtipos haya, con sus atributos correspondientes. Es la ms utilizada. Los subtipos se transforman en relaciones dbiles respecto al supertipo, aadindoseles 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 ms cmodo. Si es inclusiva, el tipo forma parte de la clave primaria. A continuacin se representa una ISA de entidades seguros, de tal forma que heredan de la misma el seguro de hogar, de vida y de automvil: - 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, direccin, telfono) a. dni, num_expediente, num_seguridad_social y nombre son consideradas claves candidatas. b. nombre podra ser clave primaria en la relacin. c. Si selecciono el num_expediente como primaria, las claves alternativas seran el dni y el num_seguridad_social. d. num_expediente, apellidos, direccin o telfono podran considerarse superclaves de la relacin. 2. Al transforma la siguiente relacin ternaria al Modelo Relacional, qu atributos formaran 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 transformacin al Modelo Relacional del siguiente Esquema E/R empleando propagacin de clave, indicar cul de las siguientes afirmaciones es cierta: 11 a. Se genera una nueva tabla PAGA cuya clave primaria es la combinacin 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 combinacin de las claves primarias de las entidades que interrelaciona, y el atributo fecha. c. Se migrara la clave primaria de la entidad CLIENTE a FACTURA como clave externa y el atributo fecha como clave primaria. d. Se migrara la clave primaria de la entidad CLIENTE a FACTURA como clave externa y el atributo fecha tambin de la misma forma que se encuentra representado. 4. Seala la incorrecta a la hora de representar jerarquas: a. Se permite englobar todos los atributos de la entidad y sus subtipos en una sola relacin. b. Se pueden considerar las relaciones distintas para cada subtipo, que contengan adems los atributos comunes y eliminar el supertipo c. Una opcin es crear una relacin para el supertipo y tantas relaciones como subtipos haya, con sus atributos correspondientes. d. Si la relacin es solapada, no es posible su representacin en el SGBD. 5. Qu afirmacin es cierta acerca de las relaciones reflexivas?: a. Las relaciones reflexivas implican una clave fornea del lado del objeto contenedor. b. Las relaciones reflexivas implican siempre una clave fornea 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 opcin 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. Seala la opcin 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. Seala la opcin incorrecta en relaciones 1:N: a. Existen dos soluciones posibles. b. Una solucin consiste en que la clave primaria de la relacin que representa a la entidad del lado 1 pasa como clave externa a la relacin que representa a la entidad del lado N. c. Formar una nueva relacin formada por los campos de las claves principales de las entidades que intervienen en la interrelacin junto con los atributos de la interrelacin, 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 relacin formada por los campos de las claves principales de las entidades que intervienen en la interrelacin junto con los atributos de la interrelacin, 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 transformacin 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 relacin. 10. Seala la correcta en cuanto a entidades dbiles a. Se convierten en relaciones en el modelo relacional, obviando sus atributos. 13 b. Se incluye como clave externa en esta relacin la clave primaria de la relacin que representa a la entidad propietaria de la entidad dbil. c. La clave primaria de la relacin se formar nicamente con la clave externa. d. No existe una representacin en el MR para las entidades dbiles. Respuestas: 1 c/ 2 d/3 d/4 d/5 a/6 c/7 d/8 d/9 d/10 b