Corso Di Basi Di Dati 05 Normalizzazione

2,564 views

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,564
On SlideShare
0
From Embeds
0
Number of Embeds
66
Actions
Shares
0
Downloads
101
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Corso Di Basi Di Dati 05 Normalizzazione

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

×