Nwlapcug.com


Che cos'è l'integrità referenziale e come può un programmatore evitare questi problemi?

L'integrità referenziale è un vincolo applicato a un database relazionale, un database in cui i dati e le relazioni tra di essi sono organizzate in tabelle di righe e colonne-- così che non viene immesso dati incoerenti. Maggior parte dei sistemi di gestione di database relazionali definiscono regole di integrità referenziale che i programmatori si applicano quando si crea una relazione tra due tabelle.

Regola di integrità referenziale

Essenzialmente, l'integrità referenziale afferma che un database non può contenere eventuali valori di chiave esterna senza eguali. Una chiave esterna è una colonna in una tabella di database che contiene i valori trovati anche nella colonna chiave primaria - un identificatore univoco che identifica una riga nella tabella..--in un'altra tabella. Si consideri ad esempio una tabella di database denominata "dipartimento", in cui una colonna denominata "dept-no" è la chiave primaria. Si riferisce a un'altra tabella denominata "employee", che in cui "dept_no" è una chiave esterna. Un dipendente non può appartenere a uno specifico reparto se il corrispondente "dept_no" non esiste nella tabella "dipartimento". Se il programma per aggiungere dipendenti applica l'integrità referenziale, qualsiasi tentativo di inserire un dipendente in un reparto sconosciuto non si verifica.

Vantaggi

Oltre a garantire che i riferimenti tra dati siano integre e valido, definire l'integrità referenziale in un database presenta numerosi vantaggi. L'integrità referenziale viene utilizzato codice esistente in un motore di database, piuttosto che richiedere ai programmatori di scrivere codice di programma personalizzato da zero. Di conseguenza, lo sviluppo del programma è più veloce, meno soggetta a errori e coerente tra più programmi di applicazione che accede a un database.

Conseguenze

Purtroppo, linguaggi di programmazione in genere mancano un meccanismo per applicare l'integrità referenziale e, anche quando un sistema di gestione di database relazionali supporta tale meccanismo, i programmatori non riescono spesso a usarlo. La conseguenza di ignorare l'integrità referenziale è codice di programma che contiene i difetti, o bug, esegue male ed è difficile da estendere.

Applicazione

I programmatori possono applicare l'integrità referenziale..--ed evitare "orfani" record in un database..--semplicemente attivandolo per una relazione tra due tabelle. In Microsoft Access, ad esempio, applicazione dell'integrità referenziale, qualsiasi operazione che possa violare l'integrità referenziale viene respinto. Tali operazioni includono gli aggiornamenti in un database che cambiare la destinazione di un riferimento, o le omissioni che rimuovere la destinazione di un riferimento. Inoltre, Microsoft Access include anche un set di opzioni, noto come opzioni "a cascata". Queste opzioni consentono referenziali aggiornamenti ed eliminazioni vengano propagate in tutto il database, in modo che tutte le righe correlate vengano modificate di conseguenza.