16.11.08

Integridad referencial

La INTEGRIDAD REFERENCIAL es un sistema de reglas que utiliza Microsoft Access para garantizar que las relaciones entre los registros de tablas relacionadas son válidas y que no se eliminan ni modifican accidentalmente datos relacionados. Puede establecer la integridad referencial cuando se cumplen todas las condiciones siguientes:

* El campo coincidente de la tabla principal es una clave principal o tiene un índice único.

* Los campos relacionados tienen el mismo tipo y tamaño de datos. Hay dos excepciones. Un campo Autonumérico puede estar relacionado con un campo Numérico con la propiedad TamañoDelCampo (FieldSize) establecida en Entero Largo, y un campo Autonumérico con la propiedad TamañoDelCampo (FieldSize) establecida en Id. de réplica puede estar relacionado con un campo Numérico con la propiedad TamañoDelCampo (FieldSize) establecida en Id. de réplica.

* Ambas tablas pertenecen a la misma base de datos de Microsoft Access. Si las tablas son tablas vinculadas, deben ser tablas en el formato de Microsoft Access y debe abrir la base de datos en la que están almacenadas para poder establecer la integridad referencial. La integridad referencial no puede exigirse para tablas vinculadas procedentes de bases de datos en otros formatos.

Cuando se utiliza la integridad referencial, se aplican las siguientes reglas:

* No puede introducir un valor en el campo de clave externa de la tabla relacionada que no exista en la clave principal de la tabla principal. No obstante, puede introducir un valor Nulo en la clave externa, especificando que los registros no están relacionados. Por ejemplo, no puede tener un pedido asignado a un cliente que no existe, pero puede tener un pedido asignado a nadie mediante la introducción de un valor Nulo en el campo Id. de cliente.

* No puede eliminar un registro de una tabla principal si existen registros coincidentes en una tabla relacionada. Por ejemplo, no puede eliminar un registro de empleados de la tabla Empleados si existen pedidos asignados al empleado en la tabla Pedidos.

* No puede cambiar un valor de clave principal en la tabla principal si ese registro tiene registros relacionados. Por ejemplo, no puede cambiar el Id. de un empleado en la tabla Empleados si existen pedidos asignados a ese empleado en la tabla Pedidos.

Actualizaciones y eliminaciones en cascada:

Para las relaciones en las que se exige la integridad referencial, puede especificar si desea que Microsoft Access actualice en cascada y elimine en cascada automáticamente los registros relacionados. Si establece estas opciones, las operaciones de eliminación y actualización que normalmente impediría la integridad referencial se permiten ahora. Al eliminar registros o al cambiar los valores de clave principal de una tabla principal, Microsoft Access realiza los cambios necesarios en las tablas relacionadas con el fin de conservar la integridad referencial.

SI activa la casilla de verificación Actualizar en cascada los campos relacionados al definir una relación, siempre que cambie la clave principal de un registro de la tabla principal, Microsoft Access actualizará automáticamente la clave principal con el nuevo valor en todos los registros relacionados. Por ejemplo, si cambia un Id. de cliente en la tabla Clientes, el campo Id. de cliente de la tabla Pedidos se actualizará automáticamente en cada uno de los pedidos de ese cliente, de modo que la relación no se rompa. Microsoft Access actualiza en cascada sin mostrar ningún mensaje.

Nota Si la clave principal de la tabla 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.

Si selecciona la casilla de verificación Eliminar en cascada los registros relacionados al definir una relación, siempre que elimine registros de la tabla principal, Microsoft Access eliminará automáticamente los registros relacionados de la tabla relacionada. Por ejemplo, si elimina el registro de un cliente de la tabla Clientes, todos los pedidos del cliente se eliminarán automáticamente de la tabla Pedidos (esto incluye los registros de la tabla Detalles de pedidos relacionados con los registros de Pedidos). Al eliminar registros de un formulario u hoja de datos con la casilla de verificación Eliminar en cascada los registros relacionados activada, Microsoft Access le avisa que es posible que también se eliminen los registros relacionados. No obstante, al eliminar registros mediante una consulta de eliminación, Microsoft Access elimina automáticamente los registros de las tablas relacionadas sin mostrar un aviso.