Exigir integridad referencial

Al crear las relaciones entre tablas podemos elegir que se cumpla la integridad referencial entre dos tablas. Por ejemplo, entre la tabla de ventas de una librería y la tabla que recoge la información sobre los libros (isbn, titulo, autor, editorial, ...). Si en la relación entre ambas tablas exigimos integridad referencial siendo el campo de nexo el isbn, tendremos que dar de alta un libro con su isbn y demás datos antes de que se pueda usar ese isbn en la tabla de ventas. Esto tiene la ventaja de que nunca nos equivocaremos al decir que hemos vendido un libro con el isbn equivocado, ya que para que podamos vender un libro este tiene que estar previamente dado de alta en el inventario de libros .


SNAG-0013.jpg


Cuando exigimos integridad referencial entre dos tablas, al establecer sus relaciones, estamos exigiendo a Access que no nos permita introducir datos en un campo de la tabla secundario que no estuviera dado de alta en la tabla primaria siempre que este sea el campo que la relaciona.

En el ejemplo de la base de datos de la libreria, la tabla de libros es la tabla principal y el campo que une ambas tablas es el isbn. La tabla ventas es la tabla secundaria, y ambas se relacionan por una relación uno a varios. Al exigir integridad referencial no podremos vender un libro que previamente no estuviera dado de alta con su isbn correspondiente.

Es aconsejable marcar las tres casillas:
  1. Exigir integridad referencial
  2. Actualizar en cascada los campos relacionados
  3. Eliminar en cascada los registros relacionados

Actualizar en cascada los campos relacionados hace que al cambiar el valor del campo de la tabla principal automáticamente cambien esos mismos valores en la tabla secundaria.

Ejemplo. Supongamos que tenemos una tabla con el Catálogo de libros relacionada con una tabla de Editoriales. Si una editorial cambia de nombre y la actualizamos en la tabla principal de Editoriales automáticamente cambiará en la tabla secundaria del Catálogo para todos los registros.


Eliminar en cascada los registros relacionados hace que al borrar un registro de la tabla principal automaticamente se borren todos los registros de la tabla secundaria que donde aparece ese datos.

Ejemplo. Supongamos que tenemos una tabla con el Catálogo de libros relacionada con una tabla de Editoriales. La tabla de Editoriales sería la tabla principal y la del Catálogo la secundaria. Si una editorial desaparece y eliminamos su registro en la tabla de Editoriales, automáticamente desapareceran de nuestro Catálogo todos los libros que ofertaba esa editorial.

Si no marcamos ninguna de estas dos opciones no nos dejará cambiar el nombre de la editorial ni borrar ninguna editorial que ya este utilizada en la tabla secundaria del Catálogo.