miércoles, 6 de marzo de 2019

Transformar un E-R a modelo relacional


Principios de transformación.

La transformación de un diagrama E/R al Modelo Relacional está basado en los siguientes principios:
  • Toda entidad se convierte en una relación (tabla).
  • Toda interrelación (relación) N:M se transforma en una relación (tabla)
  • Toda interrelación (relación) 1:N se traduce en el fenómeno de “propagación de clave” (se crea una clave ajena).


Después de analizar los principios anteriores podemos pensar que en el paso del diseño conceptual(diagrama ER) al diseño lógico (esquema relacional) se pierde información semántica, ya que tanto las entidades como las relaciones se transforman en tablas, sin que haya una diferencia entre las tablas que provienen de entidades y las que provienen de relaciones. Pero la realidad es diferente, ya que gracias a la definición de las restricciones de integridad necesarias, nos aseguramos la conservación de la integridad de la base de datos, es decir que toda la semántica del universo del discurso quede reflejada en el esquema relacional.

Transformación de las Entidades

Cada entidad que aparezca en el diagrama E/R se convierte en una tabla.

  • Transformación de Entidades Débiles.


Las entidades débiles se transforman en una tabla, propagando la clave de la entidad fuerte, que pasa a formar parte de la clave primaria de la entidad débil.

Transformación de los Atributos de las entidades

Cada atributo de una entidad se transforma en una columna en la relación a la que ha dado lugar la
entidad. 
  • El, o los atributos principales de una entidad (es decir, la clave primaria de la entidad) pasan a ser la clave primaria de la relación. Se debe especificar que no son nulos.
  • El resto de atributos pasan a ser columnas de la tabla, pudiendo tomar valores nulos, a no ser que se indique lo contrario por restricciones de nuestro sistema de información.


Transformación de Atributos Compuestos

El modelo relacional no permite representar atributos compuestos, por lo que se busca una alternativa,
como:
  • Considerar el atributo compuesto como un atributo simple.
  • Eliminar el atributo compuesto y considerar cada uno de sus atributos como atributo simple de la entidad.

Transformación de las relaciones (interrelaciones)

Dependiendo del tipo de relación y de la cardinalidad que tenga, existen diversas maneras de transformarlas:

  • Relaciones N:M. Se crea una nueva tabla que incluye los atributos de la propia relación (si los tuviera) y las claves primarias de las dos entidades, que forman la clave primaria de la nueva relación.
  • Relaciones 1:N. Estas interrelaciones se pueden transformar de dos maneras diferentes:
    • Propagar la clave principal de la entidad que tiene cardinalidad máxima 1 a la que tiene N, y hacer desaparecer la tabla de la relación como tal.
    • Transformarla en una nueva tabla como si fuese de una relación de tipo N:M, es decir, incluyendo los atributos de la relación y las claves primarias de las dos entidades.Esta acción es recomendable sólo:cuando es posible que aparezcan muchos nulos porque existen pocos elementos relacionados,o cuando se preveé que dicha relación pasará en un futuro a ser de tipo N:M, o cuando la relación tiene atributos propios.Cuando la cardinalidad mínima de la entidad uno es igual a uno, se suele utilizar la primera opción. En cambio si la cardinalidad mínima fuera cero, se suele utilizar la segunda opción.
  • Relaciones 1:1. Este es un caso particular de cualquiera de los dos anteriores, por lo que se podrían aplicar las reglas ya mencionadas. De todas formas es recomendable tener en cuenta las siguientes consideraciones:
    • Si la relación es entre entidades con cardinalidades (0,1) y (0,1), es mejor crear una relación para evitar tener muchos nulos como propagación de alguna de las claves a la otra.
    • Si la relación es entre entidades con cardinalidades (0,1) y (1,1), es mejor propagar la clave de la entidad (1,1) a la (0,1).
    • Si la relación es entre entidades con cardinalidades (1,1) y (1,1), la propagación es indiferente, y se hará atendiendo a los criterios de frecuencia de acceso (consulta, modificación, inserción, etc.) a cada una de las tablas en cuestión.

Transformación de los atributos de relaciones

Si la relación se transforma en una tabla, todos sus atributos pasan a ser columnas de la tabla. En el caso en que alguno de los atributos de la relación sea clave primaria, deberá ser incluido como parte de la clave primaria en dicha tabla.

Transformación de relaciones exclusivas
Para soportar relaciones exclusivas debemos definir las restricciones pertinentes en cada caso. Por ejemplo, en el caso en que exista una exclusividad en la edición de un libro por parte de una editorial o de una universidad, estas dos relaciones se resuelven mediante el mecanismo de propagación de la clave, llevando las claves primarias de editorial y universidad a libro.

Transformación de relaciones ternarias (grado 3)

  • Relaciones muchos a muchos a muchos: Este tipo de relación se transforma en una tabla cuya clave primaria es la concatenación de las claves primarias de las tablas surgidas al transformar las entidades que forman parte de la relación. Junto a estos atributos se incluyen los atributos propios de la relación. Cada uno de los atributos que forman la clave primaria de esta tabla son a la vez claves ajenas respecto a cada una de las tablas donde dicho atributo es clave primaria.
  • Relaciones muchos a muchos a uno: Este tipo de relación se transforma en una tabla cuya clave primaria es la concatenación de las claves primarias de las tablas que corresponden a la cardinalidad M surgidas al transformar las entidades que forman parte de la relación. Junto a estos atributos se incluyen los atributos propios de la relación más la clave primaria de la tabla que corresponde a la cardinalidad 1. Cada uno de los atributos que forman la clave primaria de esta tabla (y los atributos añadidos de la relación de cardinalidad 1) son claves ajenas respecto a cada una de las tablas donde dicho atributo es clave primaria.


Transformación de la generalización (tipos y subtipos)

Los tipos y subtipos no son objetos que se puedan representar en el modelo relacional estándar.

Existen pues, varias posibilidades para su transformación:

  • Englobar todos los atributos de una entidad y sus subtipos en una sola tabla, añadiendo el atributo que permite distinguir los subtipos. También habrá que especificar las restricciones semánticas adecuadas.
  • Crear una tabla para el supertipo, y tantas tablas como subtipos existan. Ésta es la mejor opción desde el punto de vista semántico, pero es menos eficiente que la opción anterior.
  • Crear sólo tablas para los subtipos, añadiendo en cada una de ellas los atributos pertenecientes al supertipo. Habitualmente ésta es la opción más utilizada.


Transformación de la agregación

Se trata de transformar primero el nivel más alto de la agregación (aplicando las reglas adecuadas) y trataremos la relación resultante como si fuera “una nueva entidad a relacionar” con el nivel más bajo (aplicando las normas anteriores).

No hay comentarios.:

Publicar un comentario

Transformar un E-R a modelo relacional

Principios de transformación. La transformación de un diagrama E/R al Modelo Relacional está basado en los siguientes principios: ...