ACC2000: Definir relaciones entre tablas en una base de datos de Microsoft Access

Seleccione idioma Seleccione idioma
Id. de artículo: 304467 - 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.

En este artículo sólo se aplica a una base de datos de Microsoft Access (.mdb).

Expandir todo | Contraer todo

En esta página

Resumen

Este artículo describe cómo definir las relaciones en una base de datos de Microsoft Access. Se incluyen los siguientes temas:
  • Qué son las relaciones entre tablas
  • Tipos de relaciones entre tablas
    • Relaciones uno a varios
    • Relaciones de varios a varios
    • Relaciones uno a uno

  • Cómo definir las relaciones entre tablas
    • Cómo definir una relación uno a varios o uno a uno
    • Cómo se definen varios a varios relaciones

  • Integridad referencial
  • Eliminaciones y actualizaciones en cascada
  • Combinar los tipos

Más información

Qué son las relaciones entre tablas

En una base de datos relacional, las relaciones permiten evitar datos redundantes. Por ejemplo, si está diseñando una base de datos que realizará un seguimiento de información acerca de los libros, es posible que tiene una tabla llamada Titles que almacena información acerca de cada libro, por ejemplo, el libro? s título, la fecha de publicación y publisher. También hay información que puede desear almacenar sobre la editorial, por ejemplo, el número de teléfono, dirección y código postal. Si tuviera que almacenar toda esta información en los títulos de tabla, el publicador? s número de teléfono se duplicaría por cada título impreso de la editorial.

Una solución mejor es almacenar la información del editor una sola vez en una tabla independiente, Publishers. A continuación, podría situar un puntero en la tabla Titles que haga referencia a una entrada en la tabla Publishers.

Para asegurarse de que sus datos no están sincronizados, puede exigir integridad referencial entre las tablas Titles y Publishers. Las relaciones de integridad referencial ayudan a garantizar que la información de una tabla coincide con la información de otra. Por ejemplo, cada título de la tabla Titles debe asociarse con un editor específico de la tabla Publishers. No se puede agregar un título a la base de datos de un editor que no existe en la base de datos.

Tipos de relaciones entre tablas

Una relación hace coincidir los datos de las columnas de clave, normalmente columnas que tienen el mismo nombre en ambas tablas. En la mayoría de los casos, la relación hace coincidir la clave principal de una tabla, que proporciona un identificador único para cada fila, con una entrada de la clave externa de la otra tabla. Por ejemplo, ventas pueden asociarse con los títulos específicos vendidos mediante la creación de una relación entre la columna title_id de la tabla Titles (la clave principal) y la columna title_id de la tabla de ventas (clave externa).

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

Relaciones uno a varios

Una relación uno a varios es el tipo más común de relación. En este tipo de relación, una fila en la tabla A puede corresponderse con muchas filas de la tabla B, pero una fila en la tabla B puede tener sólo una fila coincidente en la tabla A. Por ejemplo, las tablas Publishers y Titles tienen una relación uno a varios: una editorial publica muchos títulos, pero cada título le corresponde sólo una editorial.

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

En Access, el lado de la clave principal de una relación uno a varios se denota mediante un símbolo de clave. El lado de clave externa de una relación se indica mediante un símbolo de infinito.

Relaciones de varios a varios

En una relación varios a varios, una fila de la tabla A puede tener muchas filas coincidentes en la tabla B y viceversa. Para crear este tipo de relación, defina una tercera tabla, denominada tabla de unión, cuya clave principal consta de las claves externas de las tablas A y B. Por ejemplo, la tabla Authors y la tabla Titles tienen una relación de varios a varios definida por una relación de uno a varios entre cada una de estas tablas a la tabla TitleAuthors. La clave principal de la tabla TitleAuthors es la combinación de la columna au_id (la tabla authors? s clave principal) y la columna title_id (la tabla Titles? s clave principal).

Relaciones uno a uno

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

Este tipo de relación no es común porque la mayoría de los información relacionada de esta manera estaría toda en una tabla. Puede utilizar una relación uno a uno para:
  • Dividir una tabla con muchas columnas.
  • Aislar parte de una tabla por razones de seguridad.
  • Almacenar datos que son efímeros y pueden eliminarse fácilmente con tan sólo suprimir 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 uno se denota mediante un símbolo de clave. El lado de clave externa también se indica mediante un símbolo de clave.

Cómo definir las relaciones entre tablas

Cuando se crea una relación entre tablas, no es necesario que los campos relacionados tienen el mismo nombre. Sin embargo, los campos relacionados deben tener los mismos tipo de datos a menos que el campo de clave principal es un campo Autonumérico. Puede relacionar un campo Autonumérico con un campo numérico sólo si la propiedad TamañoDelCampo (FieldSize) de ambos de los dos campos relacionados es la misma. Por ejemplo, se pueden relacionar un campo Autonumérico y un campo numérico si la propiedad TamañoDelCampo (FieldSize) de ambos campos es entero largo. Incluso si dos campos relacionados son campos numéricos, deben tener el mismo valor de la propiedad TamañoDelCampo (FieldSize) .

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

Para crear uno a varios o en una relación uno a uno, siga estos pasos:
  1. Cierre todas las tablas que ha abierto. No se puede crear o modificar las relaciones entre tablas abiertas.
  2. Presione F11 para cambiar a la ventana Base de datos.
  3. En el menú Herramientas , haga clic en relaciones.
  4. Si aún no ha definido ninguna relación en la base de datos, se muestra automáticamente el cuadro de diálogo Mostrar tabla . Si va a 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 .
  5. Haga doble clic en los nombres de las tablas que vaya a 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.
  6. Arrastre el campo que desea relacionar de una tabla al campo relacionado en la otra tabla. Para arrastrar varios campos, presione la tecla CTRL, haga clic en cada campo y, a continuación, arrástrelos.

    En la mayoría de los casos, se arrastra el campo de clave principal (que se muestra en negrita) de una tabla a un campo similar (a menudo con el mismo nombre) denominado la clave externa en la otra tabla.
  7. Se muestra 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 cambiarlos si es necesario.

    Establezca las opciones de relación si es necesario. Si necesita información acerca de un elemento específico en el cuadro de diálogo Modificar relaciones , haga clic en el botón de signo de interrogación y, a continuación, haga clic en él. Estas opciones se explicarán detalladamente más adelante en este artículo.
  8. Haga clic en crear para crear la relación.
  9. Repita los pasos del 5 al 8 para cada pareja de tablas que vaya a relacionar.

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

    Nota: Puede crear relaciones en las consultas como tablas. Sin embargo, no se exige la integridad referencial con las consultas.

Cómo se definen varios a varios relaciones

Para crear una relación varios a varios, siga estos pasos:
  1. Cree las dos tablas que tendrán una relación varios a varios.
  2. Cree una tercera tabla, denominada tabla de unión y, a continuación, agregue a ésta nuevos campos con las mismas definiciones que los campos de claves principal de cada una de las otras dos tablas. En la tabla de unión, los campos de claves principal funcionan como claves externas. Puede agregar otros campos a la tabla de unión, igual que con cualquier otra tabla.
  3. En la tabla de unión, establezca la clave principal para que incluya los campos de claves principal de las otras dos tablas. Por ejemplo, en una tabla de unión TítuloAutores, la clave principal se formada por 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 desea definir como clave principal. Para seleccionar un campo, haga clic en el selector de filas del campo que desee.

      Para seleccionar varios campos, mantenga presionada la tecla CTRL y, a continuación, haga clic en el selector de fila para cada campo.
    3. Haga clic en Clave principal en la barra de herramientas.

      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, volver a ordenar los nombres de campo para el índice denominado PrimaryKey.
  4. Defina una relación uno a varios entre cada una de las dos tablas principales y la tabla de unión.

Integridad referencial

La integridad referencial es un sistema de reglas que Microsoft Access utiliza para garantizar que las relaciones entre los registros de tablas relacionadas son válidas y que usted no eliminen o se cambien datos relacionados. Puede establecer la integridad referencial cuando se cumplen las condiciones siguientes:
  • El campo coincidente de la tabla principal es una clave principal o tiene un índice único.
  • Los campos relacionados tienen los mismos datos de tipo. Hay dos excepciones. Un campo Autonumérico puede deberse a un campo numérico con un valor de la propiedad TamañoDelCampo (FieldSize) de tipo Long Integer y un campo Autonumérico con un valor de la propiedad TamañoDelCampo (FieldSize) de ID. de réplica puede deberse a un campo numérico con un valor de la propiedad TamañoDelCampo (FieldSize) de Id.
  • Ambas tablas pertenecen a la misma base de datos de Microsoft Access. Si las tablas son tablas vinculadas, deben ser tablas con formato de Microsoft Access y debe abrir la base de datos en el que están almacenadas para establecer la integridad referencial. No se exige la integridad referencial para tablas vinculadas de bases de datos en otros formatos.
Las siguientes reglas se aplican cuando utiliza la integridad referencial:

  • No puede especificar un valor en el campo de clave externa de la tabla relacionada que no existe en la clave principal de la tabla principal. Sin embargo, puede introducir un valor nulo en la clave externa, especificando que los registros están relacionados. Por ejemplo, no se puede tener un pedido asignado a un cliente que no existe, pero puede tener un pedido asignado a nadie mediante la introducción de un valor nulo en el campo IdCliente.
  • No se puede eliminar un registro de una tabla principal si existen 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 Orders.
  • No puede cambiar un valor de clave principal de la tabla principal si ese registro tiene registros relacionados. Por ejemplo, no puede cambiar el identificador de un empleado de la tabla de empleados.

Eliminaciones y actualizaciones en cascada

Para las relaciones en el que se exige la integridad referencial, puede especificar si desea que Microsoft Access actualice automáticamente en cascada o eliminación en cascada los registros relacionados. Si establece estas opciones, eliminar y actualizar las operaciones que normalmente las impedirían por integridad referencial se permiten las reglas. Cuando se eliminan registros o se cambian los valores de claves principal de una tabla principal, Microsoft Access realiza los cambios necesarios en las tablas relacionadas para conservar la integridad referencial.

Si hace clic para activar la casilla de verificación Actualizar en cascada los campos relacionados al definir una relación, cada vez que cambie 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 un ID de cliente en la tabla Customers, el campo CustomerID de la tabla Orders se actualiza automáticamente para cada componente de pedidos de ese cliente para que la relación no se interrumpió. Microsoft Access actualiza en cascada sin mostrar ningún mensaje.

Nota: Si la clave principal de la tabla principal es un campo Autonumérico, activar la casilla de verificación Actualizar en cascada los campos relacionados no afectará, porque no se puede cambiar el valor de un campo Autonumérico.

Si selecciona la casilla de verificación Eliminar en cascada los registros relacionados al definir una relación, siempre que elimine registros de la tabla principal, Microsoft Access eliminará automáticamente los registros relacionados en la tabla relacionada. Por ejemplo, si elimina un registro de cliente de la tabla Customers, todos los pedidos del cliente se eliminarán automáticamente de la tabla de pedidos (Esto incluye los registros de la tabla de detalles de pedidos relacionada con los registros de pedidos). Cuando elimina registros de un formulario u hoja de datos con la casilla de verificación Eliminar en cascada los registros relacionados activada, Microsoft Access le advierte de que también se pueden eliminar los registros relacionados. Sin embargo, al eliminar registros mediante una consulta de eliminación, Microsoft Access elimina automáticamente los registros en tablas relacionadas sin mostrar ninguna advertencia.

Combinar los tipos

Hay tres tipos de combinaciones, como se indica a continuación:

Opción 1 define una combinación interna. Una combinación interna es una combinación donde los registros de dos tablas se combinan en los resultados de consulta sólo 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 selecciona registros sólo si coinciden con los valores de los campos combinados.

Opción 2 define una combinación externa izquierda. Una combinación externa izquierda es una combinación según el cual todos los registros del lado izquierdo de la operación LEFT JOIN de la instrucción de la consulta SQL se agregan a los resultados de consulta, incluso si no hay ningún valor coincidente en el campo combinado de la tabla a la derecha.

Opción 3 define una combinación externa derecha. Una combinación externa derecha es una combinación según el cual todos los registros del lado derecho de la operación RIGHT JOIN en la instrucción SQL de la consulta se agregan a los resultados de consulta, incluso si no haya valores coincidentes en el campo combinado de la tabla a la izquierda.

Referencias

Para obtener información adicional acerca de las relaciones en Microsoft Access, haga clic en el tema "Crear y diseñar tablas" en la página de Ayuda de Microsoft Access 2000 en el siguiente sitio Web de Microsoft:
Ayuda de Microsoft Access 2000
Para obtener más información acerca de las relaciones en Microsoft Access, haga clic en Ayuda de Microsoft Access En la páginaAyuda menú, escriba Crear o modificar las relaciones en el Ayudante de Office o en el Asistente para Ayuda y, a continuación, haga clic en Búsqueda Para ver los temas relacionados.

Propiedades

Id. de artículo: 304467 - Última revisión: domingo, 23 de diciembre de 2012 - Versión: 6.0
La información de este artículo se refiere a:
  • Microsoft Access 2000 Standard Edition
Palabras clave: 
kbhowto kbmt KB304467 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 304467

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