mercoledì 3 giugno 2009

Normalizzazione: una spiegazione


Quanti di voi sanno cosa significhi "normalizzare"?
Semplicemente significa rendere più normale un oggetto: cioè eliminare rindondanza e anomalie. La normalizzazione è dunque un processo che rende un oggetto più conforme a un criterio di regolarità.

E' un processo graduale che rende possibile una ottimizazione progressiva: i dati non vengono ripetuti e vengono organizzati in più tabelle legate da relazioni.
Quando una relazione non è normalizzata presenta rindondanze e si presta a comportamenti poco desiderabili durante gli aggiornamenti.
Per studiare in maniera sistematica questi aspetti è necessario introdurre un vincolo di integrità: la dipendenza funzionale.
Prendiamo una relazione r su uno schema R(X);
prendiamo due sottoinsiemi non vuoti Y e Z di X;
siste in r una dipendenza funzionale da Y a Z se per ogni coppia di n t1 e t2 di r con gli stessi valori su Y, risulta che t1 e t2 hanno gli stessi valori anche su Z.

Un esempio:
ogni impegato ha un solo stipendio, anche se partecipa a più progetti,
ogni progetto ha un solo bilancio, anche se partecipano più impegati,
ogni impiegato in ciascun progetto ha una sola funzione, anche se può avere funzioni diverse in progetti diversi.
Quindi:
impiegato > stipendio
progetto > bilancio
impiegato progetto > funzione
impiegato progetto > progetto

Un altro esempio: se consideriamo CAP, città, provincia, abbreviazione nome regione, nome regione: il CAP è un codice univoco di cinque caratteri, è una chiave, perhcè determina tutti gli altri campi che dipendono funzionalmente da esso.


Esistono differenti livelli di normalizzazione , dette forme normali:

prima forma normale:
Definizione: Si dice che una base dati è in 1NF (prima forma normale) se vale la seguente relazione per ogni relazione contenuta nella base dati:

A. una relazione è in 1NF se e solo se:non presenta gruppi di attributi che si ripetono
B. esiste una chiave primaria (ossia esiste un insieme di attributi, che identifica in modo univoco ogni tupla della relazione)
Attr1 Attr2 Attr3
Tupla 1
Tupla 2 x
Tupla 3
Tupla 4

Seconda forma normale

Definizione: Una base dati è invece in 2NF (seconda forma normale) quando è in 1NF e per ogni tabella tutti i campi non chiave dipendono funzionalmente dall'intera chiave primaria e non da una parte di essa.
Terza forma normale

Definizione
: Una base dati è in 3NF (terza forma normale) se è in 2NF e per ogni dipendenza funzionale è vera una delle seguenti condizioni:
X è una superchiave della relazione
Y è membro di una chiave della relazione

Teorema: Ogni relazione può essere portata in 3NF.
Quarta forma normale:
Definizione: se per ogni relazione di dipendenza funzionale molti a molti X Y, X sia una superchiave.

Quinta forma normale:
Definizione: se e solo se:
è in 4NF;
ogni relazione di dipendenza è implicata dalle chiavi candidate.

Nessun commento:

Posta un commento