Corso Di Basi Di Dati 05 Normalizzazione

22
A.A. 2005/2006 Basi di Dati e Laboratorio 1 Corso di Basi di Dati e Laboratorio NORMALIZZAZIONE DI SCHEMI RELAZIONALI Prof. Silvana Castano A.A. 2005/2006 Basi di Dati e Laboratorio 2 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

Transcript of Corso Di Basi Di Dati 05 Normalizzazione

Page 1: Corso Di  Basi Di  Dati 05  Normalizzazione

1

A.A. 2005/2006 Basi di Dati e Laboratorio 1

Corso di Basi di Dati e Laboratorio

NORMALIZZAZIONE DISCHEMI RELAZIONALI

Prof. Silvana Castano

A.A. 2005/2006 Basi di Dati e Laboratorio 2

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

Page 2: Corso Di  Basi Di  Dati 05  Normalizzazione

2

A.A. 2005/2006 Basi di Dati e Laboratorio 3

ESEMPIO – MODULO ORDINE

Data: 1/10/03 Nr-Ordine : 10Nr-Fornitore: 67NomeFornitore: RossiIndir.Fornitore: Milano

Fornitura:

2600Prezzo totale

18002900Lavatrice060

8001800Televisore010

TotaleQuantitàPrezzoDescrizioneNr-Prodotto

A.A. 2005/2006 Basi di Dati e Laboratorio 4

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

Page 3: Corso Di  Basi Di  Dati 05  Normalizzazione

3

A.A. 2005/2006 Basi di Dati e Laboratorio 5

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 6

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)

Page 4: Corso Di  Basi Di  Dati 05  Normalizzazione

4

A.A. 2005/2006 Basi di Dati e Laboratorio 7

RIDONDANZA - ESEMPIO

200 1020Mouse 370

100520Mouse 360

70270Tastiera 250

70170Tastiera 240

400 4100Monitor 130

100010100Monitor120

200 2100Monitor110

Prezzo-Tot-PrQuant-PrPrezzo-PrDescr-PrNrPrNrOrd

A.A. 2005/2006 Basi di Dati e Laboratorio 8

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

Page 5: Corso Di  Basi Di  Dati 05  Normalizzazione

5

A.A. 2005/2006 Basi di Dati e Laboratorio 9

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 10

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)

Page 6: Corso Di  Basi Di  Dati 05  Normalizzazione

6

A.A. 2005/2006 Basi di Dati e Laboratorio 11

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 12

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

Page 7: Corso Di  Basi Di  Dati 05  Normalizzazione

7

A.A. 2005/2006 Basi di Dati e Laboratorio 13

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 14

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

Page 8: Corso Di  Basi Di  Dati 05  Normalizzazione

8

A.A. 2005/2006 Basi di Dati e Laboratorio 15

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 16

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)

Page 9: Corso Di  Basi Di  Dati 05  Normalizzazione

9

A.A. 2005/2006 Basi di Dati e Laboratorio 17

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 18

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

Page 10: Corso Di  Basi Di  Dati 05  Normalizzazione

10

A.A. 2005/2006 Basi di Dati e Laboratorio 19

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 20

TERZA FORMA NORMALE

Normalizzazione (rimedio)• Decomporre e preparare una nuova relazione

che comprenda gli attributi non-chiave che determinano funzionalmente altri attributi non-chiave

Page 11: Corso Di  Basi Di  Dati 05  Normalizzazione

11

A.A. 2005/2006 Basi di Dati e Laboratorio 21

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 22

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

Page 12: Corso Di  Basi Di  Dati 05  Normalizzazione

12

A.A. 2005/2006 Basi di Dati e Laboratorio 23

ESEMPIO

ESAME(Corso,DataEsame, Docente)In cui vale la FDd1: 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 24

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

Page 13: Corso Di  Basi Di  Dati 05  Normalizzazione

13

A.A. 2005/2006 Basi di Dati e Laboratorio 25

FORMA NORMALE DI BOYCE-CODD

La decomposizione dello schema non è immediata1. (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 26

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 dipendenzeLe relazioni decomposte hanno la capacità di rappresentare gli stessi vincoli di integrità definiti sulla relazione originaria

Page 14: Corso Di  Basi Di  Dati 05  Normalizzazione

14

A.A. 2005/2006 Basi di Dati e Laboratorio 27

DECOMPOSIZIONE SENZA PERDITA

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)

MilanoVenereNeriMilanoSaturnoNeri MilanoVenere VerdiMilanoGioveVerdiRomaMarteRossi SedeProgettoImpiegato

A.A. 2005/2006 Basi di Dati e Laboratorio 28

DECOMPOSIZIONE SENZA PERDITA

• La decomposizione porta alle seguenti relazioni:

• 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)

MilanoNeriMilanoVerdi RomaRossiSedeImpiegato

MilanoSaturnoMilanoVenereMilanoGioveRomaMarteSedeProgetto

Page 15: Corso Di  Basi Di  Dati 05  Normalizzazione

15

A.A. 2005/2006 Basi di Dati e Laboratorio 29

DECOMPOSIZIONE SENZA PERDITA

• Il risultato del join è il seguente:

MilanoVenereNeri

MilanoSaturnoNeri

MilanoGioveNeri

MilanoVenereVerdi

MilanoSaturnoVerdi

MilanoGioveVerdiRomaMarteRossi

SedeProgettoImpiegato

A.A. 2005/2006 Basi di Dati e Laboratorio 30

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)

Page 16: Corso Di  Basi Di  Dati 05  Normalizzazione

16

A.A. 2005/2006 Basi di Dati e Laboratorio 31

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 32

DECOMPOSIZIONE SENZA PERDITA

• Una decomposizione senza perdita per la nostra relazione R potrebbe essere la seguente

MilanoNeriMilanoVerdi RomaRossiSedeImpiegato

VenereNeri SaturnoNeriVenereVerdiGioveVerdiMarteRossiProgettoImpiegato

Page 17: Corso Di  Basi Di  Dati 05  Normalizzazione

17

A.A. 2005/2006 Basi di Dati e Laboratorio 33

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 34

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

Page 18: Corso Di  Basi Di  Dati 05  Normalizzazione

18

A.A. 2005/2006 Basi di Dati e Laboratorio 35

CONSERVAZIONE DELLE DIPENDENZE

• Decomposizione senza perditaGarantisce 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 dipendenzeGarantisce 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 36

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

Page 19: Corso Di  Basi Di  Dati 05  Normalizzazione

19

A.A. 2005/2006 Basi di Dati e Laboratorio 37

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 38

VERIFICHE SULLO SCHEMA LOGICO

725Bianchi

504Mori

504Rossi

303Verdi

303Neri

StipendioCategoriaImpiegato

Page 20: Corso Di  Basi Di  Dati 05  Normalizzazione

20

A.A. 2005/2006 Basi di Dati e Laboratorio 39

• 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

VERIFICHE SULLO SCHEMA LOGICO

A.A. 2005/2006 Basi di Dati e Laboratorio 40

VERIFICHE SULLO SCHEMA CONCETTUALE

• Sono valide le seguenti dipendenze funzionali:– d1: Nr-Ordine, Nr-Parte Quantità– d2: Nr-Parte Costo– d3: nr.Ordine Data

OrdineNr-Ordine

Nr-Parte

CostoQuantitàData

Page 21: Corso Di  Basi Di  Dati 05  Normalizzazione

21

A.A. 2005/2006 Basi di Dati e Laboratorio 41

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)ComposizioneOrdine

Nr-Ordine Data

Parte

Nr-Parte CostoQuantità

A.A. 2005/2006 Basi di Dati e Laboratorio 42

VERIFICHE SULLO SCHEMA CONCETTUALE

• 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

Budget

Nr-Ore-Lavorate

(1,N) (1,N)LavoraImpiegato

CF Nome

Reparto

Nr-Reparto PianoNr-Progetto

Page 22: Corso Di  Basi Di  Dati 05  Normalizzazione

22

A.A. 2005/2006 Basi di Dati e Laboratorio 43

VERIFICHE SULLO SCHEMA CONCETTUALE

BudgetNr-Progetto Progetto

Nr-Ore-Lavorate

(1,N) (1,N)LavoraImpiegato

CF Nome

Reparto

Nr-Reparto Piano