di: Francesco Quaratino 27 Novembre 2007
Il concetto di integrità applicato ad un database si traduce nel tenere sotto controllo la consistenza e la precisione dei dati. Bisogna assicurarsi che un campo possa accettare un determinato insieme di valori (Integrità di dominio), che ogni tabella abbia un insieme di campi che fungano da indentificatore univoco di ogni riga (Integrità di entità) e che le relazioni definite tra le tabelle non possano essere violate (Integrità referenziale).
Questo articolo tratta l'implementazione fisica in SQL Server 2005 dell'integrità dei dati in un database OLTP concentrandosi su quella referenziale.
L'integrità referenziale coinvolge due tabelle: una "referenced table" (tabella referenziata) che contiene la chiave primaria (PRIMARY KEY o PK) e una "referencing table" (tabella referenziante) che si lega ad essa attraverso una chiave esterna (FOREIGN KEY o FK).
Nota: È utile ricordare che la PRIMARY KEY di una tabella è l'insieme di colonne in cui valori, presi insieme, sono univoci nell'ambito della tabella. Perciò, si suol dire che la PK è in grado di identificare univocamente una riga di tabella.
Oltre che a una PK, la FK può far riferimento ad una colonna (o un insieme di colonne) su cui è definito un vincolo di unicità (UNIQUE CONSTRAINT). In ogni caso occorre che il tipo di dato delle colonne in relazione sia identico (salvo l'attributo di NULL/NOT NULL).
Tale legame può essere più o meno "forte". Ad esempio si può prevedere un vincolo di partecipazione tra due tabelle tale che, cancellando una record identificato dalla relativa PK sulla tabella referenziata, vengano cancellati tutti i record, sulla tabella referenziante, che fanno riferimento quella chiave primaria.
Figura 1. Esempio di "cancellazione a cascata"
In ogni caso, la relazione condizionerà la tabella referenziante poiché in essa non sarà possibile inserire o aggiornare il valore di una chiave esterna se tale valore non esiste in un'istanza della PK della tabella referenziata.
|
SQL Maintenance Solution: soluzione free per la manutenzione di SQL Server |
Guida AccessIniziare a sviluppare database grazie alla potenza visuale offerta... |
Guida SQL Server 2005L'RDBMS di Microsoft è uno dei più utilizzati, soprattutto in ambito... |
Guida OracleScoprire ed approfondire un dei più importanti RDBMS sulla scena... |
Ogni settimana, in due distinte newsletter: notizie a approfondimenti su MySQL, SQLserver e Oracle.
Iscriviti alla newsletter