Cómo definir relaciones entre tablas de una base de datos de Access

Seleccione idioma Seleccione idioma
Id. de artículo: 304466 - Ver los productos a los que se aplica este artículo
Principiante: se requieren conocimientos de la interfaz de usuario en equipos de usuario único.

Este artículo se aplica únicamente a las bases de datos de Microsoft Access (.accdb o .mdb).
Para obtener una versión de este artículo para Microsoft Access 2000, consulte 304467.
Para obtener una versión de este artículo para Microsoft Access 97, consulte 304468.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo definir las relaciones en una base de datos de Microsoft Access. El artículo incluye los temas siguientes:
  • ¿Qué son las relaciones de tabla?
  • Tipos de relaciones de tabla
    • Relaciones de uno a varios
    • Relaciones de varios a varios
    • Relaciones de uno a uno
  • Cómo definir relaciones entre tablas
    • Cómo definir una relación de uno a varios o de uno a uno
    • Cómo definir una relación de varios a varios
  • Integridad referencial
  • Actualizaciones y eliminaciones en cascada
  • Tipos de combinaciones

Más información

¿Qué son las relaciones de tabla?

Contraer esta imagenAmpliar esta imagen
assets folding start collapsed
En una base de datos relacional, las relaciones permiten evitar los datos redundantes. Por ejemplo, si está diseñando una base de datos que realizará el seguimiento de información sobre libros, podría tener una tabla denominada "Títulos" que almacene los datos de cada libro, por ejemplo el título, la fecha de publicación y el editor. También hay información que podría desear almacenar sobre el editor, como su número de teléfono, dirección y código postal. Si fuera a almacenar toda esta información en la tabla "Títulos", el número de teléfono del editor se duplicaría para cada título que el editor imprimiera.

Una solución más conveniente es almacenar solo una vez la información del editor en una tabla independiente que se llamara "Editores". Colocaría entonces un puntero en la tabla "Títulos" que hiciera referencia a una entrada de la tabla "Editores".

Para asegurarse de que los datos se mantienen sincronizados, puede forzar la aplicación de integridad referencial entre tablas. Las relaciones de integridad referencial ayudan a garantizar que la información de una tabla coincida con la de otra. Por ejemplo, cada título de la tabla "Títulos" debe estar asociado a un editor concreto de la tabla "Editores". No se puede agregar un título a la base de datos para un editor que no exista en ella.

Las relaciones lógicas de una base de datos le permiten consultar datos y crear informes de manera eficiente.
Contraer esta imagenAmpliar esta imagen
assets folding end collapsed

Tipos de relaciones de tabla

Contraer esta imagenAmpliar esta imagen
assets folding start collapsed
Una relación se establece haciendo coincidir los datos de las columnas de clave, normalmente las columnas (o campos) con el mismo nombre en ambas tablas. En la mayor parte de los casos, la relación conecta la clave principal (o la columna del identificador único de cada fila) desde una tabla a un campo de otra tabla. La columna de la otra tabla se conoce como "clave externa". Por ejemplo, si desea realizar el seguimiento de las ventas de los diferentes títulos, puede crear una relación entre la columna de la clave principal (llamémosla Id_título) de la tabla "Títulos" y una columna en la tabla "Ventas" que se llame Id_título. La columna Id_título de la tabla "Ventas" es la clave externa.

Existen tres tipos de relaciones entre tablas. El tipo de relación que se crea depende de cómo se definan las columnas relacionadas.

Relaciones de uno a varios

La relación de uno a varios es el tipo 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 "Editores" y "Títulos" tienen una relación de uno a varios. Es decir, cada editor produce muchos títulos. Pero a cada título le corresponde solo un editor.

Una relación uno a varios se crea si sólo una de las columnas relacionadas es una clave principal o tiene una restricción UNIQUE.

En la ventana de relaciones de Access, el lado de la clave principal de una relación de uno a varios se denota mediante un número 1. El lado de la clave externa de una relación se denota con un símbolo de infinito.

Contraer esta imagenAmpliar esta imagen
2890902


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. Este tipo de relación se crea definiendo una tercera tabla, denominada de unión. La clave principal de dicha tabla de unión está compuesta de las claves externas de ambas tablas A y B. Por ejemplo, la tabla "Autores" y la tabla "Títulos" 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 "TítuloAutores". La clave principal de la tabla "TítuloAutores" es la combinación de la columna Id_au (la clave principal de la tabla "Autores") y de la columna Id_título (la clave principal de la tabla "Títulos").

Contraer esta imagenAmpliar esta imagen
2890903


Relaciones de uno a uno

En una relación uno a uno, una fila de la tabla A no puede tener más de una fila coincidente en la tabla B y viceversa. Una relación uno a uno se crea si las dos columnas relacionadas son las claves principales o tiene restricciones UNIQUE.

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. Podría utilizar una relación de uno a uno para realizar las siguientes acciones:
  • Dividir una tabla con muchas columnas.
  • Aislar parte de una tabla por razones de seguridad.
  • Almacenar los datos efímeros y que podrían eliminarse con facilidad eliminando la tabla.
  • Almacenar la información que sólo se aplica a un subconjunto de la tabla principal.
En Access, el lado de la clave principal de una relación uno a varios se denota mediante un símbolo de clave. Un símbolo de clave denota también el lado de la clave externa.
Contraer esta imagenAmpliar esta imagen
assets folding end collapsed

Cómo definir relaciones entre tablas

Contraer esta imagenAmpliar esta imagen
assets folding start collapsed
Al crear una relación entre tablas, no es necesario que los campos relacionados tengan los mismos nombres. Sin embargo, deben tener el mismo tipo de datos a menos que el campo de clave principal sea un campo Autonumérico. Sólo puede hacer coincidir un campo Autonumérico con un campo Número si la propiedad TamañoDelCampo de ambos de los campos correspondientes es la misma. Por ejemplo, puede hacer coincidir un campo Autonumeración y un campo Número si la propiedad TamañoDelCampo de ambos campos es Entero largo. Incluso aunque ambos campos coincidentes sean campos Número, deben tener el mismo valor para la propiedad TamañoDelCampo.

Cómo definir una relación de uno a varios o de uno a uno

Para crear una relación de uno a varios o de uno a uno, siga estos pasos:
  1. Cierre todas las tablas. No puede crear ni modificar las relaciones entre las tablas abiertas.
  2. En Access 2002 o Access 2003, siga estos pasos:
    1. Presione F11 para pasar a la ventana Base de datos.
    2. En el menú Herramientas, haga clic en Relaciones.

    En Access 2007, Access 2010 o Access 2013, haga clic en Relaciones en el grupo Mostrar u ocultar de la pestaña Herramientas de base de datos.
  3. Si no ha definido todavía ninguna relación en la base de datos, el cuadro de diálogo Mostrar tabla aparece automáticamente. Si desea agregar las tablas que desea relacionar, pero no se muestra el cuadro de diálogo Mostrar tabla, haga clic en Mostrar tabla en el menú Relaciones.
  4. Haga doble clic en los nombres de las tablas que desea relacionar y, a continuación, cierre el cuadro de diálogo Mostrar tabla. Para crear una relación entre una tabla y ella misma, agregue dos veces esa tabla.
  5. Arrastre el campo que desea relacionar de una tabla con el campo relacionado de la otra. Para arrastrar varios campos, presione Ctrl, haga clic en cada campo y, a continuación, arrástrelos.

    En la mayoría de los casos, arrastra el campo de clave principal (que se muestra en texto en negrita) de una tabla hacia un campo similar (a menudo con el mismo nombre) denominado la clave externa de la otra tabla.
  6. Aparecerá el cuadro de diálogo Modificar relaciones. Asegúrese de que los nombres de campo que se muestran en las dos columnas son correctos. Puede cambiar los nombres si fuera necesario.

    Establezca las opciones de la relación si fuera necesario. Si necesita información acerca de un elemento específico del cuadro de diálogo Modificar relaciones, haga clic en el botón de signo de interrogación y, a continuación, haga clic en el elemento. Estas opciones se explicarán en detalle posteriormente en este artículo.
  7. Haga clic en Crear para crear la relación.
  8. Repita los pasos de 4 a 7 para cada par de tablas que desee relacionar.

    Al cerrar el cuadro de diálogo Modificar relaciones, Access pregunta si desea guardar el diseño. Tanto si guarda el diseño como si no, las relaciones que cree se guardan en la base de datos.

    Nota: puede crear relaciones no solo en tablas, sino también en consultas. Sin embargo, la integridad referencial no se exige con las consultas.

Cómo definir una relación de varios a varios

Para crear una relación de varios a varios, siga estos pasos:
  1. Cree las dos tablas que tendrán la relación varios a varios.
  2. Cree una tercera tabla. Se trata de la tabla de unión. En la tabla de unión, agregue nuevos campos que tengan las mismas definiciones que los campos de la clave principal de cada tabla que haya creado en el paso 1. En la tabla de unión, los campos de clave principal funcionan como claves externas. Puede agregar otros campos a la tabla de unión, así como a cualquier otra tabla.
  3. En la tabla de unión, establezca la clave principal para incluir los campos de clave principal de las otras dos tablas. Por ejemplo, en una tabla de unión "TítuloAutores", la clave principal se compondría de los campos IdPedido e IdProducto.

    Nota: para crear una clave principal, siga estos pasos:
    1. Abra una tabla en la vista Diseño.
    2. Seleccione el campo o campos que desee definir como clave principal. Para seleccionar un campo, haga clic en el selector de fila del campo deseado. Para seleccionar varios campos, mantenga presionada la tecla Ctrl y, a continuación, haga clic en el selector de fila para cada campo.
    3. En Access 2002 o en Access 2003, haga clic en Clave principal en la barra de herramientas.

      En Access 2007, haga clic en Clave principal en el grupo Herramientas de la ficha Diseño.

      Nota: si desea que el orden de los campos de una clave principal de varios campos sea diferente del orden de esos campos en la tabla, haga clic en Índices en la barra de herramientas para mostrar el cuadro de diálogo Índices y, a continuación, cambie el orden de los nombres de campo del índice denominado ClavePrimaria.
  4. Definir una relación de uno a varios entre cada tabla principal y la tabla de unión.
Contraer esta imagenAmpliar esta imagen
assets folding end collapsed

Integridad referencial

Contraer esta imagenAmpliar esta imagen
assets folding start collapsed
La integridad referencial es un sistema de reglas que Access utiliza para garantizar que las relaciones entre los registros de tablas relacionadas son válidas y que no elimina o cambia accidentalmente los datos relacionados. Puede establecer la integridad referencial cuando se cumplan todas las condiciones siguientes:
  • El campo coincidente de la tabla principal es una clave principal o tiene un índice único.
  • Los campos relacionados tienen el mismo tipo de datos. Hay dos excepciones. Un campo Autonumeración se puede relacionar con un campo Número mediante un valor Entero largo en la propiedad TamañoDelCampo, y un campo Autonumeración con un Id. de replicación como valor de la propiedad TamañoDelCampo puede relacionarse con un campo Número con un Id. de replicación como valor de la propiedad TamañoDelCampo.
  • Ambas tablas pertenecen a la misma base de datos de Access. Si las tablas son tablas vinculadas, deben estar en formato de Access, y debe abrir la base de datos en la que están almacenadas para establecer la integridad referencial. La integridad referencial no se puede exigir para tablas vinculadas de bases de datos de otros formatos.
Las reglas siguientes se aplican al utilizar la integridad referencial:
  • No puede especificar un valor en el campo de clave externa de la tabla relacionada que no exista en la clave principal de la tabla principal. Sin embargo, puede introducir un valor nulo en la clave externa. Esto especifica que los registros no están relacionados. Por ejemplo, no puede tener un pedido asignado a un cliente que no existe. Sin embargo, puede tener un pedido que no esté asignado a nadie; para ello, escriba un valor nulo en el campo IdCliente.
  • No puede eliminar un registro de una tabla principal si hay registros coincidentes en una tabla relacionada. Por ejemplo, no puede eliminar un registro de empleado de la tabla "Empleados" si hay pedidos asignados al empleado en la tabla "Pedidos".
  • No puede cambiar un valor de clave principal en la tabla principal si ese registro tiene registros relacionados. Por ejemplo, no puede cambiar el identificador de un empleado de la tabla "Empleados" si hay pedidos asignados a ese empleado en la tabla "Pedidos".
Contraer esta imagenAmpliar esta imagen
assets folding end collapsed

Actualizaciones y eliminaciones en cascada

Contraer esta imagenAmpliar esta imagen
assets folding start collapsed
En las relaciones en las que se exige la integridad referencial, puede especificar si desea que Access actualice o elimine en cascada automáticamente los registros relacionados. Si establece estas opciones, se permiten las operaciones de actualización y eliminación que normalmente se impedirían con las reglas de la integridad referencial. Al eliminar registros o cambiar los valores de clave principal de una tabla principal, Access realiza los cambios necesarios en las tablas relacionadas para preservar la integridad referencial.

Si activa la casilla Actualizar en cascada los campos relacionados al definir una relación, siempre que cambia la clave principal de un registro en la tabla principal, Microsoft Access actualiza automáticamente la clave principal con el nuevo valor en todos los registros relacionados. Por ejemplo, si cambia el identificador de un cliente en la tabla "Clientes", el campo IdCliente de la tabla "Pedidos" se actualiza automáticamente para cada uno de los pedidos de ese cliente, de modo que no se interrumpa la relación. Access realiza las actualizaciones en cascada sin mostrar ningún mensaje.

Nota: si la clave principal de la tabla principal es un campo Autonumeración, activar la casilla Actualizar en cascada los campos relacionados no tendrá ningún efecto, porque no puede cambiar el valor en un campo Autonumeración.

Si activa la casilla Eliminar en cascada los campos relacionados al definir una relación, siempre que elimine registros de la tabla principal, Access eliminará automáticamente los registros relacionados de la tabla relacionada. Por ejemplo, si elimina un registro de cliente en la tabla "Cliente", todos los pedidos del cliente se eliminan automáticamente de la tabla "Pedidos" (esto incluye los registros de la tabla "Detalles de pedidos" relacionada con los registros de "Pedidos"). Al eliminar los registros de un formulario u hoja de datos con la casilla Eliminar en cascada los campos relacionados activada, Access le advierte que también se pueden eliminar los registros relacionados. Sin embargo, al eliminar registros con una consulta de eliminación, Access elimina automáticamente los registros de las tablas relacionadas sin mostrar una advertencia.
Contraer esta imagenAmpliar esta imagen
assets folding end collapsed

Tipos de unión

Contraer esta imagenAmpliar esta imagen
assets folding start collapsed
Existen tres tipos de unión. Puede verlos en la siguiente captura de pantalla:

Contraer esta imagenAmpliar esta imagen
2890904


La opción 1 define una combinación interna. Una combinación interna es aquella en la que los registros de dos tablas se combinan en los resultados de una consulta solo si los valores de los campos combinados cumplen una condición especificada. En una consulta, la combinación predeterminada es una combinación interna que sólo selecciona los registros si los valores de los campos combinados coinciden.

La opción 2 define una combinación externa izquierda. Una combinación externa izquierda es aquella en la que todos los registros del lado izquierdo de la operación LEFT JOIN de la instrucción SQL de la consulta se agregan a los resultados de la consulta, aun cuando no haya ningún valor correspondiente en el campo combinado de la tabla de la derecha.

La opción 3 define una combinación externa derecha. Una combinación externa derecha es aquella en la que todos los registros del lado derecho de la operación RIGHT JOIN de la instrucción SQL de la consulta se agregan a los resultados de la consulta, aun cuando no haya ningún valor coincidente en el campo combinado de la tabla de la izquierda.
Contraer esta imagenAmpliar esta imagen
assets folding end collapsed
Nota: es un artículo de "PUBLICACIÓN RÁPIDA" creado directamente por la organización de soporte técnico de Microsoft. La información aquí contenida se proporciona como está, como respuesta a problemas que han surgido. Como consecuencia de la rapidez con la que lo hemos puesto disponible, los materiales podrían incluir errores tipográficos y pueden ser revisados en cualquier momento sin previo aviso. Vea las Condiciones de uso para otras consideraciones

Propiedades

Id. de artículo: 304466 - Última revisión: jueves, 19 de septiembre de 2013 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft Access 2013
  • Microsoft Access 2010
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palabras clave: 
kbdesign kbdatabase kbhowto KB304466

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com