Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze...

112
Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Raffaella Gentilini December 13, 2011 Raffaella Gentilini Teoria della Normalizzazione 1 / 37

Transcript of Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze...

Page 1: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Teoria della Normalizzazione

Raffaella Gentilini

December 13, 2011

Raffaella Gentilini Teoria della Normalizzazione 1 / 37

Page 2: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

IntroduzioneMotivationi

Concetti FondamentaliDipendenze FunzionaliChiusura Insieme Dipendenze FunzionaliCopertura Minimale

Forme Normai basate su Dipendenze FunzionaliForma Normale di Boyce-Codd (BCNF)Terza Forma Normale (3NF)

Raffaella Gentilini Teoria della Normalizzazione 2 / 37

Page 3: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Obbiettivi

Sviluppare una metodologia che permetta di:

1. Decidere se uno schema di relazione e’ uno schema di relazione bendefinito

2. Qualora uno schma di relazione R non soddisfi i criteri di bonta’,decomporlo in {R1, . . . ,Rn}, dove :

• ogni Ri sia uno schema di relazione ben definito• non vi sia perdita di informazione

Il nostro approccio e’ basato sui concetti di:

• dipendenze funzionali

Raffaella Gentilini Teoria della Normalizzazione 3 / 37

Page 4: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Obbiettivi

Sviluppare una metodologia che permetta di:

1. Decidere se uno schema di relazione e’ uno schema di relazione bendefinito

2. Qualora uno schma di relazione R non soddisfi i criteri di bonta’,decomporlo in {R1, . . . ,Rn}, dove :

• ogni Ri sia uno schema di relazione ben definito• non vi sia perdita di informazione

Il nostro approccio e’ basato sui concetti di:

• dipendenze funzionali

Raffaella Gentilini Teoria della Normalizzazione 3 / 37

Page 5: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Obbiettivi

Sviluppare una metodologia che permetta di:

1. Decidere se uno schema di relazione e’ uno schema di relazione bendefinito

2. Qualora uno schma di relazione R non soddisfi i criteri di bonta’,decomporlo in {R1, . . . ,Rn}, dove :

• ogni Ri sia uno schema di relazione ben definito

• non vi sia perdita di informazione

Il nostro approccio e’ basato sui concetti di:

• dipendenze funzionali

Raffaella Gentilini Teoria della Normalizzazione 3 / 37

Page 6: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Obbiettivi

Sviluppare una metodologia che permetta di:

1. Decidere se uno schema di relazione e’ uno schema di relazione bendefinito

2. Qualora uno schma di relazione R non soddisfi i criteri di bonta’,decomporlo in {R1, . . . ,Rn}, dove :

• ogni Ri sia uno schema di relazione ben definito• non vi sia perdita di informazione

Il nostro approccio e’ basato sui concetti di:

• dipendenze funzionali

Raffaella Gentilini Teoria della Normalizzazione 3 / 37

Page 7: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Obbiettivi

Sviluppare una metodologia che permetta di:

1. Decidere se uno schema di relazione e’ uno schema di relazione bendefinito

2. Qualora uno schma di relazione R non soddisfi i criteri di bonta’,decomporlo in {R1, . . . ,Rn}, dove :

• ogni Ri sia uno schema di relazione ben definito• non vi sia perdita di informazione

Il nostro approccio e’ basato sui concetti di:

• dipendenze funzionali

Raffaella Gentilini Teoria della Normalizzazione 3 / 37

Page 8: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Obbiettivi

Sviluppare una metodologia che permetta di:

1. Decidere se uno schema di relazione e’ uno schema di relazione bendefinito

2. Qualora uno schma di relazione R non soddisfi i criteri di bonta’,decomporlo in {R1, . . . ,Rn}, dove :

• ogni Ri sia uno schema di relazione ben definito• non vi sia perdita di informazione

Il nostro approccio e’ basato sui concetti di:

• dipendenze funzionali

Raffaella Gentilini Teoria della Normalizzazione 3 / 37

Page 9: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali

Dipendenze Funzionali

• Generalizzazione del concetto di chiave

• Esprimono vincoli sulla ammissibilita’ delle istanze di relazione

• Stabiliscono vincoli di dipendenza tra attributi:• I valori di alcuni attributi determinino i valori di altri attributi

nelle tuple

Raffaella Gentilini Teoria della Normalizzazione 4 / 37

Page 10: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali

Dipendenze Funzionali

• Generalizzazione del concetto di chiave

• Esprimono vincoli sulla ammissibilita’ delle istanze di relazione

• Stabiliscono vincoli di dipendenza tra attributi:• I valori di alcuni attributi determinino i valori di altri attributi

nelle tuple

Raffaella Gentilini Teoria della Normalizzazione 4 / 37

Page 11: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali

Dipendenze Funzionali

• Generalizzazione del concetto di chiave

• Esprimono vincoli sulla ammissibilita’ delle istanze di relazione

• Stabiliscono vincoli di dipendenza tra attributi:• I valori di alcuni attributi determinino i valori di altri attributi

nelle tuple

Raffaella Gentilini Teoria della Normalizzazione 4 / 37

Page 12: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali

Definition (Dipendenze Funzionali)

Dato lo schema di relazione R sull’insieme di attributi X , si considerinoα ⊆ X e β ⊆ X .La dipendenza funzionale α→ β vale su R

m

Per ogni istanza di r di R:

• Ogni coppia di ennuple t1, t2 di r avente gli stessi valori per gliattributi in α, ha gli stessi valori per gli attributi in β.

Formalmente:

α→ β vale su Rm

∀r istanza di R,∀t1, t2 ∈ r : t1[α] = t2[α]⇒ t1[β] = t2[β]

Raffaella Gentilini Teoria della Normalizzazione 5 / 37

Page 13: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali

Definition (Dipendenze Funzionali)

Dato lo schema di relazione R sull’insieme di attributi X , si considerinoα ⊆ X e β ⊆ X .La dipendenza funzionale α→ β vale su R

m

Per ogni istanza di r di R:

• Ogni coppia di ennuple t1, t2 di r avente gli stessi valori per gliattributi in α, ha gli stessi valori per gli attributi in β.

Formalmente:

α→ β vale su Rm

∀r istanza di R,∀t1, t2 ∈ r : t1[α] = t2[α]⇒ t1[β] = t2[β]

Raffaella Gentilini Teoria della Normalizzazione 5 / 37

Page 14: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

Si consideri la seguente istanza di R dello schema R(A,B):

A B3 41 53 7

• Si osservi che A→ B non vale

Raffaella Gentilini Teoria della Normalizzazione 6 / 37

Page 15: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali e Chiavi

• K e’ superchiave per R(X ) sse K → X .

• K e’ chiave candidata per R(X ) sse:

• K → X• non esiste K ′ ⊂ K tale che K ′ → X

• dipendenze funzionali permettono di esprimere vincoli nonesprimibili tramite nozione di chiave:

Vendita(nomeCliente, codiceMerce, nomeProduttore, costo)

Dato lo schema sopra, desideriamo valgano le dipendenze:

• codiceMerce → costo

• codiceMerce → produttore

ma non desideriamo che valga:

• codiceMerce → nomeCliente

Raffaella Gentilini Teoria della Normalizzazione 7 / 37

Page 16: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali e Chiavi

• K e’ superchiave per R(X ) sse K → X .

• K e’ chiave candidata per R(X ) sse:

• K → X• non esiste K ′ ⊂ K tale che K ′ → X

• dipendenze funzionali permettono di esprimere vincoli nonesprimibili tramite nozione di chiave:

Vendita(nomeCliente, codiceMerce, nomeProduttore, costo)

Dato lo schema sopra, desideriamo valgano le dipendenze:

• codiceMerce → costo

• codiceMerce → produttore

ma non desideriamo che valga:

• codiceMerce → nomeCliente

Raffaella Gentilini Teoria della Normalizzazione 7 / 37

Page 17: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali e Chiavi

• K e’ superchiave per R(X ) sse K → X .

• K e’ chiave candidata per R(X ) sse:

• K → X

• non esiste K ′ ⊂ K tale che K ′ → X

• dipendenze funzionali permettono di esprimere vincoli nonesprimibili tramite nozione di chiave:

Vendita(nomeCliente, codiceMerce, nomeProduttore, costo)

Dato lo schema sopra, desideriamo valgano le dipendenze:

• codiceMerce → costo

• codiceMerce → produttore

ma non desideriamo che valga:

• codiceMerce → nomeCliente

Raffaella Gentilini Teoria della Normalizzazione 7 / 37

Page 18: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali e Chiavi

• K e’ superchiave per R(X ) sse K → X .

• K e’ chiave candidata per R(X ) sse:

• K → X• non esiste K ′ ⊂ K tale che K ′ → X

• dipendenze funzionali permettono di esprimere vincoli nonesprimibili tramite nozione di chiave:

Vendita(nomeCliente, codiceMerce, nomeProduttore, costo)

Dato lo schema sopra, desideriamo valgano le dipendenze:

• codiceMerce → costo

• codiceMerce → produttore

ma non desideriamo che valga:

• codiceMerce → nomeCliente

Raffaella Gentilini Teoria della Normalizzazione 7 / 37

Page 19: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali e Chiavi

• K e’ superchiave per R(X ) sse K → X .

• K e’ chiave candidata per R(X ) sse:

• K → X• non esiste K ′ ⊂ K tale che K ′ → X

• dipendenze funzionali permettono di esprimere vincoli nonesprimibili tramite nozione di chiave:

Vendita(nomeCliente, codiceMerce, nomeProduttore, costo)

Dato lo schema sopra, desideriamo valgano le dipendenze:

• codiceMerce → costo

• codiceMerce → produttore

ma non desideriamo che valga:

• codiceMerce → nomeCliente

Raffaella Gentilini Teoria della Normalizzazione 7 / 37

Page 20: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Dipendenze Funzionali e Chiavi

• K e’ superchiave per R(X ) sse K → X .

• K e’ chiave candidata per R(X ) sse:

• K → X• non esiste K ′ ⊂ K tale che K ′ → X

• dipendenze funzionali permettono di esprimere vincoli nonesprimibili tramite nozione di chiave:

Vendita(nomeCliente, codiceMerce, nomeProduttore, costo)

Dato lo schema sopra, desideriamo valgano le dipendenze:

• codiceMerce → costo

• codiceMerce → produttore

ma non desideriamo che valga:

• codiceMerce → nomeClienteRaffaella Gentilini Teoria della Normalizzazione 7 / 37

Page 21: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Chiusura Insieme Dipendenze Funzionali• Dato un insieme F di dipendenze funzionali, vi possono essere altre

dipendenze funzionali logicamente implicate da F .

• Ad esempio, se valgono A→ B e B → C , possimao infereireche vale A→ C

• L’insieme di dipendenze funzionali logicamente implicate da F ,denotato F+, e’ detto chiusura di F

• Possiamo determinare F+ applicando gli assiomi di Armstrong

• Assiomi Armstrong sono insieme regole inferenza corretto (generanosolo DF valide) e completo (generano tutte le DF in F+)

Assiomi di Armstrong

1. se β ⊆ α, allora α→ β (riflessivita’)

2. se α→ β, allora γα→ γβ (arrichimento)

3. se α→ β e β → γ, allora α→ γ (transitivita’)

Raffaella Gentilini Teoria della Normalizzazione 8 / 37

Page 22: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Chiusura Insieme Dipendenze Funzionali• Dato un insieme F di dipendenze funzionali, vi possono essere altre

dipendenze funzionali logicamente implicate da F .

• Ad esempio, se valgono A→ B e B → C , possimao infereireche vale A→ C

• L’insieme di dipendenze funzionali logicamente implicate da F ,denotato F+, e’ detto chiusura di F

• Possiamo determinare F+ applicando gli assiomi di Armstrong

• Assiomi Armstrong sono insieme regole inferenza corretto (generanosolo DF valide) e completo (generano tutte le DF in F+)

Assiomi di Armstrong

1. se β ⊆ α, allora α→ β (riflessivita’)

2. se α→ β, allora γα→ γβ (arrichimento)

3. se α→ β e β → γ, allora α→ γ (transitivita’)Raffaella Gentilini Teoria della Normalizzazione 8 / 37

Page 23: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ,G ,H, I )F = {A→ B,A→ C ,CG → H,CG → I ,B → H}

• Alcuni membri di F+ sono:

• A→ H

• per transitivita’ da A→ B e B → H

• AG → I

• arricchendo A→ C con G e poi utilizzando la transitivita’ conCG → I

• CG → HI

• arricchimento di CG → I con CG per ottenere CG → CGI ,arricchimento di CG → H con I per ottenere CGI → HI , edinfine applicazione della transitivita’.

Raffaella Gentilini Teoria della Normalizzazione 9 / 37

Page 24: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ,G ,H, I )F = {A→ B,A→ C ,CG → H,CG → I ,B → H}

• Alcuni membri di F+ sono:

• A→ H

• per transitivita’ da A→ B e B → H

• AG → I

• arricchendo A→ C con G e poi utilizzando la transitivita’ conCG → I

• CG → HI

• arricchimento di CG → I con CG per ottenere CG → CGI ,arricchimento di CG → H con I per ottenere CGI → HI , edinfine applicazione della transitivita’.

Raffaella Gentilini Teoria della Normalizzazione 9 / 37

Page 25: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ,G ,H, I )F = {A→ B,A→ C ,CG → H,CG → I ,B → H}

• Alcuni membri di F+ sono:

• A→ H• per transitivita’ da A→ B e B → H

• AG → I

• arricchendo A→ C con G e poi utilizzando la transitivita’ conCG → I

• CG → HI

• arricchimento di CG → I con CG per ottenere CG → CGI ,arricchimento di CG → H con I per ottenere CGI → HI , edinfine applicazione della transitivita’.

Raffaella Gentilini Teoria della Normalizzazione 9 / 37

Page 26: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ,G ,H, I )F = {A→ B,A→ C ,CG → H,CG → I ,B → H}

• Alcuni membri di F+ sono:

• A→ H• per transitivita’ da A→ B e B → H

• AG → I• arricchendo A→ C con G e poi utilizzando la transitivita’ con

CG → I

• CG → HI

• arricchimento di CG → I con CG per ottenere CG → CGI ,arricchimento di CG → H con I per ottenere CGI → HI , edinfine applicazione della transitivita’.

Raffaella Gentilini Teoria della Normalizzazione 9 / 37

Page 27: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ,G ,H, I )F = {A→ B,A→ C ,CG → H,CG → I ,B → H}

• Alcuni membri di F+ sono:

• A→ H• per transitivita’ da A→ B e B → H

• AG → I• arricchendo A→ C con G e poi utilizzando la transitivita’ con

CG → I

• CG → HI• arricchimento di CG → I con CG per ottenere CG → CGI ,

arricchimento di CG → H con I per ottenere CGI → HI , edinfine applicazione della transitivita’.

Raffaella Gentilini Teoria della Normalizzazione 9 / 37

Page 28: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Calcolo di F+

Algoritmo per il calcolo della chiusura di un insieme di dipendenzefunzionali F

F+ ← Frepeat

for each dipendenza funzionale f ∈ F+ doapplica riflessivita’ ed arrichimento ad faggiungi ad F+ le dipendenze ottenute

end forfor each coppia di dipendenze funzionali f1, f2 ∈ F+ do

if f1 ed f2 possono essere combinate usando la transitivita’ thenaggiungi ad F+ le dipendenze ottenute

end ifend for

until F+ non cambia

Raffaella Gentilini Teoria della Normalizzazione 10 / 37

Page 29: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Calcolo di F+

Possiamo velocizzare/semplificare il calcolo della chiusura di F+

utilizzando ulteriori regole di inferenza:

• Unione Se valgono α→ β e α→ γ, allora vale α→ βγ

• Decomposizione Se vale α→ βγ, allora valgono α→ β ed α→ γ

• Pseudotransitivita’ Se valgono α→ γ e γβ → δ, allora vale ancheαβ → δ

Esercizio: Ricavare le precedenti regole a partire dagli assiomi di Arm-strong.

Raffaella Gentilini Teoria della Normalizzazione 11 / 37

Page 30: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Calcolo di F+

Possiamo velocizzare/semplificare il calcolo della chiusura di F+

utilizzando ulteriori regole di inferenza:

• Unione Se valgono α→ β e α→ γ, allora vale α→ βγ

• Decomposizione Se vale α→ βγ, allora valgono α→ β ed α→ γ

• Pseudotransitivita’ Se valgono α→ γ e γβ → δ, allora vale ancheαβ → δ

Esercizio: Ricavare le precedenti regole a partire dagli assiomi di Arm-strong.

Raffaella Gentilini Teoria della Normalizzazione 11 / 37

Page 31: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Calcolo di F+

Possiamo velocizzare/semplificare il calcolo della chiusura di F+

utilizzando ulteriori regole di inferenza:

• Unione Se valgono α→ β e α→ γ, allora vale α→ βγ

• Decomposizione Se vale α→ βγ, allora valgono α→ β ed α→ γ

• Pseudotransitivita’ Se valgono α→ γ e γβ → δ, allora vale ancheαβ → δ

Esercizio: Ricavare le precedenti regole a partire dagli assiomi di Arm-strong.

Raffaella Gentilini Teoria della Normalizzazione 11 / 37

Page 32: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Calcolo di F+

Possiamo velocizzare/semplificare il calcolo della chiusura di F+

utilizzando ulteriori regole di inferenza:

• Unione Se valgono α→ β e α→ γ, allora vale α→ βγ

• Decomposizione Se vale α→ βγ, allora valgono α→ β ed α→ γ

• Pseudotransitivita’ Se valgono α→ γ e γβ → δ, allora vale ancheαβ → δ

Esercizio: Ricavare le precedenti regole a partire dagli assiomi di Arm-strong.

Raffaella Gentilini Teoria della Normalizzazione 11 / 37

Page 33: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Calcolo di F+

Possiamo velocizzare/semplificare il calcolo della chiusura di F+

utilizzando ulteriori regole di inferenza:

• Unione Se valgono α→ β e α→ γ, allora vale α→ βγ

• Decomposizione Se vale α→ βγ, allora valgono α→ β ed α→ γ

• Pseudotransitivita’ Se valgono α→ γ e γβ → δ, allora vale ancheαβ → δ

Esercizio: Ricavare le precedenti regole a partire dagli assiomi di Arm-strong.

Raffaella Gentilini Teoria della Normalizzazione 11 / 37

Page 34: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Chiusura di un Insieme di Attributi

Dato un insieme di attributi α, la chiusura di α rispetto ad F (de-notato α+) e’ l’insieme di attributi determinati funzionalmente daattributi in α utilizzando le dipendenze in F .Avremo che:

• αβ ∈ F sse β ⊆ α+

Calcolo di α+ rispetto ad F

α+ ← αwhile ci sono cambiamenti in α+ do

for each β → γ ∈ F doif β ⊆ α+ then

α+ ← α+ ∪ γend if

end forend while

Raffaella Gentilini Teoria della Normalizzazione 12 / 37

Page 35: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Chiusura di un Insieme di Attributi

Dato un insieme di attributi α, la chiusura di α rispetto ad F (de-notato α+) e’ l’insieme di attributi determinati funzionalmente daattributi in α utilizzando le dipendenze in F .Avremo che:

• αβ ∈ F sse β ⊆ α+

Calcolo di α+ rispetto ad F

α+ ← αwhile ci sono cambiamenti in α+ do

for each β → γ ∈ F doif β ⊆ α+ then

α+ ← α+ ∪ γend if

end forend while

Raffaella Gentilini Teoria della Normalizzazione 12 / 37

Page 36: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R(X ) = (A,B,C ,G ,H, I ), ovvero X = ABCGHI

• F = {A→ B,A→ C ,CG → H,B → H}• Calcolo di CG+ rispetto ad F :

1. AG+ ← AG2. AG+ ← ABCG (da A→ C e A→ B)3. AG+ ← ABCGH (da CG → H e CG ⊆ ABCG )4. AG+ ← ABCGHI (da CG → I e CG ⊆ ABCGH)

Raffaella Gentilini Teoria della Normalizzazione 13 / 37

Page 37: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Usare la chiusura di attributi . . .

Viene sfruttata in diversi contesti:

• per verificare se un insieme di attributi e’ una superchiave.

• α ⊆ X e’ superchiave per R sse α+ contiene tutti gli attributidi R(X ).

• per verificare se vale una dipendenza funzionale.• per verificare se vale α→ β (ovvero se α→ β appartiene ad

F+) basta verificare se β ⊆ α+.

• calcolo della chiusura di F .• per ogni γ ⊆ X , si calcola la chiusura γ+ e per ogni Y ⊆ γ+ si

genera la DF γ → Y .

Raffaella Gentilini Teoria della Normalizzazione 14 / 37

Page 38: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Usare la chiusura di attributi . . .

Viene sfruttata in diversi contesti:

• per verificare se un insieme di attributi e’ una superchiave.

• α ⊆ X e’ superchiave per R sse α+ contiene tutti gli attributidi R(X ).

• per verificare se vale una dipendenza funzionale.• per verificare se vale α→ β (ovvero se α→ β appartiene ad

F+) basta verificare se β ⊆ α+.

• calcolo della chiusura di F .• per ogni γ ⊆ X , si calcola la chiusura γ+ e per ogni Y ⊆ γ+ si

genera la DF γ → Y .

Raffaella Gentilini Teoria della Normalizzazione 14 / 37

Page 39: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Usare la chiusura di attributi . . .

Viene sfruttata in diversi contesti:

• per verificare se un insieme di attributi e’ una superchiave.

• α ⊆ X e’ superchiave per R sse α+ contiene tutti gli attributidi R(X ).

• per verificare se vale una dipendenza funzionale.• per verificare se vale α→ β (ovvero se α→ β appartiene ad

F+) basta verificare se β ⊆ α+.

• calcolo della chiusura di F .• per ogni γ ⊆ X , si calcola la chiusura γ+ e per ogni Y ⊆ γ+ si

genera la DF γ → Y .

Raffaella Gentilini Teoria della Normalizzazione 14 / 37

Page 40: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Usare la chiusura di attributi . . .

Viene sfruttata in diversi contesti:

• per verificare se un insieme di attributi e’ una superchiave.

• α ⊆ X e’ superchiave per R sse α+ contiene tutti gli attributidi R(X ).

• per verificare se vale una dipendenza funzionale.• per verificare se vale α→ β (ovvero se α→ β appartiene ad

F+) basta verificare se β ⊆ α+.

• calcolo della chiusura di F .• per ogni γ ⊆ X , si calcola la chiusura γ+ e per ogni Y ⊆ γ+ si

genera la DF γ → Y .

Raffaella Gentilini Teoria della Normalizzazione 14 / 37

Page 41: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Copertura Minimale

• Un insieme F di dipendenze funzionale puo’ contenere dipendenzeridondanti, ovvero che possono essere ottenute dalle altredipendenze di F

• Esempio: A→ C e’ ridondante in {A→ B,B → C ,A→ C}

• Anche degliattributi di una dipendenza funzionale potrebbero essereridondanti:

• A destra: {A→ B,B → C ,A→ CD} puo’ essere semplificatain {A→ B,B → C ,A→ D}

• A sinistra: {A→ B,B → C ,AC → D} puo’ esseresemplificata in {A→ B,B → C ,A→ D}

• Intuitivamente, una copertura minimale di F e’ un insieme minimaledi dipendenze funzionali equivalenti ad F, privo di dipendenze eattributi ridondanti.

Raffaella Gentilini Teoria della Normalizzazione 15 / 37

Page 42: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Copertura Minimale

Piu’ formalmente, un insieme F di dipendenze funzionali e’ minimale sse:

1. Ogni dipendenza funzionale in F ha come parte destra un soloattributo

2. Non e’ possibile sostituire una dipendenza funzionale α→ A di Fcon una dipendenza funzionale β → A dove β ⊂ α, ed avere ancoraun insieme di dipendenze funzionali equivalente ad F .

3. Non e’ possibile rimuovere una dipendenza funzionale da F e avereancora un insieme di dipendenze funzionali equivalente ad F .

Una copertura minimale di un insieme di dipendenze funzionali F e’ uninsieme minimale di dipendenze funzionali E equivalente ad F .

Raffaella Gentilini Teoria della Normalizzazione 16 / 37

Page 43: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Copertura Minimale

Calcolo di una copertura minimale E per un insieme di DF F .

1. Si imposti E := F

2. Si sostituisca ogni DF X → A1 . . .An in E con le n DFX → A1, . . . ,X → An.

3. Per ogni DF X → A in E , per ogni attributo B in X :

Se B e’ ridondante nella DF X → A, ovvero se E e’ equivalente a(E \ {X → A}) ∪ {(X \ {B} → A}, allora si sostituisca X → A conX \ {B} → A in E

4. Per ogni DF rimanente X → A: Se E \ {X → A} e’ equivalente adE , allora si rimuova X → A da E .

Raffaella Gentilini Teoria della Normalizzazione 17 / 37

Page 44: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Copertura Minimale

Come verificare ridondanza attributi?

• Sia F un insieme di DF. Consideriamo la DF X → Y in F el’attributo B ∈ X .

• Per verificare se B ∈ X e’ ridondante:

• Calcoliamo la chiusura (X \ {B})+ rispetto ad F• Verifichiamo se (X \ {B})+ contiene Y• Se si’, allora B e’ ridondante (e puo’ essere eliminato).

Raffaella Gentilini Teoria della Normalizzazione 18 / 37

Page 45: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Copertura Minimale

Come verificare ridondanza attributi?

• Sia F un insieme di DF. Consideriamo la DF X → Y in F el’attributo B ∈ X .

• Per verificare se B ∈ X e’ ridondante:

• Calcoliamo la chiusura (X \ {B})+ rispetto ad F

• Verifichiamo se (X \ {B})+ contiene Y• Se si’, allora B e’ ridondante (e puo’ essere eliminato).

Raffaella Gentilini Teoria della Normalizzazione 18 / 37

Page 46: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Copertura Minimale

Come verificare ridondanza attributi?

• Sia F un insieme di DF. Consideriamo la DF X → Y in F el’attributo B ∈ X .

• Per verificare se B ∈ X e’ ridondante:

• Calcoliamo la chiusura (X \ {B})+ rispetto ad F• Verifichiamo se (X \ {B})+ contiene Y

• Se si’, allora B e’ ridondante (e puo’ essere eliminato).

Raffaella Gentilini Teoria della Normalizzazione 18 / 37

Page 47: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Copertura Minimale

Come verificare ridondanza attributi?

• Sia F un insieme di DF. Consideriamo la DF X → Y in F el’attributo B ∈ X .

• Per verificare se B ∈ X e’ ridondante:

• Calcoliamo la chiusura (X \ {B})+ rispetto ad F• Verifichiamo se (X \ {B})+ contiene Y• Se si’, allora B e’ ridondante (e puo’ essere eliminato).

Raffaella Gentilini Teoria della Normalizzazione 18 / 37

Page 48: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C )

• F = {A→ BC ,B → C ,A→ B,AB → C}

• Dopo l’esecuzione del passo (2) dell’algoritmo si ha:

E = {A→ B,A→ C ,B → C ,AB → C}• Eseguiamo il passo (3). A e’ ridondante in AB → C ?

• Verifichiamo se la chiusura di B rispetto ad E contiene C

• Si: Infatti B+ = {B,C}. Dunque E diventaE = {A→ B,A→ C ,B → C}

• Eseguiamo il passo (4):

• A→ C e’ implicata logicamente da A→ B,B → C (pertransitivita’). Dunque E diventa E = {A→ B,B → C}.

• Una copertura canonica (o minimale) e’:

E = {A→ B,B → C}

Raffaella Gentilini Teoria della Normalizzazione 19 / 37

Page 49: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C )

• F = {A→ BC ,B → C ,A→ B,AB → C}• Dopo l’esecuzione del passo (2) dell’algoritmo si ha:

E = {A→ B,A→ C ,B → C ,AB → C}

• Eseguiamo il passo (3). A e’ ridondante in AB → C ?• Verifichiamo se la chiusura di B rispetto ad E contiene C

• Si: Infatti B+ = {B,C}. Dunque E diventaE = {A→ B,A→ C ,B → C}

• Eseguiamo il passo (4):

• A→ C e’ implicata logicamente da A→ B,B → C (pertransitivita’). Dunque E diventa E = {A→ B,B → C}.

• Una copertura canonica (o minimale) e’:

E = {A→ B,B → C}

Raffaella Gentilini Teoria della Normalizzazione 19 / 37

Page 50: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C )

• F = {A→ BC ,B → C ,A→ B,AB → C}• Dopo l’esecuzione del passo (2) dell’algoritmo si ha:

E = {A→ B,A→ C ,B → C ,AB → C}• Eseguiamo il passo (3). A e’ ridondante in AB → C ?

• Verifichiamo se la chiusura di B rispetto ad E contiene C

• Si: Infatti B+ = {B,C}. Dunque E diventaE = {A→ B,A→ C ,B → C}

• Eseguiamo il passo (4):

• A→ C e’ implicata logicamente da A→ B,B → C (pertransitivita’). Dunque E diventa E = {A→ B,B → C}.

• Una copertura canonica (o minimale) e’:

E = {A→ B,B → C}

Raffaella Gentilini Teoria della Normalizzazione 19 / 37

Page 51: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C )

• F = {A→ BC ,B → C ,A→ B,AB → C}• Dopo l’esecuzione del passo (2) dell’algoritmo si ha:

E = {A→ B,A→ C ,B → C ,AB → C}• Eseguiamo il passo (3). A e’ ridondante in AB → C ?

• Verifichiamo se la chiusura di B rispetto ad E contiene C• Si: Infatti B+ = {B,C}. Dunque E diventa

E = {A→ B,A→ C ,B → C}• Eseguiamo il passo (4):

• A→ C e’ implicata logicamente da A→ B,B → C (pertransitivita’). Dunque E diventa E = {A→ B,B → C}.

• Una copertura canonica (o minimale) e’:

E = {A→ B,B → C}

Raffaella Gentilini Teoria della Normalizzazione 19 / 37

Page 52: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C )

• F = {A→ BC ,B → C ,A→ B,AB → C}• Dopo l’esecuzione del passo (2) dell’algoritmo si ha:

E = {A→ B,A→ C ,B → C ,AB → C}• Eseguiamo il passo (3). A e’ ridondante in AB → C ?

• Verifichiamo se la chiusura di B rispetto ad E contiene C• Si: Infatti B+ = {B,C}. Dunque E diventa

E = {A→ B,A→ C ,B → C}• Eseguiamo il passo (4):

• A→ C e’ implicata logicamente da A→ B,B → C (pertransitivita’). Dunque E diventa E = {A→ B,B → C}.

• Una copertura canonica (o minimale) e’:

E = {A→ B,B → C}

Raffaella Gentilini Teoria della Normalizzazione 19 / 37

Page 53: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C )

• F = {A→ BC ,B → C ,A→ B,AB → C}• Dopo l’esecuzione del passo (2) dell’algoritmo si ha:

E = {A→ B,A→ C ,B → C ,AB → C}• Eseguiamo il passo (3). A e’ ridondante in AB → C ?

• Verifichiamo se la chiusura di B rispetto ad E contiene C• Si: Infatti B+ = {B,C}. Dunque E diventa

E = {A→ B,A→ C ,B → C}• Eseguiamo il passo (4):

• A→ C e’ implicata logicamente da A→ B,B → C (pertransitivita’). Dunque E diventa E = {A→ B,B → C}.

• Una copertura canonica (o minimale) e’:

E = {A→ B,B → C}Raffaella Gentilini Teoria della Normalizzazione 19 / 37

Page 54: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Forme Normali basate su Dipendenze Funzionali

• 1NF: Prima Forma Normale

• 2NF: Seconda Forma normale

• 3NF: Terza Forma Normale

• BCNF: Forma Normale di Boyce-Codd

Normalizzare uno schema di relazione R=

Decomporre (opportunamente) R in schemi che siano in forma normale

Raffaella Gentilini Teoria della Normalizzazione 20 / 37

Page 55: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Forme Normali basate su Dipendenze Funzionali

• 1NF: Prima Forma Normale

• 2NF: Seconda Forma normale

• 3NF: Terza Forma Normale

• BCNF: Forma Normale di Boyce-Codd

Normalizzare uno schema di relazione R=

Decomporre (opportunamente) R in schemi che siano in forma normale

Raffaella Gentilini Teoria della Normalizzazione 20 / 37

Page 56: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Normalizzare sfruttando le Dipendenze Funzionali

Decomponendo uno schema di relazione R sfruttando un insieme di dipen-denze funzionali F in un insieme di schemi R1 . . .Rn vogliamo:

• Minimizzare la ridondanza

• Decomposizione Lossless-join: Senza perdita di informazione

• Conservare le dipendenze: Se Fi e’ l’insieme delle dipendenze di F+

che includono solo attributi di Ri , allora:

• La decomposizione dovrebbe essere dependency preserving,cioe’ (F1 ∪ · · · ∪ Fn)+ = F+

• altrimenti il controllo delle violazioni delle dipendenzefunzionali (dello schema originario) comporterebbe lacomputazione esplicita di operazioni di join.

Raffaella Gentilini Teoria della Normalizzazione 21 / 37

Page 57: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Normalizzare sfruttando le Dipendenze Funzionali

Decomponendo uno schema di relazione R sfruttando un insieme di dipen-denze funzionali F in un insieme di schemi R1 . . .Rn vogliamo:

• Minimizzare la ridondanza

• Decomposizione Lossless-join: Senza perdita di informazione

• Conservare le dipendenze: Se Fi e’ l’insieme delle dipendenze di F+

che includono solo attributi di Ri , allora:

• La decomposizione dovrebbe essere dependency preserving,cioe’ (F1 ∪ · · · ∪ Fn)+ = F+

• altrimenti il controllo delle violazioni delle dipendenzefunzionali (dello schema originario) comporterebbe lacomputazione esplicita di operazioni di join.

Raffaella Gentilini Teoria della Normalizzazione 21 / 37

Page 58: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Normalizzare sfruttando le Dipendenze Funzionali

Decomponendo uno schema di relazione R sfruttando un insieme di dipen-denze funzionali F in un insieme di schemi R1 . . .Rn vogliamo:

• Minimizzare la ridondanza

• Decomposizione Lossless-join: Senza perdita di informazione

• Conservare le dipendenze: Se Fi e’ l’insieme delle dipendenze di F+

che includono solo attributi di Ri , allora:

• La decomposizione dovrebbe essere dependency preserving,cioe’ (F1 ∪ · · · ∪ Fn)+ = F+

• altrimenti il controllo delle violazioni delle dipendenzefunzionali (dello schema originario) comporterebbe lacomputazione esplicita di operazioni di join.

Raffaella Gentilini Teoria della Normalizzazione 21 / 37

Page 59: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Normalizzare sfruttando le Dipendenze Funzionali

Decomponendo uno schema di relazione R sfruttando un insieme di dipen-denze funzionali F in un insieme di schemi R1 . . .Rn vogliamo:

• Minimizzare la ridondanza

• Decomposizione Lossless-join: Senza perdita di informazione

• Conservare le dipendenze: Se Fi e’ l’insieme delle dipendenze di F+

che includono solo attributi di Ri , allora:

• La decomposizione dovrebbe essere dependency preserving,cioe’ (F1 ∪ · · · ∪ Fn)+ = F+

• altrimenti il controllo delle violazioni delle dipendenzefunzionali (dello schema originario) comporterebbe lacomputazione esplicita di operazioni di join.

Raffaella Gentilini Teoria della Normalizzazione 21 / 37

Page 60: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Normalizzare sfruttando le Dipendenze Funzionali

Decomponendo uno schema di relazione R sfruttando un insieme di dipen-denze funzionali F in un insieme di schemi R1 . . .Rn vogliamo:

• Minimizzare la ridondanza

• Decomposizione Lossless-join: Senza perdita di informazione

• Conservare le dipendenze: Se Fi e’ l’insieme delle dipendenze di F+

che includono solo attributi di Ri , allora:

• La decomposizione dovrebbe essere dependency preserving,cioe’ (F1 ∪ · · · ∪ Fn)+ = F+

• altrimenti il controllo delle violazioni delle dipendenzefunzionali (dello schema originario) comporterebbe lacomputazione esplicita di operazioni di join.

Raffaella Gentilini Teoria della Normalizzazione 21 / 37

Page 61: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Normalizzare sfruttando le Dipendenze Funzionali

Decomponendo uno schema di relazione R sfruttando un insieme di dipen-denze funzionali F in un insieme di schemi R1 . . .Rn vogliamo:

• Minimizzare la ridondanza

• Decomposizione Lossless-join: Senza perdita di informazione

• Conservare le dipendenze: Se Fi e’ l’insieme delle dipendenze di F+

che includono solo attributi di Ri , allora:

• La decomposizione dovrebbe essere dependency preserving,cioe’ (F1 ∪ · · · ∪ Fn)+ = F+

• altrimenti il controllo delle violazioni delle dipendenzefunzionali (dello schema originario) comporterebbe lacomputazione esplicita di operazioni di join.

Raffaella Gentilini Teoria della Normalizzazione 21 / 37

Page 62: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ), F = {A→ B,B → C}• puo’ essere decomposto in due modi diversi:

1. R1 = (A,B), R2 = (B,C )

• decomposizione senza perdite• conserva le dipendenze

2. R1 = (A,B), R2 = A,C )

• decomposizione senza perdite• non conserva le dipendenze (non posso controllare se viene

violato il vincolo B → C senza calcolare R1 ./ R2)

Raffaella Gentilini Teoria della Normalizzazione 22 / 37

Page 63: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ), F = {A→ B,B → C}• puo’ essere decomposto in due modi diversi:

1. R1 = (A,B), R2 = (B,C )

• decomposizione senza perdite• conserva le dipendenze

2. R1 = (A,B), R2 = A,C )

• decomposizione senza perdite• non conserva le dipendenze (non posso controllare se viene

violato il vincolo B → C senza calcolare R1 ./ R2)

Raffaella Gentilini Teoria della Normalizzazione 22 / 37

Page 64: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ), F = {A→ B,B → C}• puo’ essere decomposto in due modi diversi:

1. R1 = (A,B), R2 = (B,C )• decomposizione senza perdite• conserva le dipendenze

2. R1 = (A,B), R2 = A,C )

• decomposizione senza perdite• non conserva le dipendenze (non posso controllare se viene

violato il vincolo B → C senza calcolare R1 ./ R2)

Raffaella Gentilini Teoria della Normalizzazione 22 / 37

Page 65: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R = (A,B,C ), F = {A→ B,B → C}• puo’ essere decomposto in due modi diversi:

1. R1 = (A,B), R2 = (B,C )• decomposizione senza perdite• conserva le dipendenze

2. R1 = (A,B), R2 = A,C )• decomposizione senza perdite• non conserva le dipendenze (non posso controllare se viene

violato il vincolo B → C senza calcolare R1 ./ R2)

Raffaella Gentilini Teoria della Normalizzazione 22 / 37

Page 66: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Verificare la Conservazione delle Dipendenze

• Per verificare se la dipendenza α→ β e’ preservata in unadecomposizione di R in R1 . . .Rn, applichiamo il seguente test (lechiusure di attributi sono fatte rispetto ad F ):

result ← αwhile result cambia do

for each Ri nella decomposizione dot = (result ∩ Ri )

+ ∩ Ri

result ← result ∪ tend for

end while

• Se result ⊇ β, allora la DF α→ β e’ preservata.

• Applicheremo il test su tutte le dipendenze di F

• Questa procedura e’ polinomiale, mentre la computazione di F+ e(F1 ∪ · · · ∪ Fn)+ richiede un tempo esponenziale.

Raffaella Gentilini Teoria della Normalizzazione 23 / 37

Page 67: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Boyce-Codd Normal Form (BCNF)

Definizione: Boyce-Codd Normal Form

Uno schema di relazione R(X ) e’ in BCNF rispetto ad un insieme F didipendenze funzionali, se per ogni dipendenza in F+ della forma α → β,α, β ⊆ X , almeno una delle seguenti condizioni e’ soddisfatta:

• α→ β e’ banale (ovvero β ⊆ α)

• α e’ superchiave di R(X )

Raffaella Gentilini Teoria della Normalizzazione 24 / 37

Page 68: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R(X ) = (A,B,C ), F = {A→ B,B → C}• A e’ chiave

• R non e’ in BCNF

• Decomposizione: R1 = (A,B),R2 = (B,C )• R1 e R2 sono in BCNF• la decomposizione e’ senza perdite• e preserva le dipendenze

Raffaella Gentilini Teoria della Normalizzazione 25 / 37

Page 69: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R(X ) = (A,B,C ), F = {A→ B,B → C}• A e’ chiave

• R non e’ in BCNF

• Decomposizione: R1 = (A,B),R2 = (B,C )• R1 e R2 sono in BCNF• la decomposizione e’ senza perdite• e preserva le dipendenze

Raffaella Gentilini Teoria della Normalizzazione 25 / 37

Page 70: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R(X ) = (A,B,C ), F = {A→ B,B → C}• A e’ chiave

• R non e’ in BCNF

• Decomposizione: R1 = (A,B),R2 = (B,C )• R1 e R2 sono in BCNF• la decomposizione e’ senza perdite• e preserva le dipendenze

Raffaella Gentilini Teoria della Normalizzazione 25 / 37

Page 71: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Example

• R(X ) = (A,B,C ), F = {A→ B,B → C}• A e’ chiave

• R non e’ in BCNF

• Decomposizione: R1 = (A,B),R2 = (B,C )• R1 e R2 sono in BCNF• la decomposizione e’ senza perdite• e preserva le dipendenze

Raffaella Gentilini Teoria della Normalizzazione 25 / 37

Page 72: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo per la decomposizione in BCNF

result ← {R};done ← falsewhile not done do

if ∃S ∈ result non in BCNF thensi determini una DF α→ β su S che violi BCNFresult ← (result \ S) ∪ {(S \ β)} ∪ {(αβ)}

elsedone ← true

end ifend while

Raffaella Gentilini Teoria della Normalizzazione 26 / 37

Page 73: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF• Per verificare se DF non banaleα→ β causa violazione della BCNF:

• computare α+ (la chiusura di α), e verificare se include tuttigli attributi di R, cioe’ se α+ e’ superchiave di R

• Test semplificato: Per verificare se uno schema R e’ in BCNF, e’sufficiente verificare solo che le DF in F non violano la BCNF(invece di controllare tutte le dipendenze di F+). Infatti:

• se nessuna delle DF in F causa una violazione della BCNF,allora nessuna delle DF in F+ causa una violazione della BCNF

• Tuttavia, utilizzare solo F e’ scorretto quando si effettua il test suuna relazione della decomposizione di R.

• Ad esempio, consideriamo R(A,B,C ,D) edF = {A→ B,B → C}• decomponiamo R in R1(A,B) e R2(A,C ,D)• nessuna delle DF in F contiene solo attributi in (A,C ,D),

tuttavia la DF A→ C ∈ F+ mostra che R2 non e’ in BCNF

Raffaella Gentilini Teoria della Normalizzazione 27 / 37

Page 74: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF• Per verificare se DF non banaleα→ β causa violazione della BCNF:

• computare α+ (la chiusura di α), e verificare se include tuttigli attributi di R, cioe’ se α+ e’ superchiave di R

• Test semplificato: Per verificare se uno schema R e’ in BCNF, e’sufficiente verificare solo che le DF in F non violano la BCNF(invece di controllare tutte le dipendenze di F+). Infatti:

• se nessuna delle DF in F causa una violazione della BCNF,allora nessuna delle DF in F+ causa una violazione della BCNF

• Tuttavia, utilizzare solo F e’ scorretto quando si effettua il test suuna relazione della decomposizione di R.

• Ad esempio, consideriamo R(A,B,C ,D) edF = {A→ B,B → C}• decomponiamo R in R1(A,B) e R2(A,C ,D)• nessuna delle DF in F contiene solo attributi in (A,C ,D),

tuttavia la DF A→ C ∈ F+ mostra che R2 non e’ in BCNF

Raffaella Gentilini Teoria della Normalizzazione 27 / 37

Page 75: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF• Per verificare se DF non banaleα→ β causa violazione della BCNF:

• computare α+ (la chiusura di α), e verificare se include tuttigli attributi di R, cioe’ se α+ e’ superchiave di R

• Test semplificato: Per verificare se uno schema R e’ in BCNF, e’sufficiente verificare solo che le DF in F non violano la BCNF(invece di controllare tutte le dipendenze di F+). Infatti:

• se nessuna delle DF in F causa una violazione della BCNF,allora nessuna delle DF in F+ causa una violazione della BCNF

• Tuttavia, utilizzare solo F e’ scorretto quando si effettua il test suuna relazione della decomposizione di R.

• Ad esempio, consideriamo R(A,B,C ,D) edF = {A→ B,B → C}• decomponiamo R in R1(A,B) e R2(A,C ,D)• nessuna delle DF in F contiene solo attributi in (A,C ,D),

tuttavia la DF A→ C ∈ F+ mostra che R2 non e’ in BCNF

Raffaella Gentilini Teoria della Normalizzazione 27 / 37

Page 76: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF

Per verificare se uno schema Ri di una decomposizione di R e’ in BCNF siopera come segue:

• o verificare se Ri e’ in BCNF rispetto alla restrizione di F+ su Ri

(cioe’ tutte le dipendenze funzionali in R+ che contengono soloattributi di Ri

• oppure effettuare sull’insieme di DF F il seguente test:

• per ogni insieme di attributi α ⊆ Ri , verificare che α+ o nonincluda attributi di Ri \ α, oppure includa tutti gli attributi diRi

• se la condizione sopra e’ violata da qualche α→ β ∈ F , sidimostra che la DF α→ (α+ \ α) ∩ Ri certifica che Ri violaBCNF.

• Le dipendenze di questo tipo saranno usate per decomporreulteriormente Ri

Raffaella Gentilini Teoria della Normalizzazione 28 / 37

Page 77: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF

Per verificare se uno schema Ri di una decomposizione di R e’ in BCNF siopera come segue:

• o verificare se Ri e’ in BCNF rispetto alla restrizione di F+ su Ri

(cioe’ tutte le dipendenze funzionali in R+ che contengono soloattributi di Ri

• oppure effettuare sull’insieme di DF F il seguente test:

• per ogni insieme di attributi α ⊆ Ri , verificare che α+ o nonincluda attributi di Ri \ α, oppure includa tutti gli attributi diRi

• se la condizione sopra e’ violata da qualche α→ β ∈ F , sidimostra che la DF α→ (α+ \ α) ∩ Ri certifica che Ri violaBCNF.

• Le dipendenze di questo tipo saranno usate per decomporreulteriormente Ri

Raffaella Gentilini Teoria della Normalizzazione 28 / 37

Page 78: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF

Per verificare se uno schema Ri di una decomposizione di R e’ in BCNF siopera come segue:

• o verificare se Ri e’ in BCNF rispetto alla restrizione di F+ su Ri

(cioe’ tutte le dipendenze funzionali in R+ che contengono soloattributi di Ri

• oppure effettuare sull’insieme di DF F il seguente test:

• per ogni insieme di attributi α ⊆ Ri , verificare che α+ o nonincluda attributi di Ri \ α, oppure includa tutti gli attributi diRi

• se la condizione sopra e’ violata da qualche α→ β ∈ F , sidimostra che la DF α→ (α+ \ α) ∩ Ri certifica che Ri violaBCNF.

• Le dipendenze di questo tipo saranno usate per decomporreulteriormente Ri

Raffaella Gentilini Teoria della Normalizzazione 28 / 37

Page 79: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF

Per verificare se uno schema Ri di una decomposizione di R e’ in BCNF siopera come segue:

• o verificare se Ri e’ in BCNF rispetto alla restrizione di F+ su Ri

(cioe’ tutte le dipendenze funzionali in R+ che contengono soloattributi di Ri

• oppure effettuare sull’insieme di DF F il seguente test:

• per ogni insieme di attributi α ⊆ Ri , verificare che α+ o nonincluda attributi di Ri \ α, oppure includa tutti gli attributi diRi

• se la condizione sopra e’ violata da qualche α→ β ∈ F , sidimostra che la DF α→ (α+ \ α) ∩ Ri certifica che Ri violaBCNF.

• Le dipendenze di questo tipo saranno usate per decomporreulteriormente Ri

Raffaella Gentilini Teoria della Normalizzazione 28 / 37

Page 80: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Test per BCNF

Per verificare se uno schema Ri di una decomposizione di R e’ in BCNF siopera come segue:

• o verificare se Ri e’ in BCNF rispetto alla restrizione di F+ su Ri

(cioe’ tutte le dipendenze funzionali in R+ che contengono soloattributi di Ri

• oppure effettuare sull’insieme di DF F il seguente test:

• per ogni insieme di attributi α ⊆ Ri , verificare che α+ o nonincluda attributi di Ri \ α, oppure includa tutti gli attributi diRi

• se la condizione sopra e’ violata da qualche α→ β ∈ F , sidimostra che la DF α→ (α+ \ α) ∩ Ri certifica che Ri violaBCNF.

• Le dipendenze di questo tipo saranno usate per decomporreulteriormente Ri

Raffaella Gentilini Teoria della Normalizzazione 28 / 37

Page 81: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

BCNF e conservazione delle dipendenze

Non e’ sempre possibile ottenere una BCNF che conservi le dipendenze:

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R non e’ in BCNF

• ogni possibile decomposizione di R non preserva JK → L.

Raffaella Gentilini Teoria della Normalizzazione 29 / 37

Page 82: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

BCNF e conservazione delle dipendenze

Non e’ sempre possibile ottenere una BCNF che conservi le dipendenze:

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R non e’ in BCNF

• ogni possibile decomposizione di R non preserva JK → L.

Raffaella Gentilini Teoria della Normalizzazione 29 / 37

Page 83: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

BCNF e conservazione delle dipendenze

Non e’ sempre possibile ottenere una BCNF che conservi le dipendenze:

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R non e’ in BCNF

• ogni possibile decomposizione di R non preserva JK → L.

Raffaella Gentilini Teoria della Normalizzazione 29 / 37

Page 84: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

BCNF e conservazione delle dipendenze

Non e’ sempre possibile ottenere una BCNF che conservi le dipendenze:

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R non e’ in BCNF

• ogni possibile decomposizione di R non preserva JK → L.

Raffaella Gentilini Teoria della Normalizzazione 29 / 37

Page 85: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale: Motivazioni

• Ci sono casi in cui:

• BCNF non preserva le dipendenze, mentre e’ necessario avereuna procedura efficiente per mantenere le DF

• Soluzione: Definire una forma normale piu’ debole (vedremo ora laterza forma normale – 3NF).

• ammettere della ridondanza (con i conseguenti svantaggi;vedremo esempio) ma

• garantire che le DF possano essere controllate sulle relazionidecomposte, senza alcun join.

• Proprieta’: Esiste sempre una decomposizione in 3NF che conservale dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 30 / 37

Page 86: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale: Motivazioni

• Ci sono casi in cui:

• BCNF non preserva le dipendenze, mentre e’ necessario avereuna procedura efficiente per mantenere le DF

• Soluzione: Definire una forma normale piu’ debole (vedremo ora laterza forma normale – 3NF).

• ammettere della ridondanza (con i conseguenti svantaggi;vedremo esempio) ma

• garantire che le DF possano essere controllate sulle relazionidecomposte, senza alcun join.

• Proprieta’: Esiste sempre una decomposizione in 3NF che conservale dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 30 / 37

Page 87: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale: Motivazioni

• Ci sono casi in cui:

• BCNF non preserva le dipendenze, mentre e’ necessario avereuna procedura efficiente per mantenere le DF

• Soluzione: Definire una forma normale piu’ debole (vedremo ora laterza forma normale – 3NF).

• ammettere della ridondanza (con i conseguenti svantaggi;vedremo esempio) ma

• garantire che le DF possano essere controllate sulle relazionidecomposte, senza alcun join.

• Proprieta’: Esiste sempre una decomposizione in 3NF che conservale dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 30 / 37

Page 88: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale: Motivazioni

• Ci sono casi in cui:

• BCNF non preserva le dipendenze, mentre e’ necessario avereuna procedura efficiente per mantenere le DF

• Soluzione: Definire una forma normale piu’ debole (vedremo ora laterza forma normale – 3NF).

• ammettere della ridondanza (con i conseguenti svantaggi;vedremo esempio) ma

• garantire che le DF possano essere controllate sulle relazionidecomposte, senza alcun join.

• Proprieta’: Esiste sempre una decomposizione in 3NF che conservale dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 30 / 37

Page 89: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale: Motivazioni

• Ci sono casi in cui:

• BCNF non preserva le dipendenze, mentre e’ necessario avereuna procedura efficiente per mantenere le DF

• Soluzione: Definire una forma normale piu’ debole (vedremo ora laterza forma normale – 3NF).

• ammettere della ridondanza (con i conseguenti svantaggi;vedremo esempio) ma

• garantire che le DF possano essere controllate sulle relazionidecomposte, senza alcun join.

• Proprieta’: Esiste sempre una decomposizione in 3NF che conservale dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 30 / 37

Page 90: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale: Motivazioni

• Ci sono casi in cui:

• BCNF non preserva le dipendenze, mentre e’ necessario avereuna procedura efficiente per mantenere le DF

• Soluzione: Definire una forma normale piu’ debole (vedremo ora laterza forma normale – 3NF).

• ammettere della ridondanza (con i conseguenti svantaggi;vedremo esempio) ma

• garantire che le DF possano essere controllate sulle relazionidecomposte, senza alcun join.

• Proprieta’: Esiste sempre una decomposizione in 3NF che conservale dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 30 / 37

Page 91: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale: Motivazioni

• Ci sono casi in cui:

• BCNF non preserva le dipendenze, mentre e’ necessario avereuna procedura efficiente per mantenere le DF

• Soluzione: Definire una forma normale piu’ debole (vedremo ora laterza forma normale – 3NF).

• ammettere della ridondanza (con i conseguenti svantaggi;vedremo esempio) ma

• garantire che le DF possano essere controllate sulle relazionidecomposte, senza alcun join.

• Proprieta’: Esiste sempre una decomposizione in 3NF che conservale dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 30 / 37

Page 92: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale (3NF)

Definizione: Terza Forma Normale

Uno schema di relazione R(X ) e’ in terza forma normale rispetto ad un in-sieme F di dipendenze funzionali, se per ogni dipendenza in F+ della formaα→ β, α, β ⊆ X , almeno una delle seguenti condizioni e’ soddisfatta:

• α→ β e’ banale (ovvero β ⊆ α)

• α e’ superchiave di R(X )

• ogni attributo A in β \ α e’ contenuto in una chiave candidata di R

• Una relazione in BCNF e’ anche in 3NF

• La terza condizione e’ il rilassamento della BCNF che assicura laconservazione delle dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 31 / 37

Page 93: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale (3NF)

Definizione: Terza Forma Normale

Uno schema di relazione R(X ) e’ in terza forma normale rispetto ad un in-sieme F di dipendenze funzionali, se per ogni dipendenza in F+ della formaα→ β, α, β ⊆ X , almeno una delle seguenti condizioni e’ soddisfatta:

• α→ β e’ banale (ovvero β ⊆ α)

• α e’ superchiave di R(X )

• ogni attributo A in β \ α e’ contenuto in una chiave candidata di R

• Una relazione in BCNF e’ anche in 3NF

• La terza condizione e’ il rilassamento della BCNF che assicura laconservazione delle dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 31 / 37

Page 94: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Terza Forma Normale (3NF)

Definizione: Terza Forma Normale

Uno schema di relazione R(X ) e’ in terza forma normale rispetto ad un in-sieme F di dipendenze funzionali, se per ogni dipendenza in F+ della formaα→ β, α, β ⊆ X , almeno una delle seguenti condizioni e’ soddisfatta:

• α→ β e’ banale (ovvero β ⊆ α)

• α e’ superchiave di R(X )

• ogni attributo A in β \ α e’ contenuto in una chiave candidata di R

• Una relazione in BCNF e’ anche in 3NF

• La terza condizione e’ il rilassamento della BCNF che assicura laconservazione delle dipendenze.

Raffaella Gentilini Teoria della Normalizzazione 31 / 37

Page 95: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

3NF: Esempio

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R e’ in 3NF

• JK → L: JK e’ superchiave• L→ K : K e’ contenuta in una chiave candidata

• La decomposizione in BCNF ha i due schemi (JL), (LK )

• verificare il rispetto della DF JK → L richiederebbe un join

• nello schema c’e’ ridondanza

Raffaella Gentilini Teoria della Normalizzazione 32 / 37

Page 96: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

3NF: Esempio

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R e’ in 3NF

• JK → L: JK e’ superchiave• L→ K : K e’ contenuta in una chiave candidata

• La decomposizione in BCNF ha i due schemi (JL), (LK )

• verificare il rispetto della DF JK → L richiederebbe un join

• nello schema c’e’ ridondanza

Raffaella Gentilini Teoria della Normalizzazione 32 / 37

Page 97: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

3NF: Esempio

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R e’ in 3NF

• JK → L: JK e’ superchiave• L→ K : K e’ contenuta in una chiave candidata

• La decomposizione in BCNF ha i due schemi (JL), (LK )

• verificare il rispetto della DF JK → L richiederebbe un join

• nello schema c’e’ ridondanza

Raffaella Gentilini Teoria della Normalizzazione 32 / 37

Page 98: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

3NF: Esempio

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R e’ in 3NF

• JK → L: JK e’ superchiave• L→ K : K e’ contenuta in una chiave candidata

• La decomposizione in BCNF ha i due schemi (JL), (LK )

• verificare il rispetto della DF JK → L richiederebbe un join

• nello schema c’e’ ridondanza

Raffaella Gentilini Teoria della Normalizzazione 32 / 37

Page 99: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

3NF: Esempio

Example

• R = (J,K , L), F = {JK → L, L→ K}

• due chiavi candidate: JK e JL

• R e’ in 3NF

• JK → L: JK e’ superchiave• L→ K : K e’ contenuta in una chiave candidata

• La decomposizione in BCNF ha i due schemi (JL), (LK )

• verificare il rispetto della DF JK → L richiederebbe un join

• nello schema c’e’ ridondanza

Raffaella Gentilini Teoria della Normalizzazione 32 / 37

Page 100: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

1. Sia G una copertura canonica di F

2. Per ogni parte sinistra X in una DF in G :

• si definisca schema D con attributi {X ∪ {A1} ∪ · · · ∪ {Ak}},dove X → A1, . . . , X → Ak sono le sole dipendenze di G conX come parte sinistra

• X sara’ la chiave dello schema

3. Se nessuno degli schemi di relazione in D contiene una chiave di R,si definisca un ulteriore schema di relazione D contenente attributiche formano una chiave di R

4. Si eliminino le relazioni ridondanti (i.e. proiezioni di altre relazioni)

Raffaella Gentilini Teoria della Normalizzazione 33 / 37

Page 101: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

1. Sia G una copertura canonica di F

2. Per ogni parte sinistra X in una DF in G :

• si definisca schema D con attributi {X ∪ {A1} ∪ · · · ∪ {Ak}},dove X → A1, . . . , X → Ak sono le sole dipendenze di G conX come parte sinistra

• X sara’ la chiave dello schema

3. Se nessuno degli schemi di relazione in D contiene una chiave di R,si definisca un ulteriore schema di relazione D contenente attributiche formano una chiave di R

4. Si eliminino le relazioni ridondanti (i.e. proiezioni di altre relazioni)

Raffaella Gentilini Teoria della Normalizzazione 33 / 37

Page 102: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

1. Sia G una copertura canonica di F

2. Per ogni parte sinistra X in una DF in G :

• si definisca schema D con attributi {X ∪ {A1} ∪ · · · ∪ {Ak}},dove X → A1, . . . , X → Ak sono le sole dipendenze di G conX come parte sinistra

• X sara’ la chiave dello schema

3. Se nessuno degli schemi di relazione in D contiene una chiave di R,si definisca un ulteriore schema di relazione D contenente attributiche formano una chiave di R

4. Si eliminino le relazioni ridondanti (i.e. proiezioni di altre relazioni)

Raffaella Gentilini Teoria della Normalizzazione 33 / 37

Page 103: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

1. Sia G una copertura canonica di F

2. Per ogni parte sinistra X in una DF in G :

• si definisca schema D con attributi {X ∪ {A1} ∪ · · · ∪ {Ak}},dove X → A1, . . . , X → Ak sono le sole dipendenze di G conX come parte sinistra

• X sara’ la chiave dello schema

3. Se nessuno degli schemi di relazione in D contiene una chiave di R,si definisca un ulteriore schema di relazione D contenente attributiche formano una chiave di R

4. Si eliminino le relazioni ridondanti (i.e. proiezioni di altre relazioni)

Raffaella Gentilini Teoria della Normalizzazione 33 / 37

Page 104: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

Si dimostra che l’algoritmo visto e’ tale che:

• e’ corretto

• ogni schema Ri e’ in NF

• la decomposizione conserva le dipendenze ed e’ senza perdite.

Raffaella Gentilini Teoria della Normalizzazione 34 / 37

Page 105: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

Si dimostra che l’algoritmo visto e’ tale che:

• e’ corretto

• ogni schema Ri e’ in NF

• la decomposizione conserva le dipendenze ed e’ senza perdite.

Raffaella Gentilini Teoria della Normalizzazione 34 / 37

Page 106: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

Si dimostra che l’algoritmo visto e’ tale che:

• e’ corretto

• ogni schema Ri e’ in NF

• la decomposizione conserva le dipendenze ed e’ senza perdite.

Raffaella Gentilini Teoria della Normalizzazione 34 / 37

Page 107: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Algoritmo di Decomposizione in 3NF

Si dimostra che l’algoritmo visto e’ tale che:

• e’ corretto

• ogni schema Ri e’ in NF

• la decomposizione conserva le dipendenze ed e’ senza perdite.

Raffaella Gentilini Teoria della Normalizzazione 34 / 37

Page 108: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Decomposizione in 3NF: Esempio

Example

• R(nomeDitta, nomeCliente, nomeImp, numUff )

• nomeImp → nomeDitta numUffnomeCliente nomeDitta→ nomeImp

• Il passo 2 inserisce i seguenti schemi nella decomposizione:

• S(nomeimpiegato, nomeDitta, numUff )• T (nomeCliente, nomeDitta, nomeImp)

• Poiche’ T contiene una chiave candidata per R abbiamo finito

Raffaella Gentilini Teoria della Normalizzazione 35 / 37

Page 109: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Decomposizione in 3NF: Esempio

Example

• R(nomeDitta, nomeCliente, nomeImp, numUff )

• nomeImp → nomeDitta numUffnomeCliente nomeDitta→ nomeImp

• Il passo 2 inserisce i seguenti schemi nella decomposizione:

• S(nomeimpiegato, nomeDitta, numUff )• T (nomeCliente, nomeDitta, nomeImp)

• Poiche’ T contiene una chiave candidata per R abbiamo finito

Raffaella Gentilini Teoria della Normalizzazione 35 / 37

Page 110: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Decomposizione in 3NF: Esempio

Example

• R(nomeDitta, nomeCliente, nomeImp, numUff )

• nomeImp → nomeDitta numUffnomeCliente nomeDitta→ nomeImp

• Il passo 2 inserisce i seguenti schemi nella decomposizione:

• S(nomeimpiegato, nomeDitta, numUff )• T (nomeCliente, nomeDitta, nomeImp)

• Poiche’ T contiene una chiave candidata per R abbiamo finito

Raffaella Gentilini Teoria della Normalizzazione 35 / 37

Page 111: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Comparazione di BCNF e 3NF

• Per ogni dato schema e’ sempre possibile calcolare una 3NF:

• senza perdite• che conserva le dipendenze

• Per ogni dato schema e’ sempre possibile calcolare una BCNF

• senza perdite• potrebbe non preservare tutte le dipendenze

Raffaella Gentilini Teoria della Normalizzazione 36 / 37

Page 112: Teoria della Normalizzazione...Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali Teoria della Normalizzazione Ra aella Gentilini December 13, 2011 Ra

Introduzione Concetti Fondamentali Forme Normai basate su Dipendenze Funzionali

Comparazione di BCNF e 3NF

• Esempio di problemi dovuti alla ridondanza ammessa dalla 3NF

• R = (J,K , L)• F = {JK → L, L→ K}

J L Kj1 l1 k1j2 l1 k1j3 l1 k1

null l2 k2

Uno schema in 3NF ma non in BCNF comporta:

• ripetizione di informazione (ad esempio, la coppia di dati l1, k1)

• impiego di valori nulli (ad esempio, per rappresentare la correlazionetra l2 e k2 quando non ci sono corrispondenti valori per J.

Raffaella Gentilini Teoria della Normalizzazione 37 / 37