MS Access: datos relacionados

En este capítulo, comprenderemos los conceptos básicos de la relación de datos. Antes de hablar y crear relaciones entre diferentes datos, repasemos por qué los necesitamos. Todo vuelve a la normalización.

Normalización

La normalización de la base de datos, o simplemente normalización, es el proceso de organizar columnas (atributos) y tablas (relaciones) de una base de datos relacional para minimizar la redundancia de datos. Es el proceso de dividir datos en varias tablas para mejorar el rendimiento general, la integridad y la longevidad.

  • La normalización es el proceso de organizar datos en una base de datos.

  • Esto incluye crear tablas y establecer relaciones entre esas tablas de acuerdo con reglas diseñadas tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y la dependencia inconsistente.

Veamos ahora la siguiente tabla que contiene datos, pero el problema es que estos datos son bastante redundantes, lo que aumenta las posibilidades de errores tipográficos y frases inconsistentes durante la entrada de datos.

CustID Nombre Habla a Galleta Cantidad Precio Total
1 Ethel Smith 12 Main St, Arlington, VA 22201 S Chispas de chocolate 5 $ 2,00 $ 10,00
2 Tom Wilber 1234 Oak Dr., Pekin, IL 61555 Chip de chocolate 3 $ 2,00 $ 6,00
3 Ethil Smithy 12 Main St., Arlington, VA 22201 Chispas de chocolate 5 $ 2,00 $ 10,00

Para resolver este problema, necesitamos reestructurar nuestros datos y dividirlos en varias tablas para eliminar algunas de esas redundancias, como se muestra en las siguientes tres tablas.

Aquí tenemos una tabla para Clientes, la es para Pedidos y la es para Cookies.

El problema aquí es que el simple hecho de dividir los datos en varias tablas no ayudará a saber cómo se relacionan los datos de una tabla con los datos de otra tabla. Para conectar datos en varias tablas, tenemos que agregar claves externas alOrders mesa.

Definición de relaciones

Una relación funciona al hacer coincidir datos en columnas clave, generalmente columnas con el mismo nombre en ambas tablas. En la mayoría de los casos, la relación coincide con la clave principal de una tabla, que proporciona un identificador único para cada fila, con una entrada en la clave externa de la otra tabla. Hay tres tipos de relaciones entre tablas. El tipo de relación que se crea depende de cómo se definen las columnas relacionadas.

Veamos ahora los tres tipos de relaciones:

Relaciones uno a muchos

Una relación de uno a varios es el tipo de relación más común. En este tipo de relación, una fila de la tabla A puede tener muchas filas coincidentes en la tabla B, pero una fila de la tabla B solo puede tener una fila coincidente en la tabla A.

Por ejemplo, las tablas Clientes y Pedidos tienen una relación de uno a muchos: cada cliente puede realizar muchos pedidos, pero cada pedido proviene de un solo cliente.

Relaciones de varios a varios

En una relación de varios a varios, una fila de la tabla A puede tener muchas filas coincidentes en la tabla B y viceversa.

Se crea una relación de este tipo definiendo una tercera tabla, llamada junction table, cuya clave principal consta de las claves externas de la tabla A y la tabla B.

Por ejemplo, la tabla Clientes y la tabla Cookies tienen una relación de varios a varios que se define mediante una relación de uno a varios de cada una de estas tablas a la tabla Pedidos.

Relaciones uno a uno

En una relación de uno a uno, una fila de la tabla A no puede tener más de una fila coincidente en la tabla B y viceversa. Se crea una relación uno a uno si ambas columnas relacionadas son claves primarias o tienen restricciones únicas.

Este tipo de relación no es común porque la mayor parte de la información relacionada de esta manera estaría toda en una tabla. Puede utilizar una relación uno a uno para:

  • Divida una tabla en varias columnas.
  • Aísle parte de una tabla por razones de seguridad.
  • Almacene datos de corta duración y que podrían eliminarse fácilmente simplemente eliminando la tabla.
  • Almacene información que se aplique solo a un subconjunto de la tabla principal.