4.1 Introducción

Al convertir las tablas de la base de datos en tablas regulares, ahora puede analizar las relaciones entre ellas. El número de elementos que interactúan entre dos tablas relacionadas se denomina cardinalidad. La cardinalidad lo ayuda a controlar la eficiencia con la que dividió sus datos en tablas.

Teóricamente, todas las entidades pueden mantener relaciones entre sí, pero en la práctica existen tres tipos de relaciones entre entidades:

  • Cara a cara
  • Uno a muchos
  • muchos a muchos

4.2 Comunicación uno a uno

Si solo hay una instancia de la entidad A para cada instancia de la entidad B, se dice que tienen una relación de uno a uno (a menudo denominada "1:1"). En los diagramas ER, dicha relación se indica mediante una línea con una pequeña barra en cada extremo:

Una relación 1:1 generalmente indica que, a menos que tenga una buena razón para mantenerlas separadas, es mejor combinar los datos de las dos tablas en una sola.

Sin embargo, en algunas circunstancias es razonable usar tablas con relaciones 1:1. Si sus tablas tienen campos con datos opcionales, como descripciones, y en muchos casos están vacíos, tiene sentido mover todas las descripciones a una tabla separada, lo que le permitirá eliminar las lagunas frecuentes y aumentar la eficiencia de su base de datos. .

Luego, para mapear correctamente los datos, deberá incluir al menos una columna idéntica en cada tabla (lo mejor es elegir una clave principal para esto).

4.3 Relación de uno a muchos

Este tipo de relación ocurre cuando un registro en una tabla está asociado con múltiples entidades en otra. Por ejemplo, el mismo cliente podría realizar varios pedidos o un visitante de la biblioteca podría tomar prestados varios libros en una sola visita. Las relaciones de uno a muchos (o 1:M para abreviar) se expresan en un diagrama utilizando la notación de patas de gallo, como se muestra en el siguiente ejemplo:

Para aplicar una relación 1:M al planificar una base de datos, simplemente agregue la clave principal de la tabla "uno" como un atributo a la tabla "muchos". Si la clave principal está en otra tabla, se denomina "clave externa". La tabla "uno" se considera la tabla principal, mientras que la tabla "muchos" se considera la tabla secundaria.

4.4 Relación de muchos a muchos

Cuando varias entidades de una tabla se pueden conectar a varias entidades de otra, se considera que tienen una relación de muchos a muchos (o M:M). Por ejemplo, tal relación existe entre estudiantes y clases, ya que cada estudiante puede asistir a varias clases diferentes y, en consecuencia, pueden venir muchos estudiantes a cada clase.

En el diagrama ER, este tipo de relación se muestra de la siguiente manera:

Desafortunadamente, es imposible implementar directamente tal relación en la base de datos. Por lo tanto, tendrá que dividirse en dos relaciones de uno a muchos.

Para hacer esto, deberá crear una nueva entidad entre las dos tablas. Si se establece una relación M:M entre ventas y productos, la nueva entidad puede llamarse "productos vendidos" porque representará el contenido de cada venta.

Con "mercancías vendidas" y la tabla "ventas" y la tabla "mercancías" estarán vinculadas por el tipo 1:M. En diferentes modelos, dichas entidades intermedias se denominan de manera diferente: "tablas de conexión", "entidades asociativas" o "tablas de nodos".

Cada entrada de la tabla de enlaces conecta dos entidades diferentes de tablas adyacentes (y también puede contener información adicional). Por ejemplo, una tabla de vínculos entre estudiantes y clases podría verse así:

4.5 ¿Obligatorio o no?

Otro enfoque para el análisis de enlaces es determinar cuál de las entidades conectadas es un requisito previo para la presencia de otra entidad. El lateral del enlace opcional está marcado con un círculo en el maletero.

Por ejemplo, para que un estado tenga su propio representante en la ONU, debe existir en el mapa mundial, pero la declaración en contrario será falsa:

Dos entidades pueden ser interdependientes (es decir, una no puede existir sin la otra).

Enlaces recursivos

A veces, una tabla puede referirse a sí misma. Por ejemplo, una tabla de empleados podría tener un atributo de "gerente" que nos remitiera a otro empleado en la misma tabla. Esta es la relación recursiva.

Conexiones adicionales

Los enlaces se consideran redundantes si se expresan más de una vez. Como regla general, uno de ellos se puede eliminar sin perder información importante. Por ejemplo, si la entidad "estudiantes" está conectada a la entidad "profesores" no solo directamente, sino también indirectamente a través de "clases", tiene sentido eliminar la relación entre las entidades "estudiantes" y "profesores". Esta decisión se justifica por el hecho de que es posible asignar estudiantes a profesores solo a través de clases.

4.6 Integridad referencial de los datos

Al cambiar las claves primarias y externas, se debe observar un aspecto como la integridad referencial de los datos . Su idea principal es mantener dos tablas en una base de datos que almacenan los mismos datos de manera consistente.

La integridad de los datos representa relaciones construidas correctamente entre tablas con vínculos correctos entre ellas. En qué casos se puede violar la integridad de los datos:

  • Anomalía de borrado . Ocurre cuando se elimina una fila de la tabla principal. En este caso, la clave externa de la tabla dependiente continúa haciendo referencia a la fila eliminada de la tabla maestra.
  • Anomalía de inserción . Se produce cuando se inserta una fila en una tabla dependiente. En este caso, la clave externa de la tabla dependiente no coincide con la clave principal de ninguna de las filas de la tabla maestra.
  • Anomalía de actualización . Con tal anomalía, varias filas de una tabla pueden contener datos que pertenecen al mismo objeto. Si cambia los datos en una fila, pueden entrar en conflicto con los datos de otra fila.

Anomalía de eliminación

Para resolver la anomalía de eliminación, la clave externa debe establecerse en una de dos restricciones:

Si una fila de una tabla dependiente requiere necesariamente una fila de la tabla maestra, entonces la clave externa se establece en eliminación en cascada. Es decir, cuando se elimina una fila de la tabla maestra, las filas asociadas se eliminan de la tabla dependiente.

Si una fila de una tabla dependiente no permite ninguna relación con una fila de la tabla principal (es decir, dicha relación es opcional), la clave externa se establece en NULL cuando la fila relacionada se elimina de la tabla principal. La columna de clave externa debe ser anulable.

Anomalía de inserción

Para resolver la anomalía de inserción al agregar a una tabla de datos dependientes, la columna que representa la clave externa debe ser anulable. Y, por lo tanto, si el objeto que se agrega no tiene conexión con la tabla principal, la columna de clave externa tendrá un valor NULL.

Actualizar anomalías

Para resolver el problema de anomalía de actualización, se aplica la normalización, que se discutió anteriormente.