Corso Di Basi Di Dati 05 Normalizzazione
-
Upload
guestbe916c -
Category
Business
-
view
2.310 -
download
0
Transcript of 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
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
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)
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
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)
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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