I database usano le tabelle per organizzare le informazioni che contengono. Sono simili ai fogli di calcolo, come Excel, ma molto più capaci per gli utenti avanzati. I database funzionano con l'uso di chiavi primarie e chiavi esterne, che mantengono la relazione tra le tabelle.
L'integrità referenziale è una funzionalità di database nei sistemi di gestione di database relazionali. Assicura che le relazioni tra le tabelle in un database rimangano accurate applicando i vincoli per impedire agli utenti o alle applicazioni di immettere dati inaccurati o puntare a dati che non esistono.
Chiave primaria
La chiave primaria di una tabella di database è un identificatore univoco assegnato a ciascun record. Ogni tabella ha una o più colonne designate come chiave primaria. Un numero di previdenza sociale può essere una chiave primaria per un elenco di dipendenti del database perché ogni numero di previdenza sociale è unico.
Tuttavia, a causa di problemi di privacy, un numero ID di società assegnato è una scelta migliore per funzionare come chiave primaria per i dipendenti. Alcuni software di database, come Microsoft Access, assegna automaticamente la chiave primaria, ma la chiave casuale non ha un significato reale. È meglio usare una chiave con significato per la registrazione.
Il modo più semplice per applicare l'integrità referenziale non è consentire modifiche a una chiave primaria.
Chiave esterna
Una chiave esterna è un identificatore in una tabella che corrisponde alla chiave primaria di una tabella diversa. La chiave esterna crea la relazione con una tabella diversa. L'integrità referenziale si riferisce alla relazione tra queste tabelle.
Quando una tabella ha una chiave esterna in un'altra tabella, il concetto di integrità referenziale afferma che non è possibile aggiungere un record alla tabella che contiene la chiave esterna a meno che non vi sia un record corrispondente nella tabella collegata. Include anche le tecniche note come aggiornamento a cascata e eliminazione a catena, che garantiscono che le modifiche apportate alla tabella collegata vengano riflesse nella tabella primaria.
Esempio di regole di integrità referenziale
Si consideri, ad esempio, la situazione in cui si hanno due tabelle: dipendenti e manager. La tabella Impiegati ha un attributo di chiave esterna denominato ManagedBy, che indica il record per il manager di ciascun dipendente nella tabella Managers. L'integrità referenziale applica le seguenti tre regole:
- Non è possibile aggiungere un record alla tabella Impiegati a meno che l'attributo ManagedBy non punti a un record valido nella tabella Managers. L'integrità referenziale impedisce l'inserimento di dettagli errati in una tabella. Qualsiasi operazione che non soddisfa la regola di integrità referenziale ha esito negativo.
- Se la chiave primaria di un record nella tabella Managers cambia, tutti i record corrispondenti nella tabella Impiegati vengono modificati utilizzando un aggiornamento a cascata.
- Se viene eliminato un record nella tabella Managers, tutti i record corrispondenti nella tabella Impiegati vengono eliminati utilizzando un'eliminazione a cascata.
Vantaggi dei vincoli di integrità referenziale
L'utilizzo di un sistema di gestione di database relazionali con integrità referenziale offre diversi vantaggi:
- Previene l'inserimento di dati duplicati
- Impedisce a una tabella di puntare a un campo inesistente in un'altra tabella
- Garantisce la coerenza tra le tabelle "partnered"
- Impedisce la cancellazione di un record che contiene un valore riferito da una chiave esterna in un'altra tabella
- Impedisce l'aggiunta di un record a una tabella che contiene una chiave esterna a meno che non ci sia una chiave primaria nella tabella collegata