Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 1 de 29
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 lograr dicho objetivo, conviene desglosar los datos en muchas tablas
basadas en temas para que cada hecho esté representado solo una vez. A continuación, se debe
proporcionar a Access los medios 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 deberá comprender las relaciones existentes entre las tablas y,
a continuación, especificar dichas relaciones en la base de datos.
En este artículo no se incluyen las relaciones en una base de datos web. Las bases de datos web
no son compatibles con la ventana Relaciones. Para crear relaciones en una base de datos web,
utilice campos de búsqueda. Para obtener más información, vea el artículo sobre cómo compilar
una base de datos para compartir en la Web.
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
Crear una relación de tabla
Eliminar una relación de tabla
Cambiar una relación de tabla
Exigir integridad referencial
Introducción
Tras crear una tabla para cada tema en la base de datos, es preciso proporcionar a Access los
medios 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:
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 2 de 29
La información de este formulario procede de la tabla Clientes...
... la tabla Pedidos...
... la tabla Productos...
... 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 aparece en ambas tablas; como clave principal...
... y como clave externa.
Tipos de relaciones de tablas
Existen tres tipos de relaciones de tablas.
Una relación uno a varios
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 3 de 29
Considere 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 lo tanto, para
cualquier cliente representado en la tabla Clientes puede haber representados muchos
pedidos en la tabla Pedidos. Por consiguiente, 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.
Access utilizaría entonces el número de identificador del cliente de la tabla Pedidos para
localizar al cliente correcto de cada producto.
Una relación varios a varios
Considere la relación entre una tabla Productos y una tabla Pedidos. Un solo pedido puede
incluir varios productos. Por otro lado, un único producto puede aparecer en muchos
pedidos. Por tanto, para cada registro de la tabla Pedidos puede haber varios registros en la
tabla Productos. Además, para cada registro de la tabla Productos puede haber varios
registros en la tabla Pedidos. Este tipo de relación se denomina relación de varios a varios
porque para un producto puede haber varios pedidos, y para un pedido puede haber varios
productos. 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. Este tipo de relación no es común porque, muy
a menudo, la información relacionada de este modo se almacena en la misma tabla. Puede
utilizar 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.
¿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
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 4 de 29
determinar cómo combinar las tablas si hay que utilizarlas 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. La consulta compara los valores del campo de clave principal de la
primera tabla con el campo de clave externa de la segunda tabla. 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, de acuerdo con la relación de tabla existente. Además, si usa
uno de los asistentes para consultas, Access utilizará 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 utiliza 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, se divide la información en tablas, cada una de las cuales
tiene una clave principal. A continuación, 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.
Por lo tanto, resulta importante, que dichas referencias de clave principal y clave externa
estén sincronizadas. La integridad referencial sirve para asegurarse de que las referencias
permanecen sincronizadas y depende de las relaciones de tabla.
Descripción de la integridad referencial
Al diseñar una base de datos, se divide la información en muchas tablas basadas en temas para
minimizar la redundancia de los datos. A continuación, se proporciona a Access los medios 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".
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 5 de 29
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 Exigir
integridad referencial para obtener instrucciones paso a paso). 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 cambian el destino de una referencia,
así como las eliminaciones que quitan 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
inconsistente con algunas filas actualizadas y otras no. Por ello, Access incluye la opción Eliminar
en cascada los registros relacionados. Cuando se aplica la integridad referencial y se selecciona
la opción Actualizar en cascada los campos relacionados y, a continuación, se actualiza una clave
principal, Access actualiza automáticamente todos los campos que hacen 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 y selecciona la opción Actualizar en cascada los campos
relacionados y, a continuación, elimina un registro en la parte de la clave principal de la relación,
Access eliminará automáticamente todos los campos que hagan referencia a la clave principal.
Ver relaciones de tablas
Para ver las relaciones de tabla, haga clic en Relaciones en la ficha 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. En la ficha Archivo, haga clic en Abrir.
2. En el cuadro de diálogo Abrir, seleccione y abra la base de datos.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 6 de 29
3. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
4. Si la base de datos contiene relaciones, aparecerá la ventana Relaciones y se mostrarán
las relaciones existentes. 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.
5. En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
Se mostrarán todas las relaciones definidas en la base de datos. 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.
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 ficha 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 ficha 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.
Mostrar 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
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 7 de 29
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.
Crear una relación de tabla
Se puede crear una relación de tabla mediante la ventana Relaciones o arrastrando un campo en
una hoja de datos desde el panel Lista de campos. Cuando se crea una relación entre tablas, los
campos comunes no tienen que tener los mismos nombres, si bien sus nombres suelen coincidir.
Más bien, dichos campos tienen que tener el mismo tipo de datos. No obstante, si el campo de
clave principal es un campo Autonumeración, el campo de clave externa puede ser un campo de
tipo Número si la propiedad Tamaño del campo de ambos campos tiene el mismo valor. Por
ejemplo, puede hacer coincidir un campo Autonumeración y un campo de tipo Número si la
propiedad Tamaño del campo de ambos campos es Entero largo. Cuando ambos campos
comunes son campos de tipo Número, deben tener el mismo valor para la propiedad Tamaño del
campo.
Crear una relación de tabla mediante la ventana Relaciones
1. En la ficha Archivo, haga clic en Abrir.
2. En el cuadro de diálogo Abrir, seleccione y abra la base de datos.
3. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
4. Si aún no ha definido ninguna relación, aparecerá automáticamente el cuadro de diálogo
Mostrar tabla. Si no aparece, en la ficha Diseño, en el grupo Relaciones, haga clic en
Mostrar tabla.
En el cuadro de diálogo Mostrar tabla se muestran todas las tablas y consultas de la base de
datos. Para ver únicamente las tablas, haga clic en Tablas. Para ver únicamente las
consultas, haga clic en Consultas. Para ver las tablas y las consultas, haga clic en Ambas.
5. Seleccione una o varias tablas o consultas y, a continuación, haga clic en Agregar.
Cuando termine de agregar tablas y consultas a la ventana Relaciones, haga clic en Cerrar.
6. Arrastre un campo (normalmente el campo de clave principal) de una tabla al campo
común (la clave externa) en la otra tabla. Para arrastrar varios campos, presione la tecla
CTRL, haga clic en cada uno de los campos y, a continuación, arrástrelos.
Aparece el cuadro de diálogo Modificar relaciones.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 8 de 29
7. Compruebe que los nombres de campo mostrados son los campos comunes de la
relación. Si un nombre de campo es incorrecto, haga clic en él y seleccione un nuevo campo
de la lista.
Para exigir la integridad referencial para esta relación, active la casilla de verificación Exigir
integridad referencial. Para obtener más información sobre la integridad referencial, vea las
secciones Descripción de la integridad referencial y Exigir integridad referencial.
8. Haga clic en Crear.
Se dibujará una línea de relación entre las dos tablas. Si activó la casilla de verificación Exigir
integridad referencial, la línea aparece más gruesa en los extremos. Además, solo si activó
la casilla de verificación Exigir integridad referencial, aparecerá 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 (∞) sobre la
parte gruesa del otro extremo.
NOTAS
Para crear una relación uno a uno Ambos campos comunes (generalmente los campos de clave principal y clave externa) deben tener un índice único. Esto significa que la propiedad Indizado de estos campos debe tener el valor Sí (sin duplicados). Si ambos campos tienen un índice único, Access crea una relación uno a uno.
Para crear una relación uno a varios El campo ubicado en el lado "uno" de la relación (normalmente, el campo de clave principal) debe tener un índice único. Esto significa que la propiedad Indizado de este campo debe tener el valor Sí (sin duplicados). El campo ubicado en el lado "varios" de la relación no debe tener un índice único. Puede tener un índice, pero debe permitir los duplicados. Esto significa que la propiedad Indizado de este campo debe tener el valor No o Sí (con duplicados). Cuando un campo tiene un índice único y el otro no, Access crea una relación uno a varios.
Crear una relación de tabla mediante el panel Lista de campos
Se puede agregar un campo a una tabla existente abierta en la vista Hoja de datos arrastrándolo
desde el panel Lista de campos. El panel Lista de campos muestra los campos disponibles de
las tablas relacionadas y también los de otras tablas. Cuando se arrastra un campo de "otra" tabla
(no relacionada) y, a continuación, se ejecuta el Asistente para búsquedas, se crea
automáticamente una nueva relación uno a varios entre la tabla en el panel Lista de campos y la
tabla a la que se ha arrastrado el campo. Esta relación, creada por Access, no exige la integridad
referencial de manera predeterminada. Para exigirla, es preciso modificar la relación. Vea la
sección Cambiar una relación de tabla para obtener más información.
Abrir una tabla en la vista Hoja de datos
1. En la ficha Archivo, haga clic en Abrir.
2. En el cuadro de diálogo Abrir, seleccione y abra la base de datos.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 9 de 29
3. En el panel de navegación, haga clic con el botón secundario en la tabla a la que desea
agregar el campo y para la que desea crear la relación y, a continuación, haga clic en Abrir.
Abrir el panel Lista de campos
Presione ALT+F8.
Aparece el panel Lista de campos.
En el panel Lista de campos se muestran todas las otras tablas de la base de datos agrupadas
en categorías. Cuando trabaja con una tabla en la vista Hoja de datos, Access muestra los
campos en alguna de estas dos categorías del panel Lista de campos: Campos disponibles en
tablas relacionadas y Campos disponibles en otras tablas. La primera categoría contiene
todas las tablas que tienen una relación con la tabla con la que trabaja actualmente. La segunda
categoría contiene todas las tablas con las que la tabla no tiene ninguna relación.
En el panel Lista de campos, al hacer clic en el signo más (+) situado junto al nombre de una
tabla, aparece una lista de todos los campos disponibles en esa tabla. Para agregar un campo a la
tabla, arrastre el campo que desee del panel Lista de campos a la tabla en la vista Hoja de datos.
Agregar un campo y crear una relación desde el panel Lista de campos
1. En el panel Lista de campos, en Campos disponibles en otras tablas, haga clic en el
signo más (+) situado junto a un nombre de tabla para mostrar la lista de los campos de esa
tabla.
2. Arrastre el campo que desee del panel Lista de campos a la tabla abierta en la vista Hoja
de datos.
3. Cuando aparezca la línea de inserción, coloque el campo en su posición.
Se inicia el Asistente para búsquedas.
4. Siga las instrucciones para ejecutar el Asistente para búsquedas.
El campo aparece en la tabla en la vista Hoja de datos.
Cuando se arrastra un campo de "otra" tabla (no relacionada) y, a continuación, se ejecuta el
Asistente para búsquedas, se crea automáticamente una nueva relación uno a varios entre la
tabla en Lista de campos y la tabla a la que se ha arrastrado el campo. Esta relación, creada
por Access, no exige la integridad referencial de manera predeterminada. Para exigirla, es
preciso modificar la relación. Vea la sección Cambiar una relación de tabla para obtener más
información.
Eliminar una relación de tabla
Para quitar una relación de tabla, es preciso eliminar la línea de relación en la ventana Relaciones.
Coloque el cursor de modo que apunte a la línea de relación y, a continuación, haga clic en la
línea. La línea de relación aparece con mayor grosor cuando está seleccionada. Con la línea de
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 10 de 29
relación seleccionada, presione SUPRIMIR. Observe que si se quita una relación, también se
quita la integridad referencial para esa relación si está habilitada. Como resultado, Access ya no
evitará automáticamente la creación de registros huérfanos en el lado "varios" de una relación.
4. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez que
abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el
cuadro de diálogo, haga clic en Cerrar.
5. En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
Se muestran todas las tablas que tengan relaciones y las líneas de relación.
6. Haga clic en la línea de relación correspondiente a la relación que desee eliminar. La línea de
relación aparece con mayor grosor cuando está seleccionada.
7. Presione la tecla SUPR.
- o bien -
Haga clic con el botón secundario y, a continuación, haga clic en Eliminar.
8. Puede que Access muestre el mensaje ¿Confirma que desea eliminar de forma
permanente la relación seleccionada de la base de datos?. Si aparece este mensaje de
confirmación, haga clic en Sí.
NOTA Si se está usando alguna de las tablas empleadas en la relación de tabla, quizás por otra
persona u otro proceso, o bien, en un objeto de base de datos abierto (como puede ser un
formulario), no se podrá eliminar la relación. Primero se deben cerrar todos los objetos abiertos
que usen estas tablas para poder quitar la relación.
Cambiar una relación de tabla
Para cambiar una relación de tabla, selecciónela en la ventana Relaciones y, a continuación,
modifíquela. Coloque el cursor de modo que apunte a la línea de relación y, a continuación, haga
clic en la línea para seleccionarla. La línea de relación aparece con mayor grosor cuando está
seleccionada. Con la línea de relación seleccionada, haga doble clic en ella o haga clic en
Modificar relaciones en el grupo Herramientas en la ficha Diseño. Aparecerá el cuadro de
diálogo Modificar relaciones.
Realizar sus cambios en el cuadro de diálogo Modificar relaciones
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 11 de 29
Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez que
abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el
cuadro de diálogo, haga clic en Cerrar.
En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
2. Se muestran todas las tablas que tengan relaciones y las líneas de relación.
3. Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea
de relación aparece con mayor grosor cuando está seleccionada.
4. Haga doble clic en la línea de relación.
5. Realice los cambios y, a continuación, haga clic en Aceptar.
El cuadro de diálogo Modificar relaciones permite cambiar una relación de tabla. En
concreto, se pueden cambiar las tablas, las consultas o los campos a ambos lados de la
relación. Se puede definir asimismo el tipo de combinación o exigir la integridad referencial y
elegir una opción en cascada. Para obtener más información sobre el tipo de combinación y
cómo configurarlo, vea la sección Configurar el tipo de combinación. Para obtener más
información sobre cómo exigir la integridad referencial y elegir una opción en cascada, vea la
sección Exigir integridad referencial.
Configurar el tipo de combinación
Cuando se define una relación de tabla, los hechos referentes a la relación determinan el diseño
de las consultas. Por ejemplo, si se define una relación entre dos tablas y, a continuación, se crea
una consulta que use dichas tablas, Access selecciona automáticamente los campos coincidentes
predeterminados basándose en los campos especificados en la relación. Se pueden invalidar los
valores predeterminados iniciales en la consulta, pero los valores proporcionados por la relación
suelen ser los correctos. Dado que va a hacer coincidir y combinar con frecuencia los datos de
varias tablas hasta de las bases de datos más sencillas, la configuración de valores
predeterminados mediante la creación de relaciones puede ahorrarle tiempo y resultarle
beneficiosa.
Una consulta de varias tablas combina la información de más de una tabla haciendo coincidir los
valores de los campos comunes. Esta operación se denomina combinación. Por ejemplo,
supongamos que desea mostrar los pedidos de los clientes. Va a crear una consulta que combine
la tabla Clientes y la tabla Pedidos por el campo Id. de cliente. El resultado de la consulta contiene
información sobre los clientes y los pedidos solo para las filas en las que se ha encontrado una
coincidencia.
Uno de los valores que se puede especificar para cada relación es el tipo de combinación, que
indica a Access qué registros se van a incluir en el resultado de una consulta. Por ejemplo,
consideremos de nuevo una consulta que combine la tabla Clientes y la tabla Pedidos por los
campos comunes que representan el Id. de cliente. Mediante el tipo de combinación
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 12 de 29
predeterminado (denominado combinación interna), la consulta devolverá únicamente las filas
Cliente y las filas Pedido en las que los campos comunes (denominados campos combinados)
sean iguales.
Sin embargo, supongamos que desea incluir a todos los clientes, incluso los que aún no han
realizado ningún pedido. Para ello, deberá cambiar el tipo de combinación de una combinación
interna a lo que se denomina una combinación externa izquierda. Este tipo de combinación
devuelve todas las filas de la tabla situada en el lado izquierdo de la relación y solo las filas que
coinciden con las de la tabla a la derecha. Una combinación externa derecha devuelve todas las
filas de la derecha y solo las filas que coinciden con las de la izquierda.
NOTA En este caso, "izquierda" y "derecha" hacen referencia a la posición de las tablas en el
cuadro de diálogo Modificar relaciones y no en la ventana Relaciones.
Debe tener en mente el resultado que desea obtener de una consulta que combine las tablas de
esta relación y, a continuación, configurar el tipo de combinación en consecuencia.
Configurar el tipo de combinación
1. En el cuadro de diálogo Modificar relaciones, haga clic en Tipo de combinación.
Aparece el cuadro de diálogo Propiedades de la combinación.
2. Haga clic en la opción que desee y, a continuación, haga clic en Aceptar.
En la siguiente tabla (con las tablas Clientes y Pedidos) se muestran las tres opciones que
aparecen en el cuadro de diálogo Propiedades de la combinación, el tipo de combinación y
si se incluyen todas las filas o las filas coincidentes de cada tabla.
OPCIÓN COMBINACIÓN RELACIONAL
TABLA IZQUIERDA
TABLA DERECHA
1. Incluir solo las filas donde los campos combinados de ambas tablas sean iguales.
Combinación interna
Filas coincidentes
Filas coincidentes
2. Incluir TODOS los registros de 'Clientes' y solo aquellos registros de 'Pedidos' donde los campos combinados sean iguales.
Combinación externa izquierda
Todas las filas Filas coincidentes
3. Incluir TODOS los registros de 'Pedidos' y solo aquellos registros de 'Clientes' donde los campos combinados sean iguales.
Combinación externa derecha
Filas coincidentes
Todas las filas
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 13 de 29
Cuando selecciona la opción 2 ó 3, se muestra una flecha en la línea de relación. Esta flecha
apunta al lado de la relación en el que se muestran solo las filas coincidentes.
Realizar cambios en el cuadro de diálogo Propiedades de la combinación
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
Aparecerá la ventana Relaciones. Si aún no ha definido ninguna relación y es la primera vez
que abre la ventana Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el
cuadro de diálogo, haga clic en Cerrar.
En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
Aparecen todas las tablas que tienen relaciones y se muestran las líneas de relación.
2. Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea
de relación aparece con mayor grosor cuando está seleccionada.
3. Haga doble clic en la línea de relación.
Aparece el cuadro de diálogo Modificar relaciones.
4. Haga clic en Tipo de combinación.
5. En el cuadro de diálogo Propiedades de la combinación, haga clic en una opción y, a
continuación, haga clic en Aceptar.
6. Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
Exigir integridad referencial
El uso de la integridad referencial tiene como finalidad evitar los registros huérfanos y mantener
sincronizadas las referencias de modo que no haya registros que hagan referencia a otros
registros que ya no existen. Para exigir la integridad referencial, es preciso habilitarla para una
relación de tabla. Una vez habilitada, Access rechazará todas las operaciones que infrinjan la
integridad referencial para esa relación de tabla. Access rechaza las actualizaciones que cambien
el destino de una referencia, así como las eliminaciones que quiten el destino de una referencia.
Para que Access propague las actualizaciones y eliminaciones referenciales de modo que todas
las filas relacionadas cambien en consecuencia, vea la sección Configurar las opciones en
cascada.
Activar o desactivar la integridad referencial
1. En la ventana Relaciones, haga clic en la línea de relación correspondiente a la relación
que desee modificar. La línea de relación aparece con mayor grosor cuando está
seleccionada.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 14 de 29
2. Haga doble clic en la línea de relación.
Aparece el cuadro de diálogo Modificar relaciones.
3. Active la casilla de verificación Exigir integridad referencial.
4. Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
Tras habilitar la integridad referencial, se aplican las siguientes reglas:
No se puede especificar un valor en el campo de clave externa de una tabla relacionada si ese valor no existe en el campo de clave principal de la tabla principal. En caso contrario, se crean registros huérfanos.
No se puede eliminar un registro de una tabla principal si existen registros coincidentes en una tabla relacionada. Por ejemplo, no se puede eliminar el registro de un empleado de la tabla Empleados si hay pedidos asignados a ese empleado en la tabla Pedidos. Sin embargo, se puede optar por eliminar un registro principal y todos los registros relacionados en una sola operación activando la casilla Eliminar en cascada los registros relacionados.
No se puede cambiar un valor de clave principal en la tabla principal si ese cambio crea registros huérfanos. Por ejemplo, no se puede cambiar un número de pedido en la tabla Pedidos si hay artículos de línea asignados a ese pedido en la tabla Detalles de pedidos. Sin embargo, se puede optar por actualizar un registro principal y todos los registros relacionados en una sola operación activando la casilla de verificación Actualizar en cascada los campos relacionados.
NOTAS
Si surgen problemas al habilitar la integridad referencial, observe que deben cumplirse las
siguientes condiciones para poder aplicar la integridad referencial:
El campo común de la tabla principal debe ser una clave principal o debe tener un índice único.
Los campos comunes deben tener el mismo tipo de datos. Hay una excepción: un campo Autonumeración puede estar relacionado con un campo de tipo Número cuya propiedad Tamaño del campo tenga el valor Entero largo.
Ambas tablas deben existir en la misma base de datos de Access. No se puede exigir la integridad referencial en las tablas vinculadas. Sin embargo, si las tablas de origen tienen formato de Access, se puede abrir la base de datos en las que están almacenadas y habilitar la integridad referencial en esa base de datos.
Configurar las opciones en cascada
Puede darse el caso de que haya una necesidad válida de cambiar el valor en el lado "uno" de
una relación. En ese caso, es necesario que Access actualice automáticamente todas las filas
afectadas como parte de una sola operación. De ese modo, la actualización es completa y la base
de datos no tiene un estado inconsistente con algunas filas actualizadas y otras no. Access ayuda
a evitar este problema ya que 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
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 15 de 29
campos relacionados y, a continuación, se actualiza una clave principal, Access actualiza
automáticamente todos los campos que hacen referencia a la clave principal.
Puede que también se haya que eliminar una fila y todos los registros relacionados; por ejemplo,
un registro Compañía de transporte y todos los pedidos relacionados de esa compañía de
transporte. Por ello, Access incluye la opción Eliminar en cascada los registros relacionados.
Cuando se aplica la integridad referencial y se activa la casilla de verificación Eliminar en cascada
los registros relacionados, Access elimina automáticamente todos los registros que hacen
referencia a la clave principal al eliminarse el registro que contiene la clave principal.
Activar o desactivar la actualización y/o la eliminación en cascada
1. En la ventana Relaciones, haga clic en la línea de relación correspondiente a la relación
que desee modificar. La línea de relación aparece con mayor grosor cuando está
seleccionada.
2. Haga doble clic en la línea de relación.
Aparece el cuadro de diálogo Modificar relaciones.
3. Active la casilla de verificación Exigir integridad referencial.
4. Active la casilla de verificación Actualizar en cascada los campos relacionados o
Eliminar en cascada los registros relacionados, o bien, active ambas.
5. Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
NOTA Si la clave principal es un campo Autonumeración, la activación de la casilla de
verificación Actualizar en cascada los campos relacionados no tendrá ningún efecto porque no
se puede cambiar el valor de un campo Autonumeración.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 16 de 29
CREAR, MODIFICAR O ELIMINAR UNA RELACIÓN
Una relación le ayuda a combinar datos de dos tablas distintas. Cada relación contiene campos en
dos tablas, con los datos correspondientes. Por ejemplo, el usuario tiene un campo Id_Producto
en una tabla Productos y en una tabla Detalles de pedido. Cada registro de la tabla Detalles de
pedidos tienen un Id_Producto que corresponde a un registro de la tabla Productos con el mismo
Id_Producto.
Cuando se usan las tablas relacionadas en una consulta, la relación permite que Access
determine qué registros de una tabla se relacionan con qué registros de otra para combinarse en
el conjunto de resultados. Una relación también puede impedir que se pierdan datos evitando que
los datos eliminados dejen de estar sincronizados.
En este artículo se describen los procedimientos paso a paso para crear, modificar y eliminar una
relación de tabla. También describe cómo exigir la integridad referencial para evitar la creación de
registros huérfanos, cómo definir el tipo de combinación para determinar qué registros de cada
lado de una relación se incluyen en el resultado de una consulta y cómo configurar las opciones
en cascada para mantener sincronizadas las referencias.
En este artículo:
Información general
Crear una relación de tabla mediante la ventana Relaciones
Crear una relación de tabla mediante el panel Lista de campos para agregar un campo
Crear o modificar una relación en una base de datos web
Modificar una relación
Exigir integridad referencial
Eliminar una relación de tabla
Información general
En una base de datos normal de Access, puede crear una relación de tabla usando uno de los
siguientes métodos:
En la ventana Relaciones, agregue las tablas que desee relacionar y, a continuación, arrastre el campo para relacionarlo desde una tabla a otra tabla.
Arrastre un campo de una hoja de datos de tabla desde el panel Lista de campos.
Cuando se crea una relación entre tablas, los campos comunes no tienen que tener los mismos
nombres, si bien sus nombres suelen coincidir. Sin embargo, los campos comunes tienen que
tener el mismo tipo de datos. No obstante, si el campo de clave principal es un campo
Autonumeración, el campo de clave externa también puede ser un campo de tipo Número si la
propiedad Tamaño del campo de ambos campos tiene el mismo valor. Por ejemplo, puede hacer
coincidir un campo Autonumeración y un campo de tipo Número si la propiedad Tamaño del
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 17 de 29
campo de ambos campos es Entero largo. Cuando ambos campos comunes son campos de tipo
Número, tienen que tener el mismo valor para la propiedad Tamaño del campo.
Relaciones de bases de datos web
IMPORTANTE La ventana Relaciones no está disponible en una base de datos web.
En una base de datos web, cree una relación usando el asistente Búsqueda y relación. Agregue
un nuevo campo a una de las tablas, y el nuevo campo obtiene sus valores de una tabla existente.
Si desea cambiar una relación en una base de datos web, seleccione el campo relacionado y
ejecute de nuevo el asistente para búsquedas para modificar la relación.
Crear una relación de tabla mediante la ventana Relaciones
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
2. Si aún no ha definido ninguna relación, aparecerá automáticamente el cuadro de diálogo
Mostrar tabla. Si no aparece, en la ficha Diseño, en el grupo Relaciones, haga clic en
Mostrar tabla.
En el cuadro de diálogo Mostrar tabla se muestran todas las tablas y consultas de la base
de datos. Para ver únicamente las tablas, haga clic en Tablas. Para ver únicamente las
consultas, haga clic en Consultas. Para ver ambas, haga clic en Ambas.
3. Seleccione una o varias tablas o consultas y, a continuación, haga clic en Agregar.
Cuando termine de agregar tablas y consultas a la ficha de documentos Relaciones, haga clic
en Cerrar.
4. Arrastre un campo (normalmente el campo de clave principal) de una tabla al campo
común (la clave externa) en la otra tabla. Para arrastrar varios campos, presione la tecla CTRL,
haga clic en cada uno de los campos y, a continuación, arrástrelos.
Aparece el cuadro de diálogo Modificar relaciones.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 18 de 29
5. Compruebe que los nombres de campo mostrados son los campos comunes de la
relación. Si un nombre de campo es incorrecto, haga clic en él y seleccione el campo apropiado
en la lista.
Para exigir la integridad referencial para esta relación, active la casilla Exigir integridad
referencial. Para obtener más información sobre la integridad referencial, consulte la sección
Exigir integridad referencial.
6. Haga clic en Crear.
Access dibuja una línea de relación entre las dos tablas. Si activó la casilla Exigir integridad
referencial, la línea aparece más gruesa en los extremos. Además, solo si activó la casilla
Exigir integridad referencial, aparece el número 1 en 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, tal y como se muestra en la siguiente ilustración.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 19 de 29
NOTAS
Para crear una relación uno a uno. Ambos campos comunes (generalmente los campos de clave principal y clave externa) deben tener un índice único. Esto significa que la propiedad Indizado de estos campos debe tener el valor Sí (sin duplicados). Si ambos campos tienen un índice único, Access crea una relación uno a uno.
Para crear una relación uno a varios. El campo ubicado en el lado uno de la relación (normalmente, el campo de clave principal) tiene que tener un índice único. Esto significa que la propiedad Indizado de este campo debe tener el valor Sí (sin duplicados). El campo ubicado en el lado varios de la relación no debe tener un índice único. Puede tener un índice, pero debe permitir los duplicados. Esto significa que la propiedad Indizado de este campo debe tener el valor No o Sí (con duplicados). Cuando un campo tiene un índice único y el otro no, Access crea una relación uno a varios.
Crear una relación de tabla mediante el panel Lista de campos para agregar un campo
Se puede agregar un campo a una tabla existente abierta en la vista Hoja de datos arrastrándolo
desde el panel Lista de campos. El panel Lista de campos muestra los campos que están
disponibles en las tablas relacionadas así como los campos que están disponibles en las otras
tablas de la base de datos.
Cuando se arrastra un campo de "otra" tabla (no relacionada) y, a continuación, se ejecuta el
Asistente para búsquedas, se crea automáticamente una nueva relación uno a varios entre la
tabla en el panel Lista de campos y la tabla a la que se ha arrastrado el campo. Esta relación,
creada por Access, no exige la integridad referencial de manera predeterminada. Para exigirla, es
preciso modificar la relación. Vea la sección Modificar una relación de tabla para obtener más
información.
Abrir una tabla en la vista Hoja de datos
En el panel de navegación, haga doble clic en la tabla.
Abrir el panel Lista de campos
Presione ALT+F8. Aparece el panel Lista de campos.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 20 de 29
En el panel Lista de campos se muestran todas las otras tablas de la base de datos agrupadas
en categorías. Cuando trabaja con una tabla en la vista Hoja de datos, Access muestra los
campos de alguna de estas dos categorías en el panel Lista de campos: Campos disponibles
en tablas relacionadas y Campos disponibles en otras tablas. La primera categoría contiene
todas las tablas que tienen una relación con la tabla con la que se trabaja actualmente. La
segunda categoría contiene todas las tablas con las que la tabla no tiene ninguna relación.
En el panel Lista de campos, al hacer clic en el signo más (+) situado junto al nombre de una
tabla, aparece una lista de todos los campos disponibles en esa tabla. Para agregar un campo a la
tabla, arrastre el campo que desee del panel Lista de campos a la tabla en la vista Hoja de datos.
Agregar un campo y crear una relación desde el panel Lista de campos
1. Con la tabla abierta en la vista Hoja de datos, presione ALT+F8. Aparece el panel Lista de
campos.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 21 de 29
2. Bajo Campos disponibles en otras tablas, haga clic en el signo más (+) situado junto al
nombre de una tabla para mostrar la lista de los campos de esa tabla.
3. Arrastre el campo que desee del panel Lista de campos a la tabla abierta en la vista Hoja
de datos.
4. Cuando aparezca la línea de inserción, coloque el campo en su posición.
Se inicia el Asistente para búsquedas.
5. Siga las instrucciones para ejecutar el Asistente para búsquedas.
El campo aparece en la tabla en la vista Hoja de datos.
Cuando se arrastra un campo de "otra" tabla (no relacionada) y, a continuación, se ejecuta el
Asistente para búsquedas, se crea automáticamente una nueva relación uno a varios entre la
tabla en Lista de campos y la tabla a la que se ha arrastrado el campo. Esta relación, creada por
Access, no exige la integridad referencial de manera predeterminada. Para exigirla, es preciso
modificar la relación. Vea la sección Modificar una relación de tabla para obtener más información.
Crear o modificar una relación en una base de datos web
Para crear una relación en una base de datos web, debe usar el Asistente para búsquedas. La
ventana Relaciones no está disponible en una base de datos web. Use un campo en una tabla
como la fuente de los valores en el campo relacionado en otra tabla.
NOTA El campo que use como fuente para los valores ya debe existir antes de que pueda usar
el Asistente para búsquedas.
Crear una relación mediante el Asistente para búsquedas
1. Abra la tabla que debería obtener sus valores de la otra tabla.
2. A la derecha del último campo, haga clic en Haga clic para agregar y, a continuación,
haga clic en Búsqueda y relación.
NOTA Puede que tenga que desplazarse horizontalmente para ver Haga clic para agregar.
3. En la primera pantalla del Asistente para búsquedas, seleccione Deseo que campo de
búsqueda busque los valores en otra tabla o consulta y, a continuación, haga clic en
Siguiente.
4. Seleccione la tabla que tiene los valores de origen y, a continuación, haga clic en
Siguiente.
5. En el cuadro Campos disponibles, haga doble clic en el campo que contiene los valores
de origen y, a continuación, haga clic en Siguiente.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 22 de 29
6. De manera opcional, especifique un criterio de ordenación para el campo de búsqueda.
Haga clic en Siguiente.
7. De manera opcional, ajuste el ancho del campo de búsqueda, una buena idea si los
valores son largos. Haga clic en Siguiente.
8. Escriba un nombre para el nuevo campo. Si desea asegurarse de que los valores de las
dos tablas siempre coinciden, active la casilla Habilitar integridad de datos y, a
continuación, haga clic en una de las siguientes opciones:
Eliminación en cascada: esta opción significa que si elimina un registro de una tabla, los registros correspondientes de la otra tabla también se eliminan.
Eliminación restringida: esta opción significa que si intenta eliminar un registro de una tabla, pero hay un registro correspondiente en la otra tabla, la operación no se podrá realizar.
NOTA No seleccione Permitir varios valores en el Asistente para búsquedas si va a usar el
asistente para crear una relación.
Modificar una relación en una base de datos web
1. Abra la tabla que obtiene sus valores de otra tabla.
2. Seleccione el campo que obtiene sus valores de otra tabla.
3. En la ficha Campos, en el grupo Propiedades, haga clic en Modificar búsquedas.
4. Siga los pasos del asistente para realizar los cambios que desee. Puede cambiar lo
siguiente:
El campo que es fuente de los valores
El criterio de ordenación de los valores
El ancho del campo, y si ocultar la columna de clave
La etiqueta del campo de búsqueda
Si la integridad de datos está habilitada
Si la integridad de datos está habilitada y si la eliminación es en cascada o está restringida
Modificar una relación
Para cambiar una relación, selecciónela en la ventana Relaciones y, a continuación, modifíquela.
1. Coloque el cursor de modo que apunte a la línea de relación y, a continuación, haga clic en
la línea para seleccionarla.
La línea de relación aparece con mayor grosor cuando está seleccionada.
2. Con la línea de relación seleccionada, haga doble clic en ella.
O bien
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 23 de 29
En el grupo Herramientas de la ficha Diseño, haga clic en Modificar relaciones.
Aparece el cuadro de diálogo Modificar relaciones.
Abrir el cuadro de diálogo Modificar relaciones
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
Aparecerá la ventana Relaciones.
Si aún no ha definido ninguna relación y es la primera vez que abre la ventana Relaciones,
aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el cuadro de diálogo, haga clic en
Cerrar.
2. En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
Se muestran todas las tablas que tengan relaciones y las líneas de relación. 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.
3. Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea
de relación aparece con mayor grosor cuando está seleccionada.
4. Haga doble clic en la línea de relación.
O bien
En el grupo Herramientas de la ficha Diseño, haga clic en Modificar relaciones.
Aparece el cuadro de diálogo Modificar relaciones.
5. Realice los cambios y, a continuación, haga clic en Aceptar.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 24 de 29
El cuadro de diálogo Modificar relaciones permite cambiar una relación de tabla. En
concreto, se pueden cambiar las tablas, las consultas o los campos a ambos lados de la
relación. Se puede definir asimismo el tipo de combinación o exigir la integridad referencial y
elegir una opción en cascada. Para obtener más información sobre el tipo de combinación y
cómo configurarlo, vea la sección Configurar el tipo de combinación. Para obtener más
información sobre cómo exigir la integridad referencial y elegir una opción en cascada, vea la
sección Exigir integridad referencial.
Configurar el tipo de combinación
Cuando se define una relación de tabla, los hechos referentes a la relación determinan el diseño
de las consultas. Por ejemplo, si se define una relación entre dos tablas y, a continuación, se crea
una consulta que use las dos tablas, Access selecciona automáticamente los campos coincidentes
predeterminados basándose en los campos especificados en la relación. Se pueden reemplazar
los valores predeterminados iniciales en la consulta, pero los valores proporcionados por la
relación suelen ser los correctos. Dado que va a hacer coincidir y combinar con frecuencia los
datos de varias tablas hasta de las bases de datos más sencillas, la configuración de valores
predeterminados mediante la creación de relaciones puede ahorrarle tiempo y resultarle
beneficiosa.
Una consulta de varias tablas combina la información de más de una tabla haciendo coincidir los
valores de los campos comunes. Esta operación se denomina combinación. Por ejemplo,
supongamos que desea mostrar los pedidos de los clientes. Va a crear una consulta que combine
la tabla Clientes y la tabla Pedidos por el campo Id. de cliente. El resultado de la consulta contiene
información sobre los clientes y los pedidos sólo para las filas en las que se ha encontrado una
coincidencia.
Uno de los valores que se puede especificar para cada relación es el tipo de combinación, que
indica a Access qué registros se van a incluir en el resultado de una consulta. Por ejemplo,
consideremos de nuevo una consulta que combine la tabla Clientes y la tabla Pedidos por los
campos comunes que representan el Id. de cliente. Mediante el tipo de combinación
predeterminado (denominado combinación interna), la consulta devolverá únicamente las filas
Cliente y las filas Pedido en las que los campos comunes (denominados campos combinados)
sean iguales.
Sin embargo, supongamos que desea incluir a todos los clientes, incluso los que aún no han
realizado ningún pedido. Para ello, deberá cambiar el tipo de combinación de una combinación
interna a lo que se denomina una combinación externa izquierda. Este tipo de combinación
devuelve todas las filas de la tabla situada en el lado izquierdo de la relación y solo las filas que
coinciden con las de la tabla a la derecha. Una combinación externa derecha devuelve todas las
filas de la derecha y solo las filas que coinciden con las de la izquierda.
NOTA En este caso, "izquierda" y "derecha" hacen referencia a la posición de las tablas en el
cuadro de diálogo Modificar relaciones y no en la ventana Relaciones.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 25 de 29
Debe tener en mente el resultado que desea obtener de una consulta que combine las tablas de
esta relación y, a continuación, configurar el tipo de combinación en consecuencia.
Configurar el tipo de combinación
1. En el cuadro de diálogo Modificar relaciones, haga clic en Tipo de combinación.
Aparece el cuadro de diálogo Propiedades de la combinación.
2. Haga clic en la opción que desee y, a continuación, haga clic en Aceptar.
En la siguiente tabla (con las tablas Clientes y Pedidos) se muestran las tres opciones que
aparecen en el cuadro de diálogo Propiedades de la combinación, el tipo de combinación y si se
devuelven todas las filas o las filas coincidentes de cada tabla.
OPCIÓN COMBINACIÓN RELACIONAL
TABLA IZQUIERDA
TABLA DERECHA
1. Incluir solo las filas donde los campos combinados de ambas tablas sean iguales.
Combinación interna
Filas coincidentes
Filas coincidentes
2. Incluir TODOS los registros de 'Clientes' y solo aquellos registros de 'Pedidos' donde los campos combinados sean iguales.
Combinación externa izquierda
Todas las filas Filas coincidentes
3. Incluir TODOS los registros de 'Pedidos' y solo aquellos registros de 'Clientes' donde los campos combinados sean iguales.
Combinación externa derecha
Filas coincidentes
Todas las filas
Cuando selecciona la opción 2 ó 3, se muestra una flecha en la línea de relación. Esta flecha
apunta al lado de la relación en el que se muestran sólo las filas coincidentes.
Realizar cambios en el cuadro de diálogo Propiedades de la combinación
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
NOTA Si aún no ha definido ninguna relación y es la primera vez que abre la ventana
Relaciones, aparecerá el cuadro de diálogo Mostrar tabla. Si aparece el cuadro de diálogo,
haga clic en Cerrar.
2. En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
3. Se muestran todas las tablas que tengan relaciones y las líneas de relación. Observe que
no se muestran las tablas ocultas (tablas con la casilla de verificación Oculto activada en el
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 26 de 29
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.
4. Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea
de relación aparece con mayor grosor cuando está seleccionada.
5. Haga doble clic en la línea de relaciones. Aparecerá el cuadro de diálogo Modificar
relaciones.
6. Haga clic en Tipo de combinación.
7. En el cuadro de diálogo Propiedades de la combinación, haga clic en una opción y, a
continuación, haga clic en Aceptar.
8. Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
Exigir integridad referencial
La integridad referencial tiene como finalidad evitar los registros huérfanos, registros que hacen
referencia a otros registros que ya no existen. Para exigir la integridad referencial, es preciso
habilitarla para una relación de tabla. Una vez habilitada, Access rechazará todas las operaciones
que infrinjan la integridad referencial para esa relación de tabla. Esto significa que Access
rechazará las actualizaciones que cambien el destino de una referencia así como las
eliminaciones que quiten el destino de una referencia. Para que Access propague las
actualizaciones y eliminaciones referenciales de modo que todas las filas relacionadas cambien en
consecuencia, vea la sección Configurar las opciones en cascada.
Activar o desactivar la integridad referencial
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
2. En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 27 de 29
Se muestran todas las tablas que tengan relaciones y las líneas de relación. 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.
3. Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea
de relación aparece con mayor grosor cuando está seleccionada.
4. Haga doble clic en la línea de relaciones. Aparecerá el cuadro de diálogo Modificar
relaciones.
5. Active o desactive Exigir integridad referencial.
6. Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
Si habilita la integridad referencial, se aplican las siguientes reglas:
No se puede especificar un valor en el campo de clave externa de una tabla relacionada si ese valor no existe en el campo de clave principal de la tabla principal. En caso contrario, se crean registros huérfanos.
No se puede eliminar un registro de una tabla principal si existen registros coincidentes en una tabla relacionada. Por ejemplo, no se puede eliminar el registro de un empleado de la tabla Empleados si hay pedidos asignados a ese empleado en la tabla Pedidos. Sin embargo, se puede optar por eliminar un registro principal y todos los registros relacionados en una sola operación activando la casilla Eliminar en cascada los registros relacionados.
No se puede cambiar un valor de clave principal en la tabla principal si ese cambio crea registros huérfanos. Por ejemplo, no se puede cambiar un número de pedido en la tabla Pedidos si hay artículos de línea asignados a ese pedido en la tabla Detalles de pedidos. Sin embargo, se puede optar por actualizar un registro principal y todos los registros relacionados en una sola operación activando la casilla Actualizar en cascada los campos relacionados.
NOTAS
Si surgen problemas al habilitar la integridad referencial, observe que deben cumplirse las
siguientes condiciones para exigir la integridad referencial:
El campo común de la tabla principal debe ser una clave principal o debe tener un índice único.
Los campos comunes deben tener el mismo tipo de datos. Hay una excepción: un campo Autonumeración puede estar relacionado con un campo de tipo Número cuya propiedad Tamaño del campo tenga el valor Entero largo.
Ambas tablas existen en la misma base de datos de Access. No se puede exigir la integridad referencial en las tablas vinculadas. Sin embargo, si las tablas de origen tienen formato de Access, se puede abrir la base de datos en las que están almacenadas y habilitar la integridad referencial en esa base de datos.
Configurar las opciones en cascada
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 28 de 29
Puede darse el caso de que haya una necesidad válida de cambiar el valor en el lado "uno" de
una relación. En ese caso, es necesario que Access actualice automáticamente todas las filas
afectadas como parte de una sola operación. De ese modo, la actualización es completa y la base
de datos no tiene un estado incoherente, con algunas filas actualizadas y otras no. Access ayuda
a evitar este problema ya que 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, a continuación, se actualiza una clave principal, Access actualiza
automáticamente todos los campos que hacen referencia a la clave principal.
Puede que también haya que eliminar una fila y todos los registros relacionados; por ejemplo, un
registro Compañía de transporte y todos los pedidos relacionados de esa compañía de transporte.
Por ello, Access incluye la opción Eliminar en cascada los registros relacionados. Si se aplica la
integridad referencial y se activa la casilla Eliminar en cascada los registros relacionados,
Access elimina automáticamente todos los registros que hacen referencia a la clave principal
cuando se elimina el registro que contiene la clave principal.
Activar o desactivar la actualización y/o la eliminación en cascada
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
2. En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
Se muestran todas las tablas que tengan relaciones y las líneas de relación. 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.
3. Haga clic en la línea de relación correspondiente a la relación que desee cambiar. La línea
de relación aparece con mayor grosor cuando está seleccionada.
4. Haga doble clic en la línea de relación.
Aparece el cuadro de diálogo Modificar relaciones.
5. Active la casilla de verificación Exigir integridad referencial.
6. Active la casilla de verificación Actualizar en cascada los campos relacionados o
Eliminar en cascada los registros relacionados, o bien, active ambas.
7. Realice todos los cambios en la relación y, a continuación, haga clic en Aceptar.
NOTA Si la clave principal es un campo Autonumeración, la activación de la casilla Actualizar
en cascada los campos relacionados no tendrá ningún efecto porque no se puede cambiar el
valor de un campo Autonumeración.
IPAP - Tecnicatura Superior en Seguridad e Higiene Materia: Base de Datos – Unidad ll.l – Relaciones de Tablas Docente: Luis Fernando Leal
Página 29 de 29
Eliminar una relación de tabla
IMPORTANTE Cuando se quita una relación, también se quita la integridad referencial para esa
relación si está habilitada. Como resultado, Access ya no evitará automáticamente la creación de
registros huérfanos en el lado "varios" de una relación.
Para quitar una relación de tabla, es preciso eliminar la línea de relación en la ventana Relaciones.
Coloque el cursor de modo que apunte a la línea de relación y, a continuación, haga clic en la
línea. La línea de relación aparece con mayor grosor cuando está seleccionada. Con la línea de
relación seleccionada, presione SUPRIMIR.
1. En la ficha Herramientas de base de datos, en el grupo Relaciones, haga clic en
Relaciones.
2. En el grupo Relaciones de la ficha Diseño, haga clic en Todas las relaciones.
Se muestran todas las tablas con relaciones y las líneas de relación. 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.
3. Haga clic en la línea de relación correspondiente a la relación que desee eliminar. La línea
de relación aparece con mayor grosor cuando está seleccionada.
4. Presione la tecla SUPR.
5. Puede que Access muestre el mensaje ¿Confirma que desea eliminar de forma
permanente la relación seleccionada de la base de datos?. Si aparece este mensaje de
confirmación, haga clic en Sí.
NOTA Si alguna de las tablas empleadas en la relación de tabla están en uso, quizás por parte
de otra persona u otro proceso, o bien, en un objeto de base de datos abierto como puede ser un
formulario, no se podrá eliminar la relación. Es preciso cerrar todos los objetos abiertos que usen
estas tablas para poder quitar la relación.