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

L'integrità referenziale impedisce l'introduzione di dati inconsistenti.

Regola dell'integrità referenziale

Fondamentalmente, l'integrità referenziale dice che un database non può avere valori di chiavi estranee non appaiati. Una chiave esterna è una colonna in una tabella del database con valori nella colonna della chiave primaria, un identificativo univoco che identifica una riga in una tabella, in un'altra tabella. Ad esempio, si consideri una tabella di database chiamata "dipartimento", in cui è presente una colonna denominata "numero reparto" come chiave primaria. È correlato a un'altra tabella denominata "dipendente", in cui "numero di reparto" è una chiave esterna. Un dipendente non può appartenere a un determinato reparto se il corrispondente "numero di reparto" non esiste già nella tabella "dipartimento". Se il programma che aggiunge dipendenti rafforza l'integrità referenziale, non sarà possibile alcun tentativo di inserire un dipendente in un reparto sconosciuto.

vantaggio

Oltre a garantire che questi riferimenti tra i dati siano intatti e validi, la definizione dell'integrità referenziale di un database presenta numerosi vantaggi. L'integrità referenziale utilizza il codice esistente in un motore di database invece di chiedere ai programmatori di scrivere codice del programma personalizzato da zero. Di conseguenza, lo sviluppo di programmi è più rapido, meno soggetto a errori e coerente tra diversi programmi applicativi che accedono al database.

urto

Sfortunatamente, i linguaggi di programmazione spesso non hanno i meccanismi per applicare l'integrità referenziale, e anche quando un sistema di gestione di database supporta tali meccanismi, i programmatori non riescono ad usarli. La conseguenza di ignorare l'integrità referenziale è che il codice di programmazione che presenta difetti, errori, malfunzionamenti ed è difficile da estendere.

applicazione

I programmatori possono applicare l'integrità referenziale ed evitare i record "orfani" in un database, abilitandolo in una relazione tra due tabelle. In Microsoft Access, ad esempio, l'applicazione dell'integrità referenziale significa che qualsiasi operazione che violi viene respinta. Questi tipi di operazioni includono aggiornamenti al database che modificano l'oggetto di un riferimento o eliminazioni che eliminano l'oggetto di un riferimento. Inoltre, Microsoft Access ha anche una serie di opzioni, note come opzioni "a cascata". Queste opzioni consentono agli annunci referenziali e cancellati di essere propagati dal database, in modo che tutte le righe correlate cambino nello stesso modo.