L'integrità referenziale è un vincolo applicato a un database relazionale - una banca dati in cui i dati e le relazioni tra di essi sono organizzati in tabelle di righe e colonne - in modo che i dati non coerenti ? non è entrato . Sistemi di gestione di database relazionali più definiscono le regole di integrità referenziale che i programmatori si applicano quando si crea una relazione tra due tabelle . Integrità referenziale regola
sostanza, integrità referenziale afferma che un database non può contenere tutti i valori chiave esterna senza eguali . Una chiave esterna è una colonna in una tabella del database che contiene i valori anche trovati nella colonna chiave primaria - un identificatore univoco che contrassegna una riga della tabella - in un altro tavolo . Si consideri ad esempio 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 esiste già nella tabella "dipartimento" . Se il programma di aggiungere dipendenti applica l'integrità referenziale , ogni tentativo di inserire un dipendente in un reparto di sconosciuta non si verificherà.
Vantaggi
Oltre a garantire che i riferimenti tra i dati sono intatti e validi , definendo l'integrità referenziale in un database ha numerosi vantaggi . L'integrità referenziale utilizza il 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 soggetto a errori e coerente su più programmi applicativi che accedono a un database.
Conseguenze
Purtroppo , linguaggi di programmazione in genere non dispongono 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 estendere
Enforcement
I programmatori possono applicare l'integrità referenziale . - ed evitare record " orfani" in un database - attivandola per una relazione tra due tabelle . In Microsoft Access , ad esempio , applicare l'integrità referenziale provoca qualsiasi operazione che possa violare l'integrità referenziale essere respinta . Tali operazioni comprendono aggiornamenti di un database che cambia la destinazione di un riferimento , o delezioni che rimuovono il target di riferimento. Inoltre , Microsoft Access include anche una serie di opzioni , nota come opzioni "a cascata" . Queste opzioni consentono aggiornamenti referenziali e le cancellazioni da essere propagati in tutto il database , in modo che tutte le righe correlate vengono modificate di conseguenza.