INTEGRITÀ REFERENZIALE

Quando si crea una relazione in Access, questa prevede (generalmente) l'integrità referenziale. L'INTEGRITÀ REFERENZIALE è una proprietà delle relazioni, che la guida di Windows definisce nel modo seguente:
"sistema di regole utilizzate per assicurare che le relazioni tra i record delle tabelle correlate siano valide e che non vengano eliminati o modificati per errore i dati correlati."
In termini più semplici, ogni relazione di Access deve avere l'integrità referenziale, sono molto rare le eccezioni ed hanno scopi particolari. L'integrità referenziale, sostanzialmente, effettua un controllo sull'inserimento dei dati: verifica che i valori inseriti nel campo chiave esterna siano "compatibili" con quelli della chiave primaria. Con un esempio il concetto diventa molto più semplice.

ESEMPIO.
Consideriamo le tabelle rappresentate nella figura 15.01.



FIG. 15.01


Nella tabella Tlibri si vuole inserire "I promessi sposi" di Alessandro Manzoni. Senza l'integrità referenziale tale operazione sarebbe possibile, in quanto il programma non controlla se i dati inseriti nella chiave esterna (campo IdAutore della tabella Tlibri) corrispondono a quelli della chiave primaria (campo IdAutore della tabella Tautori). Potrebbe, pertanto, essere inserita il record seguente:

1 Promessi Sposi 5

dove il numero 5 identifica l'autore Manzoni, che però non è presente nella tabella Tautori.
Con l'integrità referenziale, tentando di inserire il record precedente, il programma segnalerebbe un errore, figura 15.02.



FIG. 15.02


L'integrità referenziale controlla, durante l'inserimento di un nuovo libro, che l'autore del libro sia presente nella tabella Tautori. Prima si deve inserire il record dell'autore, nella tabella Tautori, solo successivamente è possibile inserire il libro, dello stesso autore.

Quando si seleziona l'integrità referenziale, si rendono disponibili altre due proprietà:

- AGGIORNA CAMPI CORRELATI A CATENA: fa in modo che, quando si modifica il valore nel campo chiave primaria, venga automaticamente aggiornato il valore corrispondente nella chiave esterna. Per fare un esempio banale (non proponibile nella realtà), se l'autore Manzoni cambiasse IdAutore nella tabella Tautori, sarebbe modificato automaticamente anche il valore del campo IdAutore nella tabella Tlibri. In genere, questa proprietà è sempre attiva in quanto molto comoda nella maggior parte delle situazioni.
-
ELIMINA CAMPI CORRELATI A CATENA: quando si elimina uno (o più) record nel lato uno della relazione, automaticamente sono eliminati tutti i record del lato molti con la chiave esterna corrispondente. Per esempio, eliminando un autore nella tabella Tautori, verrebbero eliminati anche tutti i suoi libri. Prima di rendere attiva questa proprietà si deve analizzare in dettaglio la situazione, in quanto è molto pericolosa: potrebbe succedere che, partendo da pochi record di una tabella, siano eliminati migliaia di record in altre tabelle.