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.