Relaciones entre las tablas en Access 2007

Para que la base de datos funcione correctamente no basta con crear las distintas tablas que van a contener la información que deseamos almacenar en la misma. Estas tablas deberían estar relacionadas. De hecho toda la información que incluiremos en la base de datos, seguramente tendrá algún tipo de relación.

Sin embargo, este punto es el que puede considerarse más complicado dentro del diseño de bases de datos. Exige un amplio y profundo estudio para que las relaciones establecidas sean las más eficaces. En muchos libros de texto y tutoriales se pasa por alto este punto o se trata mínimamente, pero en este curso deseamos darle la atención que merece.

Plantearemos en primer lugar las distintas relaciones lógicas que se pueden encontrar y, posteriormente, veremos cómo implementar estas relaciones mediante las herramientas que nos ofrece el programa Access.


Tipos de relaciones:

  • Uno a uno: relación en la que UN registro de una tabla está relacionado con UN único registro de otra tabla.
Ejemplo:

Relaciones Access uno a uno

En este ejemplo un registro de la tabla Estudiantes se relaciona con un único registro de la tabla Padres.
  • Uno a varios: relación entre dos tablas en la que UN registro de una de ellas está relacionado con VARIOS registros de la otra.
Ejemplo:

Relaciones Access uno a varios

En este ejemplo un registro de la tabla Clientes se relaciona con varios registros de la tabla Pedidos.
  • Varios a varios: relación en la que UN registro de una tabla está relacionado con VARIOS registros de la otra y viceversa (sería como la relación anterior, pero leída en los dos sentidos)
Ejemplo:

Relaciones Access varios a varios


En este ejemplo cada registro de la tabla Productos se relaciona con varios registros de la tabla Pedidos y, ademas, cada registro de la tabla Pedidos se relaciona con varios registros de la tabla Productos.

Relaciones en Access

Después de comentar teóricamente los tipos de relaciones existentes veamos cómo las implementaríamos en Access. Para ello accedemos a la opción Relaciones de la ficha Herramientas de base de datos. Añadiremos en la ventana que aparece las tablas que deseamos relacionar. Podemos arrastrar las tablas desde el panel de exploración o usar el botón Mostrar tabla de la ficha Diseño
  • Uno a uno: este tipo de relación se realizará uniendo dos campos, uno de cada tabla, que contendrán el mismo tipo de información. Serán dos campos que tendrán el mismo tipo de datos y las mismas características (el nombre puede ser distinto). Además estos campos deben ser únicos en su tabla, es decir, no pueden haber varios registros con el mismo dato en este campo. Podemos utilizar, por tanto, las claves principales si estas contienen el mismo tipo de información en las dos tablas.
Para realizar la unión física pulsamos con el ratón sobre uno de los campos y lo arrastramos hasta el otro. Al soltar el ratón nos aparecerá el siguiente cuadro de diálogo:

Relaciones Access uno a uno

Mediante este cuadro de diálogo podemos crear las relaciones. En este caso, al haber seleccionado dos campos que son únicos en su tabla, el tipo de relación será Uno a uno (como indica en la parte inferior del cuadro de diálogo).

Podemos exigir integridad referencial a la relación. Esto garantiza que cualquier registro siempre se va a relacionar con otros registros existentes y válidos. Si pulsamos esta opción además podremos Actualizar en cascada los campos relacionados y eliminar en cascada los registros relacionados. De esta manera si se modifican los datos en una tabla se modificarán también en la tabla con la que está relacionada.

Cuando pulsamos sobre el botón crear nos aparecen las tablas relacionadas.

  • Uno a varios: este tipo de relación se realizará uniendo dos campos, uno de cada tabla, que contendrán el mismo tipo de información. Serán dos campos que tendrán el mismo tipo de datos y las mismas características (el nombre puede ser distinto). Además UNO de estos campo debe ser único en su tabla, es decir, no pueden haber varios registros con el mismo dato en este campo. Normalmente se utiliza la clave principal.
Usamos el mismo método comentado anteriormente para unir físicamente estos dos campos. Observaremos que, en esta ocasión, en el cuadro de diálogo Modificar relaciones aparece el tipo de relación Uno a varios.

Relaciones Access uno a varios

  • Varios a varios: este tipo de relación no puede ser implementada directamente en la base de datos. Por eso, para que entre dos tablas exista una relación varios a varios, crearemos una tabla intermedia que nos permita crear dos relaciones uno a varios. Esta tabla intermedia debe tener, al menos, dos campos que contendrán el mismo tipo de información que las claves principales de las tablas que queremos relacionar, tendrán el mismo tipo de datos y las mismas características. Además estos dos campos serán claves principales de la nueva tabla creada. 
Relaciones Access varios a varios


Como podemos ver en el ejemplo, esta tabla intermedia, creada a propósito para que exista esta relación varios a varios, contiene dos claves principales que son una "copia" de las claves principales de las tablas que queremos relacionar. Además puede contener otros campos si lo vemos necesario.

De esta manera, podremos crear dos relaciones uno a varios entre esta tabla intermedia y las dos tablas que deseábamos relacionar originalmente. En definitiva, por tanto, tenemos una relación varios a varios entre las dos tablas iniciales.

¿Cómo utilizar las relaciones?

La verdad es que todo esto puede parecer un poco lioso pero, es cuestión de práctica llegar a controlarlo. Ante un problema real, diseñaremos las tablas que creamos necesarias para almacenar toda la información. Posteriormente estudiaremos las relaciones que deseamos que existan entre las tablas. Y, dependiendo del caso, aplicaremos uno de los tipos de relaciones explicados aquí.

Llegados a este punto es más que recomendable el practicar lo estudiado mediante algunos ejercicios. Se han planteado cuatro distintos ejercicios a fin de que quede claro cómo diseñar las tablas de una base de datos y cómo relacionarlas.

Ejercicio 1: BIBLIOTECA. Objetivo: Crear y relacionar tablas.
Ejercicio 2: VIDEOCLUB. Objetivo: Crear y relacionar tablas.
Ejercicio 3: PEDIDOS CLIENTES. Objetivo: Crear y relacionar tablas.
Ejercicio 4: Distribuir la información en tablas y relacionarlas.