Las relaciones entre tablas de una base de datos (pueden relacionarse dos o más tablas) son usadas para mantener una integridad en los datos denominada integridad referencial.
Para explicarlo de forma muy básica y sencilla, cuando se crean relaciones entre tablas se impide entre otras cosas, que puedan existir datos en una tabla si no existen también en otra tabla de la que depende.
Normalmente las relaciones se definen al crear las tablas, pudiéndose especificar también al diseñar una consulta.
Para crear relaciones entre tablas haremos clic en el icono Relaciones que se halla en la pestaña Herramientas de bases de datos:
Se abrirá un cuadro de diálogo en el que seleccionaremos las tablas que queremos relacionar y pulsaremos en el botón Agregar:
Para relacionar dos tablas, pincharemos sobre el campo sobre el que vamos a hacer la relación y arrastraremos hasta el campo a relacionar con la otra tabla.
IMPORTANTE: ambos campos han de ser del mismo tipo (si uno es por ejemplo numérico entero, el otro lo deberá ser también).
Los campos que sean clave principal o primaria los veremos con una a su izquierda.
En la imagen de ejemplo ejemplo relacionamos el campo 'idProvincia' de la tabla 'Clientes' con el campo 'id' de la tabla 'Provincias'.
Al tener marcada la casilla Exigir integridad referencial permitirá según el ejemplo, que cuando introduzcamos un código de cliente en la segunda tabla, deberá estar previamente también en la primera.
Por ejemplo, no podremos introducir un registro en 'Clientes' si el valor que introduzcamos en el campo 'idProvincia' no existe en la tabla 'Provincias'.
El marcar la opción Actualizar en cascada los campos relacionados permite que cuando se actualice un dato en la tabla origen se modifique automáticamente en la tabla destino.
Por ejemplo, si modificamos el valor del campo 'Id' de un registro de la tabla 'Provincias', se actualizarán en 'Clientes' todos los registros relacionados a través del campo 'idProvincia'.
Activando la opción Eliminar en cascada haremos que al borrar un código de la tabla principal se borren todos los registros con el ese código en la otra tabla.
Por ejemplo, si eliminamos un registro en la tabla 'Provincias', se eliminarán en 'Clientes' todos los registros relacionados a través del campo 'idProvincia'.
Una vez hechas las relaciones veremos una línea que muestra los campos relacionados, tal y como vemos en la imagen:
Según la teoría de bases de datos, los tipos de relaciones entre tablas pueden ser:
-
Uno a uno (1:1): un determinado registro de una tabla puede estar relacionado sólo con un registro en la otra tabla.
Ejemplo: un registro de la tabla 'PERSONA' puede estar relacionado sólo con un registro de la tabla 'PARTIDA_NACIMIENTO', y a su vez un registro de 'PARTIDA_NACIMIENTO' puede estar sólo relacionado con un registro de 'PERSONA' (una partida de nacimiento pertenece sólo a una persona).
-
Uno a varios (1:N) / varios a uno (N:1): un determinado registro de una tabla puede estar relacionado con uno o varios registros en la otra tabla.
Ejemplo: un registro de la tabla 'CENTRO' puede estar relacionado con uno o varios registros de la tabla 'ALUMNOS', y un registro de 'ALUMNOS' sólo puede estar relacionado con uno de 'CENTRO' (un alumno sólo puede pertenecer a un centro).
-
Varios a varios (N:M): uno o varios registros de una tabla pueden estar relacionado con uno o varios registros en la otra tabla.
Ejemplo: un registro de la tabla 'PERSONAS' puede estar relacionado con uno o varios registros de la tabla 'PAÍSES' (una persona puede tener varias nacionalidades), y a su vez un registro de 'PAÍSES' puede estar relacionado con uno o varios registros de 'PERSONAS' (varias personas pertenecen a un determinado país).
Si hacemos clic en el botón Tipo de combinación que mostrará la siguiente ventana en la que podremos especificar algunas características.
Si seleccionamos las opciones '2' o '3' sólo se incluirán los registros de una de las tablas, mientras en la otra sólo se incluirán los que se indiquen en cada caso.
Para que Access 2010 nos muestre el cuadro de diálogo Modificar relaciones hemos de hacer clic con el botón derecho sobre la línea que muestra la relación entre las tablas y seleccionar la opción Modificar relación.
Para eliminar una relación tan sólo hemos de hacer clic sobre la línea que muestra la relación entre las tablas, y pulsar la tecla Supr.