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.