Guía de relaciones de tablas

Guía de relaciones de tablas

Uno de los objetivos de un buen diseño de base de datos es eliminar la redundancia de los datos (datos duplicados). Para conseguirlo, conviene desglosar los datos en muchas tablas basadas en temas para que cada hecho esté representado solo una vez. Después, se debe proveer a Access de un medio para recopilar de nuevo la información desglosada (esto se realiza colocando campos comunes en tablas que estén relacionadas). Sin embargo, para realizar este paso correctamente, primero debe conocer las relaciones existentes entre las tablas y, a continuación, especificar dichas relaciones en la base de datos.

En este artí­culo

Introducción

Tipos de relaciones de tablas

¿Por qué crear relaciones de tablas?

Descripción de la integridad referencial

Ver relaciones de tablas

Introducción

Tras crear una tabla para cada tema en la base de datos, es preciso proporcionar a Access un medio para recopilar de nuevo esa información cuando sea necesario. Para ello, se colocan campos comunes en las tablas que estén relacionadas y se definen las relaciones entre las tablas. De ese modo, se pueden crear consultas, formularios e informes que muestren a la vez la información de varias tablas. Por ejemplo, el formulario que se muestra a continuación incluye información recopilada de varias tablas:

Formulario Pedidos que muestra información relacionada de cinco tablas

1. La información de este formulario procede de la tabla Clientes...

2. ... la tabla Pedidos...

3. ... la tabla Productos...

4. ... y la tabla Detalles de pedidos.

El nombre de cliente del cuadro Facturar a se obtiene de la tabla Clientes, los valores de Id. de pedido y Fecha de pedido proceden de la tabla Pedidos, el nombre de producto viene de la tabla Productos, y los valores Precio por unidad y Cantidad proceden de la tabla Detalles del pedido. Estas tablas se vinculan entre sí de varias formas para recopilar información de cada una e incorporarla al formulario.

Siguiendo en el ejemplo anterior, los campos de las tablas deben coordinarse de modo que muestren información acerca del mismo pedido. Esta coordinación se lleva a cabo mediante las relaciones de tablas. Una relación de tabla hace coincidir los datos de los campos clave (a menudo un campo con el mismo nombre en ambas tablas). En la mayoría de los casos, estos campos coincidentes son la clave principal de una tabla, que proporciona un identificador único para cada registro, y una clave externa de la otra tabla. Por ejemplo, los empleados pueden asociarse a los pedidos de los que son responsables mediante la creación de una relación de tabla entre los campos Id. de empleado en las tablas Empleados y Pedidos.

Id. de empleado usado como clave principal en la tabla Empleados y como clave externa en la tabla Pedidos.

1. Id. de empleado aparece en ambas tablas; como clave principal...

2. ... y como clave externa.

Principio de página

Tipos de relaciones de tablas

Existen tres tipos de relaciones de tablas en Access.

  • Una relación uno a varios

    Usemos como ejemplo una base de datos de seguimiento de pedidos que incluya una tabla Clientes y una tabla Pedidos. Un cliente puede realizar cualquier número de pedidos. Por cada cliente representado en la tabla Clientes puede haber representados muchos pedidos en la tabla Pedidos. Por lo tanto, la relación entre la tabla Clientes y la tabla Pedidos es una relación de uno a varios.

    Para representar una relación uno a varios en el diseño de la base de datos, tome la clave principal del lado "uno" de la relación y agréguela como campo o campos adicionales a la tabla en el lado "varios" de la relación. En este caso, por ejemplo, agregaría un nuevo campo (el campo Id. de la tabla Clientes) a la tabla Pedidos y lo denominaría Id. de cliente. Así, Access puede usar el número de identificador del cliente de la tabla Pedidos para dar con al cliente correcto de cada producto.

  • Una relación varios a varios

    Centrémonos ahora en la relación entre una tabla Productos y una tabla Pedidos. Un solo pedido puede incluir varios productos. Por otra parte, un único producto puede aparecer en muchos pedidos. Por tanto, por cada registro de la tabla Pedidos puede haber varios registros en la tabla Productos. Además, por cada registro de la tabla Productos puede haber varios registros en la tabla Pedidos. Esta relación se denomina relación de varios a varios. Tenga en cuenta que para detectar las relaciones de varios a varios existentes entre las tablas, es importante que considere ambas partes de la relación.

    Para representar una relación de varios a varios, debe crear una tercera tabla, a menudo denominada tabla de unión, que divide la relación de varios a varios en dos relaciones uno a varios. Debe insertar la clave principal de cada una de las dos tablas en la tercera. Como resultado, la tercera tabla registra cada ocurrencia, o instancia, de la relación. Por ejemplo, la tabla Pedidos y la tabla Productos tienen una relación varios a varios que se define mediante la creación de dos relaciones uno a varios con la tabla Detalles de pedidos. Un pedido puede incluir muchos productos, y cada producto puede aparecer en muchos pedidos.

  • Una relación uno a uno

    En una relación uno a uno, cada registro de la primera tabla solo puede tener un registro coincidente en la segunda tabla y viceversa. Esta relación no es común porque la mayor parte de las veces la información relacionada de este modo se almacena en la misma tabla. Puede usar la relación uno a uno para dividir una tabla con muchos campos, para aislar parte de una tabla por razones de seguridad o para almacenar información que solo se aplica a un subconjunto de la tabla principal. Cuando identifique esta relación, ambas tablas deben compartir un campo común.

Principio de página

¿Por qué crear relaciones de tablas?

Puede crear relaciones de tablas explícitamente mediante la ventana Relaciones, o bien arrastrando un campo desde el panel Lista de campos. Access usa relaciones de tablas para decidir cómo combinar las tablas si hay que usarlas en un objeto de base de datos. Existen varias razones por las que se deben crear relaciones de tablas antes de crear otros objetos de base de datos, como formularios, consultas e informes.

  • Las relaciones de tabla inspiran los diseños de consulta

    Para trabajar con registros de más de una tabla, a menudo se debe crear una consulta que combine las tablas en cuestión. La consulta compara los valores del campo de clave principal de la primera tabla con el campo de clave externa de la segunda. Por ejemplo, para devolver filas que enumeren todos los pedidos de cada cliente, deberá crear una consulta que combine la tabla Clientes con la tabla Pedidos de acuerdo con el campo Id. de cliente. En la ventana Relaciones, puede especificar manualmente los campos que desea combinar. Sin embargo, si ya tiene definida una relación entre las tablas, Access suministrará la combinación predeterminada según la relación de tabla existente. Además, si usa uno de los asistentes para consultas, Access usará la información recopilada de las relaciones de tablas ya definidas para presentarle selecciones bien fundamentadas y para rellenar de antemano los valores predeterminados de las opciones de la propiedad.

  • Las relaciones de tablas inspiran los diseños de formulario e informe

    Al diseñar un formulario o informe, Access usa la información recopilada de las relaciones de tablas ya definidas para presentarle selecciones bien fundamentadas y para rellenar de antemano los valores predeterminados de las opciones de la propiedad.

  • Las relaciones de tabla son la base con la que exigir integridad referencial y evitar los registros huérfanos en la base de datos. Un registro huérfano es el que hace referencia a otro registro que no existe por ejemplo, un registro de un pedido que hace referencia a un registro de un cliente que no existe.

    Al diseñar una base de datos, la información se divide en tablas y cada una de ellas tiene una clave principal. Después, se agregan claves externas a las tablas relacionadas que hacen referencia a dichas claves principales. Estos pares de clave principal y clave externa forman la base de las relaciones de tabla y de las consultas de varias tablas. Es importante que dichas referencias de clave principal y clave externa estén sincronizadas. La integridad referencial, que depende de las relaciones de tabla, sirve para asegurarse de que las referencias permanezcan sincronizadas.

Volver al principio

Descripción de la integridad referencial

Al diseñar una base de datos, la información se divide en muchas tablas basadas en temas para minimizar la redundancia de los datos. Después, se provee a Access de un medio para recopilar de nuevo la información, colocando campos comunes en tablas relacionadas. Por ejemplo, para representar una relación uno a varios, se toma la clave principal de la tabla "uno" y se agrega como campo adicional a la tabla "varios". Para recopilar de nuevo los datos, Access toma el valor de la tabla "varios" y busca el valor correspondiente en la tabla "uno". De este modo, los valores de la tabla "varios" hacen referencia a los valores correspondientes de la tabla "uno".

Suponga que tiene una relación de uno a varios entre las tablas Transportistas y Pedidos y desea eliminar un transportista. Si el destinatario que desea quitar tiene pedidos en la tabla Pedidos, dichos pedidos quedarán "huérfanos" si elimina el registro Transportista. Los pedidos todavía contendrán un Id. de transportista, pero el Id. ya no será válido, porque el registro al que hace referencia ya no existe.

El propósito de la integridad referencial es evitar los registros huérfanos y mantener las referencias sincronizadas para que esta situación hipotética no ocurra nunca.

Para aplicar la integridad referencial, es preciso habilitarla para una relación de tabla (vea el tema sobre cómo exigir integridad referencial para obtener instrucciones detalladas). Una vez habilitada, Access rechazará todas las operaciones que infrinjan la integridad referencial para esa relación de tabla. Esto significa que Access rechaza las actualizaciones que cambien el destino de una referencia, así como las eliminaciones que quiten el destino de una referencia. Sin embargo, es posible que tenga la necesidad perfectamente válida de cambiar la clave principal de un transportista que tiene pedidos en la tabla Pedidos. Para tales casos, lo que realmente necesita es que Access actualice automáticamente todas las filas afectadas como parte de una única operación. De ese modo, Access se asegura de que la actualización es completa y la base de datos no tiene un estado incoherente, con algunas filas actualizadas y otras no. Por ello, Access incluye la opción Actualizar en cascada los campos relacionados. Cuando se aplica la integridad referencial, se selecciona la opción Actualizar en cascada los campos relacionados y, después, se actualiza una clave principal, Access actualiza automáticamente todos los campos que hagan referencia a la clave principal.

También es posible que tenga la necesidad válida de eliminar una fila y todos los registros relacionados (por ejemplo, un registro Transportista y todos los pedidos relacionados de ese transportista). Por ello, Access incluye la opción Eliminar en cascada los registros relacionados. Si aplica la integridad referencial, selecciona la opción Eliminar en cascada los registros relacionados y, después, elimina un registro en la parte de la clave principal de la relación, Access eliminará automáticamente todos los registros que hagan referencia a la clave principal.

Volver al principio

Ver relaciones de tablas

Para ver las relaciones de tabla, haga clic en Relaciones en la pestaña Herramientas de base de datos. Se abrirá la ventana Relaciones y se mostrarán las relaciones existentes. Si aún no se han definido relaciones de tabla y abre la ventana Relaciones por primera vez, Access le pedirá que agregue una tabla o consulta a la ventana.

Abra la ventana Relaciones.

  1. Haga clic en Archivo y, después, en Abrir.

  2. Seleccione y abra la base de datos.

  3. En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.

    Si la base de datos contiene relaciones, aparecerá la ventana Relaciones. Si la base de datos no contiene relaciones y abre la ventana Relaciones por primera vez, aparecerá el cuadro de diálogo Mostrar tabla. Haga clic en Cerrar para cerrar el cuadro de diálogo.

  4. En la pestaña Diseño, en el grupo Relaciones, haga clic en Todas las relaciones.

    Se mostrarán todas las relaciones definidas en la base de datos. Observe que no se muestran las tablas ocultas (tablas con la casilla de verificación Oculto activada en el cuadro de diálogo Propiedades de la tabla) ni sus relaciones, a menos que esté seleccionada la opción Mostrar objetos ocultos en el cuadro de diálogo Opciones de exploración.

Una relación de tabla se representa mediante una línea de relación trazada entre las tablas en la ventana Relaciones. Una relación que no exige integridad referencial aparece como una línea delgada entre los campos comunes que admiten la relación. Si selecciona la relación haciendo clic en su línea, la línea se hará más gruesa para indicar que está seleccionada. Si exige la integridad referencial, la línea aparecerá más gruesa en los extremos. Además, aparece el número 1 sobre la parte gruesa de un extremo de la línea de relación y aparece el símbolo de infinito () en la parte gruesa del otro extremo de la línea.

Cuando la ventana Relaciones está activa, puede seleccionar los siguientes comandos de la cinta:

En la pestaña Diseño, en el grupo Herramientas:

  • Modificar relaciones    Abre el cuadro de diálogo Modificar relaciones . Si selecciona una línea de relación, puede hacer clic en Modificar relaciones para cambiar la relación de tabla. También puede hacer doble clic en la línea de relación.

  • Borrar diseño    Oculta a la vista todas las relaciones y tablas en la ventana Relaciones. Observe que este comando solo oculta las relaciones y tablas, no las elimina.

  • Informe de relación    Crea un informe que muestra las relaciones y tablas de la base de datos. El informe solo muestra todas las relaciones y tablas que no están ocultas en la ventana Relaciones.

En la pestaña Diseño, en el grupo Relaciones:

  • Mostrar tabla    Abre el cuadro de diálogo Mostrar tabla para que pueda seleccionar tablas y consultas para verlas en la ventana Relaciones.

  • Ocultar tabla    Oculta la tabla seleccionada en la ventana Relaciones.

  • Relaciones directas    Muestra todas las relaciones y tablas relacionadas de la tabla seleccionada en la ventana Relaciones, si aún no se muestran.

  • Mostrar todas las relaciones    Muestra todas las relaciones y tablas relacionadas de la base de datos en la ventana Relaciones. Observe que las tablas ocultas (las tablas que tienen activada la casilla de verificación Oculto del cuadro de diálogo Propiedades de la tabla) y sus relaciones no se mostrarán a no ser que esté activada la casilla de verificación Mostrar objetos ocultos en el cuadro de diálogo Opciones de navegación.

  • Cerrar    Cierra la ventana Relaciones. Si realiza algún cambio en el diseño de la ventana Relaciones, le pedirá que guarde los cambios.

Principio de página

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×