En esta entrada, se va a mostrar los pasos para obtener el modelo relacional, a partir del modelo entidad-relación
El modelo lógico estándar posee el objeto RELACIÓN o TABLA mediante el cual representaremos las entidades. La tabla se llamará igual que el tipo de entidad de donde proviene. Para su definición dispondremos en SQL de la sentencia CREATE TABLE.
Transformación de atributos
Cada atributo de una entidad se transforma en una columna de la relación a la que ha dado lugar la entidad. Pero teniendo en cuenta que tenemos atributos identificadores principales, alternativos y el resto, cada uno de los diferentes tipos sufrirá un tipo de transformación diferente:
- Atributos Identificadores Principales: El/los atributo/s identificador principal de cada tipo de entidad pasan a ser la Clave Primaria de la relación (PRIMARY KEY).
- Atributos Identificadores Alternativos: El modelo lógico estándar recoge por medio de la cláusula UNIQUE.
- Atributos No Identificadores: Los atributos no principales pasan a ser columnas de la tabla, las cuales tienen permitido tomar valores nulos, a no ser que se indique lo contrario. (NOT NULL).
- Atributos multivaluados: en este caso la regla general es convertir el atributo en una nueva relación o tabla cuya clave estará formada por la concatenación de la clave de la relación en la que se encuentra y el nombre del atributo.
- Relación N:M. Cada uno de los atributos que forman la clave primaria de esta relación son una CLAVE AJENA respecto a cada una de las tablas donde este atributo es clave primaria, lo que se especifica en el lenguaje lógico estándar a través de la clausura FOREIGN KEY dentro de la sentencia de creación de la tabla.
- Relación 1:N. Existen dos soluciones para la transformación de una relación 1:N.
- Cuando exista la posibilidad de que haya elementos que no se relacionen con elementos de la otra entidad, es mejor transformar la interrelación en una relación.
- Propagar el AIP del tipo de entidad que tiene cardinalidad máxima 1 a la que tiene cardinalidad máxima N, desapareciendo el nombre de la relación, con la consiguiente pérdida de semántica.
- Relación 1:1. Este es 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.
- Si las entidades que se asocian poseen cardinalidades (0,1), entonces la interrelación se transforma en una relación, además de las dos relaciones a las que se transforman cada una de las entidades.
- En el caso de que cualquiera de las entidades presenten cardinalidades (1,1), 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.
- Entidad débil. Por cada entidad débil se creará una tabla. Como clave primaria se escogerá la unión de el atributo identificador principal de la entidad débil más el atributo identificador principal de la entidad fuerte
- Relación reflexiva
- Si la relación es 1:1 , la clave de la entidad se repite (una como clave primaria y otra como clave ajena (a la ajena se le cambia el nombre, al no poder tener 2 claves de nombre igual).
- Si la relación es 1:M habrá 2 casos, si la entidad muchos es obligatoria se procede como en el caso 1:1, si no es obligatoria se crea una nueva tabla con la clave del lado muchos y ademas se propaga la clave a la nueva tabla como clave ajena.
- Si es N:M, se trata igual que en las relaciones binarias, la tabla resultante tendrá dos veces la clave primaria de la entidad del lado muchos mas los atributos de la relación si los hubiera.