Che cosa è integrità referenziale e come può un programmatore evitare questi problemi?

September 11

integrità referenziale è un vincolo applicato ad un database relazionale - un database in cui i dati e le relazioni tra di essi sono organizzati in tabelle di righe e colonne - in modo che i dati incoerenti non immessa. La maggior parte dei sistemi di gestione di database relazionale definiscono le regole di integrità referenziale che i programmatori si applicano quando si crea una relazione tra due tabelle.

Regola integrità referenziale

In sostanza, l'integrità referenziale afferma che un database non può contenere tutti i valori chiave esterna senza pari. Una chiave esterna è una colonna in una tabella di database che contiene i valori trovati anche nella colonna chiave primaria - un identificativo univoco che etichetta una riga nella tabella - in un'altra tabella. Ad esempio, si consideri una tabella di database denominato "Dipartimento", in cui una colonna chiamata "dept-no" è la chiave primaria. Si riferisce a un altro tavolo chiamato "dipendente", in cui "dept_no" è una chiave esterna. Un dipendente non può appartenere a un determinato reparto se il corrispondente "dept_no" non ne esiste già nella tabella "reparto". Se il programma di aggiungere dipendenti applica l'integrità referenziale, ogni tentativo di inserire un dipendente in un reparto sconosciuta non si verificherà.

Benefici

Oltre a garantire che i riferimenti tra i dati sono intatte e valide, che definisce l'integrità referenziale in un database ha numerosi vantaggi. L'integrità referenziale utilizza codice esistente in un motore di database piuttosto che richiedere ai programmatori di scrivere codice programma personalizzato da zero. Di conseguenza, lo sviluppo del programma è più veloce, meno soggetto a errori e coerente su più programmi applicativi che accedono a un database.

conseguenze

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

Rinforzo

I programmatori possono applicare l'integrità referenziale - ed evitare record "orfani" in un database - attivando per una relazione tra due tabelle. In Microsoft Access, ad esempio, far rispettare l'integrità referenziale provoca qualsiasi operazione che possa violare l'integrità referenziale da respingere. Tali operazioni comprendono aggiornamenti di un database che cambiano il target di riferimento, o delezioni che rimuovono il target di riferimento. Inoltre, Microsoft Access include anche una serie di opzioni, noti come le opzioni "a cascata". Queste opzioni consentono aggiornamenti referenziale e le eliminazioni di essere propagate in tutto il database, in modo che tutte le righe correlate vengono modificati di conseguenza.