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

Seleccione idioma Seleccione idioma
Id. de artículo: 304468 - Ver los productos a los que se aplica este artículo
Principiante: Requiere 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 (.mdb).

Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo definir relaciones en una base de datos de Microsoft Access. Incluye los temas siguientes:
  • ¿Qué relaciones de tablas
  • Tipos de relaciones de tablas
    • Relaciones uno a varios
    • Relaciones varios a varios
    • Relaciones uno a uno

  • Cómo definir relaciones entre tablas
    • Cómo definir un relaciones uno a varios o One-To-One
    • Cómo definir varios a varios relaciones

  • Integridad referencial
  • Actualizaciones en cascada y eliminaciones
  • Combinación de tipos

Más información

¿Qué relaciones de tablas

En una base de datos relacional, las relaciones permiten evitar datos redundantes. Por ejemplo, si está diseñando una base de datos que realiza un seguimiento de información sobre libros, puede tener una tabla denominada títulos que almacena información sobre cada libro, como título de la Libreta de ?s, la fecha de publicación y publisher. También hay información que desea almacenar sobre el Editor, como el número de teléfono, dirección y código postal. Si desea almacenar toda esta información en la tabla titles, número de teléfono ?s Editor se duplicaría para cada título que 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 colocar un puntero de la tabla titles que haga referencia a una entrada en la tabla publishers.

Para asegurarse de que los datos no están sincronizados, puede exigir integridad referencial entre las tablas títulos y editores. Relaciones de integridad referencial ayudan a garantizar que la información en una tabla coincide con la información en otro. Por ejemplo, cada título de la tabla títulos debe estar asociado 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 de tablas

Una relación hace coincidir los datos de columnas de claves, normalmente columnas con 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, se pueden asociadas las ventas a 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 de tabla A puede tener muchas filas coincidentes en 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 de uno a varios: cada editorial genera muchos títulos, pero cada título procede sólo una editorial.

Se crea una relación uno a varios si sólo uno 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 varios a varios

En una relación varios a varios, una fila de la tabla puede tener muchas filas coincidentes en la tabla B y viceversa. Se crea una relación de tal definiendo 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 desde 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 de id_au (clave principal de la tabla de autores ?s) y la columna title_id (clave principal de la tabla de títulos ?s).

Relaciones uno a uno

En una relación uno a uno, una fila de la tabla puede tener no más de una fila coincidente en la tabla B y viceversa. Se crea una relación uno a uno si ambos de las columnas relacionadas son claves principales o tienen restricciones únicas.

Este tipo de relación no es común porque la mayoría información relacionada de esta manera estaría todo 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 se corta duración y se puede eliminar fácilmente eliminando simplemente la tabla.
  • Almacenar información que se aplica sólo 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 relaciones entre tablas

Cuando se crea una relación entre tablas, los campos relacionados no tienen que tener el mismo nombre. Sin embargo, los campos relacionados deben tener el mismo tipo a menos que el campo de clave principal sea un campo Autonumérico de datos. Puede hacer coincidir un campo Autonumérico con un campo numérico sólo si la propiedad TamañoDelCampo de ambos campos coincidentes es el mismo. Por ejemplo, puede hacer coincidir un campo Autonumérico y un campo numérico si la propiedad TamañoDelCampo de ambos campos es entero largo. Incluso cuando ambos campos coincidentes son campos numéricos, deben tener el mismo valor de la propiedad TamañoDelCampo.

Cómo definir uno a varios o un One-To-One relaciones

Para definir uno a varios o una relación uno a uno, siga estos pasos:
  1. Cierre todas las tablas que ha abierto. No se puede crear ni modificar relaciones entre tablas abiertas.
  2. Presione F11 para pasar a la ventana base de datos.
  3. En el menú Herramientas , haga clic en relaciones .
  4. Si necesita agregar las tablas que desea relacionar, haga clic en Mostrar tabla en el menú relaciones .
  5. 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.
  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 relaciones . Asegúrese de que los nombres de campo que se muestran en las dos columnas son correctos. Se puede cambiar 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 relaciones , haga clic en el botón del signo de interrogación y, a continuación, haga clic en el elemento. Estas opciones también 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 5 a 8 para cada par de tablas que desea relacionar.

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

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

Cómo definir varios a varios relaciones

Para definir una relación varios a varios, siga estos pasos:
  1. Cree las dos tablas que se tienen una relación varios a varios.
  2. Cree una tercera tabla, denominada tabla de unión y agregue a la tabla de unión 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, como lo haría con cualquier otra tabla.
  3. En la tabla de unión, establezca la clave principal para que incluya los campos de clave principales de las otras dos tablas. Por ejemplo, en una tabla de unión TítuloAutores, la clave principal estará formada 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 que desee. Para seleccionar varios campos, mantenga presionada la tecla CTRL y, a continuación, haga clic en el selector de fila de 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. Definir una relación de 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 en tablas relacionadas son válidas y que desea no accidentalmente elimina o cambian 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 el mismos tipo de datos. Hay dos excepciones. Un campo Autonumérico puede estar relacionado con un campo numérico con un valor de entero largo para la propiedad TamañoDelCampo (FieldSize) , y puede estar relacionado con un campo Autonumérico con un valor de propiedad tamaño del campo Id. de réplica a un campo numérico con un valor de propiedad tamaño del campo de Id. de réplica
  • Ambas tablas pertenecen a la misma base de datos Microsoft Access. Si las tablas son tablas vinculadas, deben ser tablas en el formato de Microsoft Access y debe abrir la base de datos en la que están almacenadas para establecer la integridad referencial. La integridad referencial se no puede exigirse para tablas vinculadas de bases de datos en otros formatos.
Las reglas siguientes se aplican cuando se utiliza la integridad referencial:

  • Puede especificar un valor en el campo de clave externo de la tabla relacionada que no existe en la clave principal de la tabla principal. Sin embargo, puede especificar un valor nulo en la clave externa, que indica que los registros no están relacionados. Por ejemplo, no puede tener un pedido que está asignado a un cliente que no existe, pero puede tener un orden que está asignado a nadie escribiendo un valor NULL 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 se puede eliminar un registro de empleado de la tabla empleados si hay pedidos asignados al empleado en la tabla Pedidos.
  • No se puede cambiar un valor de clave principal de la tabla principal si ese registro tiene registros relacionados. Por ejemplo, no puede cambiar ID de un empleado en la tabla empleados si hay pedidos asignados a ese empleado en la tabla Pedidos.

Actualizaciones en cascada y eliminaciones

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

Si hace clic para activarla Actualizar en cascada los campos relacionados al definir una relación, siempre que cambie la clave principal de un registro de 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 de la tabla clientes, el campo CustomerID de la tabla de pedidos se actualiza automáticamente para cada uno de los pedidos de ese cliente para que la relación no esté rota. Microsoft Access actualiza en cascada sin mostrar ningún mensaje.

Nota: Si la clave principal de la tabla principal es un campo Autonumérico, si se activa la casilla 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 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 registros de un formulario u hoja de datos con la casilla de verificación Eliminar en cascada los registros relacionados activada, Microsoft Access avisa de que también es posible que se eliminen 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 una advertencia.

Combinación de tipos

Hay tres tipos de combinación, como:

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 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 los valores de los campos combinados.

opción 2 define una combinación externa izquierda. Una combinación externa izquierda es una combinación en la que todos los registros del lado izquierdo de la operación LEFT JOIN de instrucción SQL de la consulta se agregan a resultados de la consulta, aunque no haya 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 en la que todos los registros del lado derecho de la operación RIGHT JOIN de instrucción SQL de la consulta se agregan a resultados de la consulta, aunque no haya valores coincidentes en el campo combinado de la tabla de la izquierda.

Referencias

Para obtener más información sobre las relaciones en Microsoft Access, busque el índice para las relaciones de la Ayuda o pregunte el Ayudante de Office de Microsoft Access.

Propiedades

Id. de artículo: 304468 - Última revisión: miércoles, 31 de enero de 2007 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbmt kbhowto KB304468 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): 304468
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

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