33- Relaciones Tablas Access
Fuente:
Microsoft Office Access 2007
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 sólo una
vez. A continuación, se debe proporcionar a
Microsoft Office Access 2007 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 de Office Access 2007.
VER RELACIONES DE TABLA
Tras crear una
tabla para cada tema en la base de datos, es preciso
proporcionar a Office Access 2007 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:
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 RELACIONES TABLAS
Existen tres tipos de relaciones de tabla.
Una relación uno
a varios
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 de 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 un 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 le denominaría Id. de cliente.
Access utilizaría entonces el número de
identificador del cliente de la tabla Pedidos para
localizar el cliente correcto de cada producto.
Una relación de
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 sólo
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 sólo 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 TABLA?
Puede crear
relaciones de tabla explícitamente mediante la
ventana Relaciones, o arrastrando un campo desde el
panel Lista de campos . Office Access 2007 usa
relaciones de tabla para combinar tablas si hay que
utilizarlas en un objeto de base de datos. Existen
varias razones por las que se deben crear relaciones
de tabla antes de crear otros objetos de base de
datos, como formularios, consultas e informes.
Las relaciones
de tabla informan de 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, Office
Access 2007 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 tabla 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 informan de los diseños de formulario e
informe
Al diseñar un
formulario o informe, Office Access 2007 utiliza la
información recopilada de las relaciones de tabla 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 Office Access 2007 los medios para
recopilar de nuevo la información, colocando campos
comunes en tablas relacionadas. Por ejemplo, para
representar una relación de uno a varios se toma la
clave principal de la tabla "uno" y se agrega como
un campo adicional a la tabla "varios". Para
recopilar de nuevo los datos, Access toma el valor
de la tabla "varios" y busca el valor
correspondiente en la tabla "uno". De este modo los
valores de la tabla "varios" hacen referencia a los
valores correspondientes de la tabla "uno".
Suponga que
tiene una relación de uno a varios entre las tablas
Transportistas y Pedidos y desea eliminar un
transportista. Si el destinatario que desea quitar
tiene pedidos en la tabla Pedidos, dichos pedidos
quedarán "huérfanos" si elimina el registro
Transportista. Los pedidos todavía contendrán un
Id.de transportista, pero el Id. ya no será válido,
porque el registro al que hace referencia ya no
existe.
El propósito de
la integridad referencial es evitar los registros
huérfanos y mantener las referencias sincronizadas
para que esta situación hipotética no ocurra nunca.
La integridad
referencial se aplica habilitándola 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 de 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, 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 TABLA
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.
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el grupo
Mostrar u ocultar de la ficha Herramientas de base
de datos, haga clic en Relaciones.
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.
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
exploración.
La
clave principal
Esta
línea representa la relación
La
clave externa
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 en la cinta de opciones, que
forma parte de la Interfaz de usuario de Microsoft
Office Fluent:
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 de la visualización todas las relaciones y
tablas en la ventana Relaciones. Observe que este
comando sólo oculta las relaciones y tablas, no las
elimina.
Informe
Relaciones Crea un informe que muestra las
relaciones y tablas de la base de datos. El informe
sólo 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 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 exploración.
Cerrar Cierra la
ventana Relaciones. Si realiza algún cambio en el
diseño de la ventana Relaciones, le pedirán 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. Sin embargo, dichos campos tienen que
tener el mismo tipo de datos. No obstante, si el
campo de clave principal es un campo Autonumérico,
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 Autonumérico 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, tienen que tener
el mismo valor para la propiedad Tamaño del campo.
Crear una
relación de tabla mediante la ventana Relaciones
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el grupo
Mostrar u ocultar de la ficha Herramientas de base
de datos, haga clic en Relaciones.
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.
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.
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.
Aparecerá el
cuadro de diálogo Modificar relaciones.
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 de 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.
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 aparecerá más gruesa en los
extremos. Además, sólo 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 (normalmente
los campos de clave principal y de clave externa)
tienen que tener un índice único. Esto significa que
la propiedad Indexado 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 Indexado 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 Indexado 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
En Office Access
2007, 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
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el panel de
exploración, haga clic con el botón secundario del
mouse (ratón) en la tabla a la que desee agregar el
campo, cree la relación y haga clic en Vista Hoja de
datos en el menú contextual.
Abrir el panel
Lista de campos
En el grupo
Campos y columnas de la ficha Hoja de datos, haga
clic en Agregar campos existentes.
Aparecerá 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 a un nombre de 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
En el grupo
Campos y columnas de la ficha Hoja de datos, haga
clic en Agregar campos existentes.
Aparecerá el
panel Lista de campos.
Bajo 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.
Arrastre el
campo que desee del panel Lista de campos a la tabla
abierta en la vista Hoja de datos.
Cuando aparezca
la línea de inserción, coloque el campo en su
posición.
Se iniciará el
Asistente para búsquedas.
Siga las
instrucciones para completar 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 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
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 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.
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el grupo
Mostrar u ocultar de la ficha Herramientas de base
de datos, 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.
Aparecerán todas
las tablas que tengan relaciones, mostrando las
líneas de relación.
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.
Presione la
tecla SUPRIMIR.
O bien,
Haga clic con el
botón secundario y, a continuación, haga clic en
Eliminar.
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.
Realice sus
cambios en el cuadro de diálogo Modificar relaciones
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el grupo
Mostrar u ocultar de la ficha Herramientas de base
de datos, 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.
Aparecerán todas
las tablas que tengan relaciones y se muestran las
líneas de relación. Observe que las tablas ocultas
(las tablas que tienen activada la casilla de
verificación Oculto en el cuadro de diálogo
Propiedades) y las relaciones no se muestran a menos
que se seleccione Mostrar objetos ocultos en el
cuadro de diálogo Opciones de exploración.
Haga clic en la
línea de relación de la relación que desee
modificar. La línea de relación aparece con mayor
grosor cuando está seleccionada.
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.
Aparecerá el
cuadro de diálogo Modificar relaciones.
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.
Establecer 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
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 sólo
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 sólo 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.
Establecer el
tipo de combinación
En el cuadro de
diálogo Modificar relaciones, haga clic en Tipo de
combinación.
Aparecerá el
cuadro de diálogo Propiedades de la combinación.
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 sólo 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 sólo
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 s����������������������������lo
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
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el grupo
Mostrar u ocultar de la ficha Herramientas de base
de datos, 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.
Aparecerán todas
las tablas que tengan relaciones, mostrando las
líneas de relación. 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 exploración.
Para obtener más
información sobre la opción Mostrar objetos ocultos,
vea el artículo
Guía del panel de exploración.
Haga clic en la
línea de relación de la relación que desee
modificar. La línea de relación aparece con mayor
grosor cuando está seleccionada.
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.
Aparecerá el
cuadro de diálogo Modificar relaciones.
Haga clic en
Tipo de combinación.
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.
Realice cambios adicionales 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
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el grupo
Mostrar u ocultar de la ficha Herramientas de base
de datos, 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.
Aparecerán todas
las tablas que tengan relaciones, mostrando las
líneas de relación. Observe que las tablas ocultas
(las tablas que tienen activada la casilla de
verificación Oculto check box in the table's
Propiedades dialog box is selected) and their
relationships will not be shown unless Show Hidden
Objects is selected in the Navigation Options dialog
box.
Haga clic en la
línea de relación de la relación que desee
modificar. La línea de relación aparece con mayor
grosor cuando está seleccionada.
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.
Aparecerá el
cuadro de diálogo Modificar relaciones.
Active la
casilla de verificación Exigir integridad
referencial.
Realice cambios
adicionales en la relación y, a continuación, haga
clic en Aceptar.
Tras aplicar 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 de verificación 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 articulos 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 Autonumérico puede estar
relacionado con un campo de tipo N��mero cuya
propiedad Tamaño del campo tenga el valor Largo
entero.
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 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
Haga clic en el
botón de Microsoft Office
y,
a continuación, haga clic en Abrir.
En el cuadro de
diálogo Abrir, seleccione y abra la base de datos.
En el grupo
Mostrar u ocultar de la ficha Herramientas de base
de datos, 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.
Aparecerán todas
las tablas que tengan relaciones, mostrando las
líneas de relación. 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 exploración.
Haga clic en la
línea de relación de la relación que desee
modificar. La línea de relación aparece con mayor
grosor cuando está seleccionada.
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.
Aparecerá el
cuadro de diálogo Modificar relaciones.
Active la
casilla de verificación Exigir integridad
referencial.
Active la
casilla de verificación Actualizar en cascada los
campos relacionados o Eliminar en cascada los
registros relacionados, o bien, active ambas.
Realice cambios
adicionales en la relación y, a continuación, haga
clic en Aceptar.
Nota Si la clave
principal es un campo Autonumérico, 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
Autonumérico