Integrità referenziale
Integrità dei dati Sappiamo già dell’integrità sull’entità o vincolo di chiave che non consente valori nulli e valori duplicati per la chiave Esistono altre regole di integrità e in particolare vincoli di tupla vincoli di integrità referenziale
Esempio Studenti Scuole Matricola Cognome Nome DataNascita CodScuola 545 Rossi Maria NULL 125 653 Neri Anna 20-set-98 768 Verdi Ugo 30-ott-99 Marco 32-ott-98 180 314 Bruni Pio 27-ott-99 185 Codice NomeScuola 125 ITC Manzoni 180 Liceo Dante 190 Liceo Fermi NULL ITIS Galvani L’integrità di chiave impedi-sce la presenza di valori nulli nella chiave I vincoli di tupla esprimono condizioni che devono essere rispettate dai valori di ciascuna n-upla della relazione, indipendentemente dalle altre L’integrità referenziale è un insieme di regole che garantisco l’integrità quan-do si hanno tabelle associate tra loro attraverso la chiave esterna. L’integrità referenziale richiede che per ogni valore non nullo della chiave esterna, esista un valore corrispondente della chiave primaria nella tabella associata.
I vincoli di tupla I vincoli di tupla esprimono condizioni che devono essere rispettate dai valori di ciascuna n-upla della relazione, indipendentemente dalle altre. In particolare devono rispettare il vincolo di dominio per gli attributi (per evitare valori errati o NULL)
L’integrità referenziale L’integrità referenziale è un insieme di regole che garantisco l’integrità quando si hanno tabelle associate tra loro attraverso la chiave esterna: queste regole servono per rendere valide le associazioni tra tabelle e per eliminare gli errori di inserimento, cancellazione o modifica di dati collegati tra loro. L’integrità referenziale richiede che per ogni valore non nullo della chiave esterna, esista un valore corrispondente della chiave primaria nella tabella associata.
Situazione possibile Ogni valore di FK1 deve avere un valore di K1 in una delle righe di Relazione1 oppure, in alternativa, il valore di FK1 è nullo Ogni valore non nullo di FK1 deve comparire in K1 Relazione2 Relazione1 Chiave B1 B2 FK1 --------- ------- xxxx NULL K1 A1 A2 A3 A4 xxxx -------
Regole da applicare Non è possibile immettere un valore nella chiave esterna della tabella associata se tale valore non esiste nella tabella primaria. È possibile, tuttavia, immettere un valore nullo per esprimere che le tabelle non sono correlate. Non è possibile eliminare una n-pla dalla tabella primaria se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata. Non si può modificare, come è ovvio, il valore della chiave nella tabella primaria, se ad essa corrispondono righe nella tabella correlata.