Transformación del Modelo Conceptual E R al Modelo Lógico Relacional - Irene-Frias/1DAM GitHub Wiki
1. Conversión del E/R al Relacional
1.1 Conversiones previas
1.1.1 Eliminación de atributos compuestos
Los atributos compuestos que provenga de una entidad debe ser descompuesto en varios atributos simples, respetando los dominios que tenían en el atributo compuesto (queda eliminado).
1.1.2 Eliminación de atributos multievaluados
La eliminación del atributo multievaluado dará a varias transformaciones dependiendo de los supuestos semánticos. Se distinguen los siguientes casos:
-
Si el atributo multievaluado puede tomar valores y son conocidos para la mayoría de los ejemplares disponibles, es posible descomponerlo en vario atributos simples.
-
Si el atributo puede tomar valores y son desconocidos para la mayoría de ejemplares. En ese caso se crea una interrelación y una entidad. Hay dos alternativas que dependen del contexto:
- Se crea una nueva entidad débil en existencia con una relación de uno a muchos. La entidad débil tendrá un solo atributo univaluado que podrá identificar de manera única cualquier ejemplar de la entidad creada
- Un atributo multievaluado puede pertenecer a más de un ejemplar de la entidad a la que describe, por lo que la dependencia es en identificación.
1.2 Transformación de dominios
Un dominio es un conjunto de valores atómico del mismo tipo y finito. El dominio tiene asociado un nombre y un formato que puede definirse por extensión o por intensión.
En el esquema conceptual será transformado en el mismo dominio en el modelo relacional. En el esquema conceptual no representamos los dominios que más tarde deben ser reflejados en el esquema relacional para mantener la legibilidad en el diseño. Puede estar asignado a uno o varios atributos de distintas relaciones.
1.3 Transformación de entidades
El esquema se transformará en una relación en el esquema relacional, el cuál será el nombre de la entidad. Los atributos de la entidad serán los atributos (campos) de la tabla con las siguientes características o restricciones, dependiendo del atributo:
- Identificador principal: el atributo o atributos que sean identificador principal se transforma en clave primaria de la tabla (PRIMARY KEY).
- Identificador alternativo: a los atributos que son identificadores alternativos se les añadirán las restricciones de obligatoriedad (NOT NULL) y unicidad (UNIQUE).
- Atributo no identificador: en este tipo de atributo puede ser que sea obligatorio conocer su valor (NOT NULL) o, por el contrario, que sea opcional (NULL).
1.4 Transformación de las relaciones binarias
Cualquier relación binaria en el esquema conceptual se transformará en una de estas dos formas:
- Creación de relación (tabla)
- Propagación de clave La elección de una u otra dependerá del tipo de la cardinalidad de la relación y de las modalidades de las entidades que participan.
1.4.1 Relaciones de N:M
Transforman la relación con los distintos atributos, los identificadores de las entidades asociadas y los atributos propios de la relación si los tuviese.
1.4.2 Relaciones de 1:N
Se puede modelizar la cardinalidad de la entidad con la cardinalidad máxima a 1.
-
La entidad tiene cardinalidad máxima de 1 y propagará su clave a la entidad de cardinalidad máxima N y no admitirá valores nulos. Si la relación tuviese atributos, estos también serán propagados en el mismo sentido.
-
Admite dos transformaciones:
- Si la cardinalidad máxima de N conoce la entidad con la que participa con la cardinalidad máxima a 1, se modelizará como propagación de clave igual que en el caso anterior y la clave ajena admitirá valores nulos. Si la interrelación tuviera atributos estos también serán propagados en el mismo sentido.
- Si la mayoría de los ejemplares de la entidad que participa con cardinalidad máxima N desconoce su ejemplar vinculado de la entidad que participa con cardinalidad máxima 1, entonces la interrelación se modelizará como creación de relación tomando los atributos independientes como identificadores principales de las entidades asociadas y los propios de la interrelación si los tuviese.
1.4.3 Relaciones 1:1
Se puede transformar de varias formas dependiendo de si al menos una de las entidades participa con modalidad (1,1) o si por el contrario, ambas participan con la modalidad (0,1).
- Si las dos entidades participan en la cardinalidad (0,1) se creará una nueva relación que tendrá por atributos los identificadores de las entidades asociadas y los atributos propios de la interrelación si los tuviese. La clave primaria de la tabla creada será cualquiera de los dos identificadores participantes. El que no sea elegido será clave alternativa y se le creará un índice sin repetidos.
- Si una de las entidades participa con una cardinalidad (1,1) y la otra (0,1), la entidad con la cardinalidad (1,1) propagará su clave a la otra entidad como clave ajena y no permitirá valores nulos. Además esta será también clave alternativa y se creará un índice sin repetidos sobre ella. Si la interrelación tuviese atributos deberán ser propagados en el mismo sentido.
- Si las dos cardinalidad des (1,1) existen varias opciones.
Una es propagar el identificador de una entidad al de la otra, como clave ajena y no admitirá valores nulos, teniendo en cuenta la elección para frecuentes datos de las relaciones. La clave ajena será también clave alternativa por lo que crearemos un índice sin repetidos sobre la misma. Si la interrelación tuviera atributos también serían propagados en el mismo sentido.
Otra opción es la propagación de los identificadores, pero esto puede provocar redundancias por lo que tienen que estar controladas. No se aconseja realizar este tipo de transformación si la interrelación tiene atributos propios puesto que la redundancia sería aún mayor.
Última opción consiste en unir las relaciones provenientes de las dos entidades en una sola, combinando todos los atributos de las mismas y eligiendo como clave primaria uno de los dos identificadores y estableciendo el otro como clave alternativa.
1.4.4 Relaciones débiles
La interrelación que provenga de una entidad débil con dependencia en existencia o identificación se modeliza como propagación clave y clave ajena, no admitirá valores nulos. Además de que tendrá asociada la acción CASCASE, tanto como para la modificación como para el borrado.
1.5 Transformación de las relaciones ternarias
Cualquier relación ternaria se transformará como creación de una relación. Los atributos que la forman la nueva relación serán la suma de todos aquellos identificadores de las entidades asociadas más los atributos propios de la interrelación, si los tuviese.
1.5.1 Relaciones N:M:P
La clave primaria de la relación será la suma de todos los identificadores de las entidades participantes en la interrelación.
1.5.2 Relaciones N:M:1
La clave primaria de la relación será la sima de los identificadores principales de las dos entidades que participan en la interrelación con cardinalidad máxima N.
1.5.3 Relaciones N:1:1
La clave primaria de la relación será la suma del identificador principal que participa con cardinalidad máxima N y el identificador de una de las otras dos entidades en la interrelación. Además se añadirá como clave alternativa formada por el identificador de la entidad con la que participa con cardinalidad máxima N, junto con el identificador de la entidad que no forma parte de la clave primaria de la relación creada.
1.5.4 Relaciones 1:1:1
Se establecen tres claves candidatas formadas por tres combinaciones de parejas de identificadores de las entidades participantes. Una de estas es establecida como clave primaria de la relación creada y las otras dos parejas serán claves alternativas.
1.6 Relaciones reflexivas
Se modernizan al igual que las relaciones binarias, teniendo en cuenta que una entidad puede participar con más de un rol en la interrelación.
1.7 Transformación de jerarquías
El modelo conceptual representan un tipo de relación especial entre dos tipos de entidades distintas, llamadas supertipo y subtipo. Al transformarse al modelo relacional, tiene un solo constructor, se pierde parte de la semántica que reflejaba ese tipo de relación específica entre dichas entidades.
No hay mecanismo directo de transformación sino que dependiendo del tipo de jerarquía y de otros factores se modelizará de las tres formas:
- Eliminar los subtipos y dejar sólo la relación del supertipo. Toda la información específica de los subtipos y el atributo discriminante de la jerarquía, si existe, se traspasa al supertipo. En caso de que alguno de los subtipos tuviera alguna interrelación con otra entidad, la interrelación estaría enlazada con el supertipo.
- Se mantienen el supertipo y los subtipos creando una relación de 1:1 entre cada pareja del supertipo-subtipo. De esta forma mantiene una gran semántica, aunque es menos eficiente al se el esquema relacional más extenso y requiere cierto tipo de consultas más combinaciones de tablas. Cuando hay muchas diferencias en cuanto al número de atributos e interrelaciones entre el supertipo y los subtipos existentes.
- Se elimina el super tipo, quedando tantas relaciones como subtipos existan. Toda la información común del supertipo, es llevada a cada uno de los subtipos que contengan además sus atributos específicos.
Se aportará la transformación si cumple con: - Existen muchas diferencias en cuanto al número de atributos e interrelaciones entre el supertipo y los subtipos existentes. - La mayoría de las consultas que se realizan sobre algún subtipo afectan tanto a los atributos propios del mismo como a los atributos comunes del supertipo eliminado.
1.8 Transformación de la dimensión temporal
Cuando existe un atributo multievaluado que representa en un tiempo su transformación al modelo relacional. Puede hacerse de dos maneras:
- Convertir un atributo multievaluado en uno univaluado y analizar cuál es la clave primaria de la relación resultante dependiendo de los distintos tipos semánticos.
- Convertir el atributo mutievaluado en entidad en el modelo E/R y transformar la interrelación inicial en otra de mayor grado.
1.8 Transformación de atributos derivados
- Almacenar una atributo derivado como atributo propio de la relación de la que pertenece. Si eso ocurre, deben crear procedimiento para calcular su valor cada vez que se realicen operaciones de actualización sobre los elementos que intervienen en el cálculo.
- No almacenar el atributo derivado y se calcula su valor cuando se pida dicha información.
2. El modelo relacional y los SGBD
Hay que tener en cuenta en el modelo relacional mediante chacks, aserciones o disparadores:
- Cardinalidades como son mínimas 1, interrelaciones N:M incluyendo la restricción NOT NULL.
- Cardinalidades máximas conocidas en interrelaciones binarias N:M y 1:N e interrelaciones ternarias.
- Exclusividad en las generaciones.
- Atributos derivados.
- Exclusividad entre interrelaciones.
- Atributos multivaluados obligatorios.