1. Corso di Basi di Dati e Laboratorio
NORMALIZZAZIONE DI
SCHEMI RELAZIONALI
Prof. Silvana Castano
A.A. 2005/2006 Basi di Dati e Laboratorio 1
LE FORME NORMALI
• Per scegliere fra i vari schemi che possono
modellare uno stesso frammento di realtà,
quello ‘ottimo’
• Il criterio di ottimalità, oggetto delle forme
normali, è legato alla capacità dello
schema di evitare il verificarsi di un certo
numero di anomalie di comportamento a
fronte di operazioni sui dati
A.A. 2005/2006 Basi di Dati e Laboratorio 2
2. ESEMPIO – MODULO ORDINE
Data: 1/10/03 Nr-Ordine : 10
Nr-Fornitore: 67
NomeFornitore: Rossi
Indir.Fornitore: Milano
Fornitura:
Nr-Prodotto Descrizione Prezzo Quantità Totale
010 Televisore 800 1 800
060 Lavatrice 900 2 1800
Prezzo totale 2600
A.A. 2005/2006 Basi di Dati e Laboratorio 3
PRIMA FORMA NORMALE
• Prima forma normale (1NF)
Uno schema di relazione R è in ‘prima forma normale’
se non contiene attributi strutturati e/o valori multipli.
• Il modulo d’ordine contiene un gruppo di attributi a valori
multipli violazione
A.A. 2005/2006 Basi di Dati e Laboratorio 4
3. NORMALIZZAZIONE
• Normalizzazione (rimedio): formare nuove
relazioni per ogni attributo non-atomico
ORDINE-FORNITORE(NrOrd, Data, NrForn, Nome-
Forn, Ind-Forn, Prezzo-Tot-Ord)
ORDINE-PRODOTTO(NrOrd, NrPr, Descr-Pr, Prezzo-
Pr, Quant-Pr, Prezzo-Tot-Pr)
A.A. 2005/2006 Basi di Dati e Laboratorio 5
RIDONDANZA
• I dati relativi ad un fornitore sono ripetuti in ogni ennupla
contenente un ordine per quel fornitore
• I dati relativi ad un prodotto sono ripetuti in ogni ennupla
contente un ordine per quel prodotto
• Fonte di anomalie (il diffondersi di una modifica oltre il
suo campo di azione per la presenza di dipendenze
implicite tra i dati)
A.A. 2005/2006 Basi di Dati e Laboratorio 6
4. RIDONDANZA - ESEMPIO
NrOrd NrPr Descr-Pr Prezzo-Pr Quant-Pr Prezzo-Tot-Pr
10 1 Monitor 100 2 200
20 1 Monitor 100 10 1000
30 1 Monitor 100 4 400
40 2 Tastiera 70 1 70
50 2 Tastiera 70 2 70
60 3 Mouse 20 5 100
70 3 Mouse 20 10 200
A.A. 2005/2006 Basi di Dati e Laboratorio 7
ANOMALIE
• AGGIORNAMENTO: se cambiano le informazioni su un
prodotto o su un fornitore, devono essere aggiornate più
ennuple
• INSERIMENTO: non è possibile inserire informazioni su
un prodotto o un fornitore se non c’è un ordine per quel
prodotto o fornitore
• CANCELLAZIONE: l’eliminazione degli ordini relativi a
un prodotto o fornitore causa la perdita di informazioni su
quel prodotto o fornitore
A.A. 2005/2006 Basi di Dati e Laboratorio 8
5. ANOMALIE
• In generale il verificarsi di anomalie è
dovuto al fatto di avere rappresentato in
un’unica relazione concetti diversi che
interessano anche individualmente
A.A. 2005/2006 Basi di Dati e Laboratorio 9
ESEMPIO DI ELIMINAZIONE DI ANOMALIA
• Spezzare la relazione ORDINE-
PRODOTTO in:
PRODOTTO(N-Pr, Descr-Pr, Prezzo-Pr)
PR-IN-ORD(NrOrd,NrPr, Quant-Pr, Prezzo-Tot-Pr)
A.A. 2005/2006 Basi di Dati e Laboratorio 10
6. SOLUZIONE FORMALE
• Dipendenza Funzionale (FD), vincolo di integrità a
livello di schema
• Dati due insiemi di attributi A e B di R, A determina
funzionalmente B, A B se per ogni coppia di tuple t1 e
t2 in R, con t1[A]=t2[A] si deve avere t1[B]=t2[B]
• Esempio, in ORDINE-PRODOTTO:
• NrPr Descr-Pr, Prez-Pr
• NrOrd, NrPr Quant-Pr, Prezzo-Tot-Pr
• A: parte sinistra della dipendenza
• B: parte destra della dipendenza
A.A. 2005/2006 Basi di Dati e Laboratorio 11
NORMALIZZAZIONE
• Processo di analisi degli schemi di relazione forniti,
basato sulle loro dipendenze funzionali e sulle chiavi
primarie per raggiungere le proprietà desiderate di:
– minimizzazione della ridondanza
– minimizzazione delle anomalie
A.A. 2005/2006 Basi di Dati e Laboratorio 12
7. NORMALIZZAZIONE
• Input al processo di normalizzazione
– relazioni con chiave primaria designata
– insieme di FD per ogni relazione
• Obiettivo: effettuare i test di forma normale sugli
schemi di relazione in input
• Output: decomposizione di schemi di relazione che
non verificano ai test di forma normale in schemi più
piccoli, che soddisfano i test e possiedono le
proprietà desiderate
A.A. 2005/2006 Basi di Dati e Laboratorio 13
SECONDA FORMA NORMALE
• Uno schema di relazione R(X) è in 2NF se:
– 1NF
– ogni attributo non chiave di R(X) dipende
funzionalmente e completamente dalla chiave
primaria di R(X)
• In altri termini, la 2NF impone che per le relazioni in cui la
chiave primaria contiene più attributi, non ci siano attributi
non-chiave funzionalmente dipendenti da una parte della
chiave primaria
A.A. 2005/2006 Basi di Dati e Laboratorio 14
8. SECONDA FORMA NORMALE
Normalizzazione (rimedio)
• Decomporre e preparare una nuova relazione per ogni
chiave parziale con i suoi attributi dipendenti
• Assicurarsi di mantenere una relazione con la chiave
primaria originale e tutti gli attributi funzionalmente
dipendenti in modo completo da essa
A.A. 2005/2006 Basi di Dati e Laboratorio 15
ESEMPIO
ORDINE-PRODOTTO(NrOrd, NrPr, Descr-Pr, Prezzo-Pr,
Quant-Pr, Prezzo-Tot-Pr)
– d1: NrPr Descr-Pr, Prez-Pr
– d2: NrOrd, NrPr Quant-Pr, Prezzo-Tot-Pr
PRODOTTO(N-Pr, Descr-Pr, Prezzo-Pr)
PR-IN-ORD(NrOrd,NrPr, Quant-Pr, Prezzo-Tot-Pr)
A.A. 2005/2006 Basi di Dati e Laboratorio 16
9. ESEMPIO DI ELIMINAZIONE DI ANOMALIE
ORDINE-FORNITORE(NrOrd, Data, NrForn,
Nome-Forn, Ind-Forn, Prezzo-Tot-Ord)
– è in 2NF, ma presenta ancora anomalie
Spezzare ORDINE-FORNITORE in:
• FORNITORE(NrForn, Nome-Forn, Indir-Forn)
• ORDINE(NrOrd, Data, N-Forn, Prezzo-Tot-Ord)
• Occorre esaminare altre possibili dipendenze
A.A. 2005/2006 Basi di Dati e Laboratorio 17
SOLUZIONE FORMALE
Dipendenza Funzionale Transitiva
• B dipende transitivamente da A in R se esiste un
altro insieme di attributi Z di R tale che:
• A Z
• Z B
dove Z non è né una chiave candidata né un
sottoinsieme di una chiave di R
• In base a queste dipendenze, A B
A.A. 2005/2006 Basi di Dati e Laboratorio 18
10. TERZA FORMA NORMALE
• Uno schema di relazione R(X) è in terza forma
normale 3NF se:
– 2NF
– ogni attributo non-chiave di R(X) è dipendente in
modo non transitivo dalla chiave primaria di R(X)
• La relazione non deve avere un attributo non-chiave
determinato funzionalmente da un altro attributo non-
chiave (o da un insieme). Ovvero, non deve esserci
nessuna dipendenza transitiva di un attributo non-chiave
dalla chiave primaria
• Con la 3NF, ogni attributo non-chiave non dipende né
parzialmente né transitivamente dalla chiave primaria
A.A. 2005/2006 Basi di Dati e Laboratorio 19
TERZA FORMA NORMALE
Normalizzazione (rimedio)
• Decomporre e preparare una nuova relazione
che comprenda gli attributi non-chiave che
determinano funzionalmente altri attributi non-
chiave
A.A. 2005/2006 Basi di Dati e Laboratorio 20
11. ESEMPIO
ORDINE-FORNITORE(NrOrd, Data, NrForn,
Nome-Forn, Ind-Forn, Prezzo-Tot-Ord)
– NrOrd NrForn, Nome-Forn, Ind-Forn, Data,
Prezzo-Tot-Ord
– NrForn Nome-Forn, Ind-Forn
FORNITORE(NrForn, Nome-Forn, Indir-Forn)
ORDINE(NrOrd, Data, N-Forn, Prezzo-Tot-Ord)
A.A. 2005/2006 Basi di Dati e Laboratorio 21
FORMA NORMALE DI BOYCE-CODD
• Abbiamo analizzato dipendenze relative ad
attributi non chiave, verificando che essi siano
completamente dipendenti dalle chiavi e tra loro
indipendenti
• Possono esserci dipendenze tra attributi chiave e
non-chiave, fonti di anomalie
A.A. 2005/2006 Basi di Dati e Laboratorio 22
12. ESEMPIO
ESAME(Corso,DataEsame, Docente)
In cui vale la FD
d1: Corso, DataEsame Docente
d2: Docente Corso
(ovvero ogni docente tiene un solo corso)
La relazione è in 3NF tuttavia:
• Non si può inserire l’informazione relativa al corso tenuto
da un docente se non è stato fatto almeno un esame
• L’informazione relativa al corso tenuto da un docente è
ripetuta per ogni esame
A.A. 2005/2006 Basi di Dati e Laboratorio 23
FORMA NORMALE DI BOYCE-CODD
• Uno schema di relazione R(X) è in forma
normale di Boyce-Codd (BCNF) se per ogni
dipendenza A B (dove B non è un
sottoinsieme di A), l’insieme di attributi A
contiene una chiave per R, cioè è superchiave
A.A. 2005/2006 Basi di Dati e Laboratorio 24
13. FORMA NORMALE DI BOYCE-CODD
La decomposizione dello schema non è immediata
1. (DataEsame, Docente) e (Corso, DataEsame)
2. (Docente, Corso) e (Corso, DataEsame)
3. (Docente, Corso) e (Docente, DataEsame)
Osserviamo che:
• Tutte le decomposizioni perdono la dipendenza d1
• La decomposizione preferibile è la terza, perchè non
genera tuple spurie dopo un join (cioè è senza perdita)
A.A. 2005/2006 Basi di Dati e Laboratorio 25
PROPRIETA’ DECOMPOSIZIONI
Il procedimento di decomposizione:
– Non deve causare perdita di informazioni
Si può ricostruire la relazione non normalizzata sulla
base delle relazioni in forma normale ottenute dal
processo di decomposizione senza informazioni
spurie
– Deve conservare le dipendenze
Le relazioni decomposte hanno la capacità di
rappresentare gli stessi vincoli di integrità definiti sulla
relazione originaria
A.A. 2005/2006 Basi di Dati e Laboratorio 26
14. DECOMPOSIZIONE SENZA PERDITA
Impiegato Progetto Sede
Rossi Marte Roma
Verdi Giove Milano
Verdi Venere Milano
Neri Saturno Milano
Neri Venere Milano
Tale relazione soddisfa alle seguenti dipendenze funzionali:
– Impiegato Sede
(ogni impiegato opera presso un’unica sede)
– Progetto Sede
(ogni progetto è sviluppato presso un’unica sede)
A.A. 2005/2006 Basi di Dati e Laboratorio 27
DECOMPOSIZIONE SENZA PERDITA
• La decomposizione porta alle seguenti relazioni:
Impiegato Sede Progetto Sede
Rossi Roma Marte Roma
Verdi Milano Giove Milano
Neri Milano Venere Milano
Saturno Milano
• Per ricostruire le informazioni della relazione originaria
(partecipazione di impiegati a progetti) occorre fare il join
naturale sull’attributo Sede delle due relazioni ottenute
per decomposizione (relazioni proiezione)
A.A. 2005/2006 Basi di Dati e Laboratorio 28
15. DECOMPOSIZIONE SENZA PERDITA
• Il risultato del join è il seguente:
Impiegato Progetto Sede
Rossi Marte Roma
Verdi Giove Milano
Verdi Saturno Milano
Verdi Venere Milano
Neri Giove Milano
Neri Saturno Milano
Neri Venere Milano
A.A. 2005/2006 Basi di Dati e Laboratorio 29
DECOMPOSIZIONE SENZA PERDITA
• Non si riesce a ricostruire TUTTE E SOLE le
informazioni della relazione originaria
• Ci sono delle tuple spurie per effetto del join
• Una relazione R definita su un insieme X= X1 ∪
X2 di attributi si decompone senza perdita su
X1 e X2 se il join delle due proiezioni R1 e R2 è
uguale a R stessa (cioè non contiene tuple
spurie)
A.A. 2005/2006 Basi di Dati e Laboratorio 30
16. DECOMPOSIZIONE SENZA PERDITA
• Sia R relazione su X e siano X1 e X2
sottoinsiemi di X tali che X1 ∪ X2 = X. Sia X0=
X1∩ X2
• Se R soddisfa la dipendenza funzionale X0 X1
oppure X0 X2 allora R si decompone senza
perdita su X1, X2
• In altre parole, una relazione R si decompone
senza perdita su due relazioni se l’insieme degli
attributi comuni alle due relazioni è chiave per
almeno una delle due relazioni decomposte
A.A. 2005/2006 Basi di Dati e Laboratorio 31
DECOMPOSIZIONE SENZA PERDITA
• Una decomposizione senza perdita per la nostra
relazione R potrebbe essere la seguente
Impiegato Sede Impiegato Progetto
Rossi Roma Rossi Marte
Verdi Milano Verdi Giove
Neri Milano Verdi Venere
Neri Saturno
Neri Venere
A.A. 2005/2006 Basi di Dati e Laboratorio 32
17. CONSERVAZIONE DELLE DIPENDENZE
• Consideriamo la decomposizione senza perdita
precedente
• Si supponga di voler inserire una nuova tupla
che specifica la partecipazione di Neri, che opera
a Milano, al progetto Marte. Nella relazione R
tale aggiornamento sarebbe considerato illecito,
perché viola la dipendenza funzionale
Progetto Sede
A.A. 2005/2006 Basi di Dati e Laboratorio 33
CONSERVAZIONE DELLE DIPENDENZE
• Sulle relazioni decomposte invece non è possibile
rilevare la violazione, perché non è possibile effettuare
alcuna verifica sulla dipendenza Progetto Sede, in
quanto i due attributi sono stati separati in due relazioni
diverse
• Quindi, in ogni decomposizione è bene che ciascuna
dipendenza dello schema originario coinvolga attributi
che compaiono tutti insieme in uno degli schemi
decomposti (decomposizione che conserva le
dipendenze). Così lo schema decomposto garantisce il
soddisfacimento degli stessi vincoli soddisfatti dallo
schema originario
A.A. 2005/2006 Basi di Dati e Laboratorio 34
18. CONSERVAZIONE DELLE DIPENDENZE
• Decomposizione senza perdita
Garantisce che le informazioni nella relazione originaria
siano ricostruibili con precisione (senza informazioni
spurie) a partire da quelle rappresentate nelle relazioni
decomposte. Interrogazioni su relazioni decomposte
producono gli stessi risultati che si otterrebbero
interrogando la relazione originaria
• Conservazione delle dipendenze
Garantisce che le relazioni decomposte hanno la stessa
capacità della relazione originaria di rappresentare
vincoli di integrità e rilevare aggiornamenti illeciti. A ogni
aggiornamento illecito (lecito) sullo schema originario
corrisponde un aggiornamento illecito (lecito) sugli
schemi decomposti
A.A. 2005/2006 Basi di Dati e Laboratorio 35
CONSIDERAZIONI
• Si considerano ‘buone decomposizioni’ (di
qualità accettabile) quelle che soddisfano queste
due proprietà. Nella maggior parte dei casi è
possibile raggiungere l’obiettivo di una buona
decomposizione che verifichi la forma normale
BCNF
• In generale, una relazione non in BCNF
dovrebbe essere decomposta senza perdita
rinunciando eventualmente a preservare tutte le
dipendenze funzionali nelle relazioni
decomposte.
• In alcuni casi, ci si ferma alla 3NF
A.A. 2005/2006 Basi di Dati e Laboratorio 36
19. CONSIDERAZIONI
• Se si usa una metodologia di progettazione
basata sulla definizione in termini del modello E-
R dello schema concettuale e della sua
successiva traduzione in termini del modello
relazionale
gran parte delle anomalie non si
verificano
• Adottando un approccio metodologico alla
progettazione di BD, la teoria della
normalizzazione può essere utilizzata come
strumento di verifica della capacità degli schemi
sia in fase di progettazione logica che di
progettazione concettuale
A.A. 2005/2006 Basi di Dati e Laboratorio 37
VERIFICHE SULLO SCHEMA LOGICO
Impiegato Categoria Stipendio
Neri 3 30
Verdi 3 30
Rossi 4 50
Mori 4 50
Bianchi 5 72
A.A. 2005/2006 Basi di Dati e Laboratorio 38
20. VERIFICHE SULLO SCHEMA LOGICO
• Impiegato Categoria
(ogni impiegato ha una sola categoria)
• Categoria Stipendio
(ad ogni categoria corrisponde uno stipendio)
• La relazione originaria non è normalizzata e può
essere decomposta in due relazioni (Impiegato,
Categoria) e (Categoria, Stipendio) che
verificano la BCNF
A.A. 2005/2006 Basi di Dati e Laboratorio 39
VERIFICHE SULLO SCHEMA
CONCETTUALE
Nr-Ordine Costo
Ordine Quantità
Nr-Parte Data
• Sono valide le seguenti dipendenze
funzionali:
– d1: Nr-Ordine, Nr-Parte Quantità
– d2: Nr-Parte Costo
– d3: nr.Ordine Data
A.A. 2005/2006 Basi di Dati e Laboratorio 40
21. VERIFICHE SULLO SCHEMA
CONCETTUALE
• L’entità non verifica la 2NF perché d2 e d3 hanno una
parte sinistra contenuta nell’identificatore e nella parte
destra hanno attributi non chiave. Questo suggerisce un
cattivo disegno concettuale, che vede rappresentati 3
concetti diversi (ordine, parti e la relazione tra di essi), in
una sola entità
(1,N) (0,N)
Ordine Composizione Parte
Nr-Ordine Data Quantità Nr-Parte Costo
A.A. 2005/2006 Basi di Dati e Laboratorio 41
VERIFICHE SULLO SCHEMA
CONCETTUALE
Nr-Ore-Lavorate
(1,N) (1,N)
Impiegato Lavora Reparto
CF Nome Nr-Progetto Budget Nr-Reparto Piano
• La relazione viola la 3NF; infatti dal fatto che la coppia
(CF, Nr-Reparto) è identificatore deduciamo le seguenti
dipendenze funzionali:
– CF, Nr-Reparto Budget
– CF, Nr-Reparto Nr-Progetto
– CF, Nr-Reparto Nr-Ore-Lavorate
– Nr-Progetto Budget
A.A. 2005/2006 Basi di Dati e Laboratorio 42
22. VERIFICHE SULLO SCHEMA
CONCETTUALE
Nr-Ore-Lavorate
(1,N) (1,N)
Impiegato Lavora Reparto
CF Nome Nr-Reparto Piano
Nr-Progetto Progetto Budget
A.A. 2005/2006 Basi di Dati e Laboratorio 43