SQL – Integrità referenziale

Con l’avvento dell’integrità referenziale nello standard SQL, alcuni controlli, come la verifica dell’esistenza di un Dipartimento con lo stesso cod_dipart per un Impiegato appena inserito viene delegata al DBMS.

Per un aggiornamento corretto ed efficiente dei dati nel database questi devono essere strutturati in una maniera particolare, detta forma normalizzata.

Dobbiamo tener conto che oltre la prima, la seconda e la terza forma normale esite anche la quarta e la quinta forma normale.

Supponiamo di avere la seguente struttura dati:

Dati di progetto

ed è non normalizzata.

I FORMA NORMALE

Il primo passo è quello di eliminare i gruppi ripetitivi per arrivare alla prima forma normale (1NF o FNF).

1NF

La teoria relazionale non consente che gruppi ripetitivi di colonne siano presenti nella stessa tabella. I dettagli del progetto non possono includere gruppi relativi di colonne che descrivono i compiti degli impiegati che lavorano sul progetto. Alcuni progetti prevedono un solo compito per impiegato, altri possono averne di più.

Per mantenete intatta l’originale relazione implicita tra progetto e compito, il cod_progetto è duplicato e utilizzato come colonna della chiave della tabella Compito.

Il processo viene ripetuto per altri gruppi ripetitivi in ogni tabella, passando dall’ordine più elevato a quello più basso e duplicando le chiavi successivamente ai livelli più bassi.

2 FORMA NORMALE

Il passo 2 consiste nella rimozione delle dipendenze delle chiavi parziali per arrivare alla seconda forma normale.

2NF

Se troviamo una o più colonne dipendenti soltanto da una parte della chiave composita, allora dovremo scindere di nuovo la tabella.

Notare che la tabella DETTAGLI_IMP include dei dati ripetitivi sulle precedenti funzioni di un impiegato. Ciò implica che questa tabella non è nella prima forma normale; pertanto dobbiamo scindere le colonne in CURRICULUM.

Terza forma normale

Il passo 3 consiste nella rimozione delle colonne transitivamente dipendenti.

Questo tipo di dipendenza si verifica quando le colonne di una tabella non descrivono l’oggetto rappresentato dalla tabella stessa, ma qualcos’altro identificato da una colonna che non è parte della chiave della tabella, per esempio le colonne della tabella Impiegato che descrivono le caratteristiche del dipartimento o i progetti che descrivono i dipartimenti per i quali sono stati programmati.

3NF

About Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
This entry was posted in Senza categoria. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *