Hola a todos, hoy os voy a explicar como podemos transformar nuestras relaciones con cardinalidad N:M de modelo entidad relacion a modelo relacional.
En su día, ya vimos las cardinalidades en modelo entidad relacion aquí.
¿Como se transforma la cardinalidad N:M en modelo relacional?
Cuando tenemos una cardinalidad N:M entre dos entidades, se crea una nueva tabla con los atributos identificativos de ambas entidades.
Ambos atributos serán identificativos de la nueva tabla, además de ser claves foráneas.
En el caso de que la relación tenga atributos, se añadirán a la nueva tabla como atributos normales.
Ejemplo
Siguiendo el ejemplo que hemos visto en anteriores entradas, un empleado puede pertenecer a uno o varios departamentos.

En el formato gráfica, añadiremos una nueva tabla, puedes llamarla como quieras, lo habitual suele ser combinar ambas entidades.

En el formato tabla, añadiremos una nueva tabla indicando en sus atributos sus restricciones.

Cuando tenemos dos atributos identificativos, no pueden haber dos registros repetidos en la nueva tabla.
Por ejemplo, no podemos tener que el mismo empleado esta en el mismo departamento 2 o más veces.
Pero, ¿y si tuviéramos que repetirlo varias veces?
Por ejemplo, en nuestro caso, que un empleado pueda ingresar en un departamento, varias veces indicando la fecha de ingreso.
Con lo que hemos hecho antes, el empleado no puede estar en un mismo departamento varias veces en diferentes fechas.
Para solucionar esto, crearemos un nuevo atributo, que será el identificativo, y las claves de las otras entidades pasaran a ser solo foráneas.
Esto no es siempre es necesario, según las necesidades del diseño es recomendable usarlo o no.


Otra opcion valida, es hacer que la fecha sea identificativa junto a las claves que nos traemos de las otras entidades.

Te dejo un video donde te lo explico en detalle:
https://youtu.be/xM_Qx0wkSSw
¿Quieres un curso completo de modelo relacional? Lo tenemos en el canal.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta