SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Contenu connexe

En vedette

Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSergio Porcu
 
Corso di "Sicurezza delle Reti Applicata"
Corso di "Sicurezza delle Reti Applicata"Corso di "Sicurezza delle Reti Applicata"
Corso di "Sicurezza delle Reti Applicata"Gian Luca Petrillo
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RGiuseppe Cramarossa
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai databaseMaurizio Napolitano
 
La Comunicazione Digitale
La Comunicazione DigitaleLa Comunicazione Digitale
La Comunicazione DigitalePietro e Silvia
 
Introduzione JQuery
Introduzione JQueryIntroduzione JQuery
Introduzione JQueryorestJump
 
Reti Informatiche
Reti InformaticheReti Informatiche
Reti Informatichebity1988
 
Html e CSS ipertesti e siti web 4.5
Html e CSS   ipertesti e siti web 4.5Html e CSS   ipertesti e siti web 4.5
Html e CSS ipertesti e siti web 4.5orestJump
 
Reti e internet
Reti e internetReti e internet
Reti e internetyrcorr
 

En vedette (14)

DATABASE (Basi di dati)
DATABASE (Basi di dati)DATABASE (Basi di dati)
DATABASE (Basi di dati)
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ER
 
esempio modello concettuale
esempio modello concettualeesempio modello concettuale
esempio modello concettuale
 
Corso di "Sicurezza delle Reti Applicata"
Corso di "Sicurezza delle Reti Applicata"Corso di "Sicurezza delle Reti Applicata"
Corso di "Sicurezza delle Reti Applicata"
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai database
 
Storia di internet
Storia di internetStoria di internet
Storia di internet
 
Le reti
Le retiLe reti
Le reti
 
La Comunicazione Digitale
La Comunicazione DigitaleLa Comunicazione Digitale
La Comunicazione Digitale
 
Power point internet
Power point internetPower point internet
Power point internet
 
Introduzione JQuery
Introduzione JQueryIntroduzione JQuery
Introduzione JQuery
 
Reti Informatiche
Reti InformaticheReti Informatiche
Reti Informatiche
 
Html e CSS ipertesti e siti web 4.5
Html e CSS   ipertesti e siti web 4.5Html e CSS   ipertesti e siti web 4.5
Html e CSS ipertesti e siti web 4.5
 
Reti e internet
Reti e internetReti e internet
Reti e internet
 

Similaire à Corso Di Basi Di Dati 05 Normalizzazione

Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q Lguestbe916c
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logicaguestbe916c
 
Come garantire la Qualita’ dei Risultati di Prova e Misura
Come garantire la Qualita’ dei Risultati di Prova e MisuraCome garantire la Qualita’ dei Risultati di Prova e Misura
Come garantire la Qualita’ dei Risultati di Prova e MisuraTogetherToSolve
 
CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)
CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)
CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)CertiMaC
 
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendaliVerziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendaliGMSL S.r.l.
 
New summary interlaboratory & summary instrument group reports mar15 ita
New summary interlaboratory & summary instrument group reports mar15 itaNew summary interlaboratory & summary instrument group reports mar15 ita
New summary interlaboratory & summary instrument group reports mar15 itaRandox
 
Qm "Regressione multipla"
Qm "Regressione multipla"Qm "Regressione multipla"
Qm "Regressione multipla"avetriani
 

Similaire à Corso Di Basi Di Dati 05 Normalizzazione (8)

Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logica
 
Come garantire la Qualita’ dei Risultati di Prova e Misura
Come garantire la Qualita’ dei Risultati di Prova e MisuraCome garantire la Qualita’ dei Risultati di Prova e Misura
Come garantire la Qualita’ dei Risultati di Prova e Misura
 
CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)
CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)
CertiMaC: Divisione sperimentale per l'efficienza dell'involucro edilizio (b)
 
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendaliVerziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendali
 
PRESENTAZIONE_ABATE
PRESENTAZIONE_ABATEPRESENTAZIONE_ABATE
PRESENTAZIONE_ABATE
 
New summary interlaboratory & summary instrument group reports mar15 ita
New summary interlaboratory & summary instrument group reports mar15 itaNew summary interlaboratory & summary instrument group reports mar15 ita
New summary interlaboratory & summary instrument group reports mar15 ita
 
Qm "Regressione multipla"
Qm "Regressione multipla"Qm "Regressione multipla"
Qm "Regressione multipla"
 

Plus de guestbe916c

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H Pguestbe916c
 
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apacheguestbe916c
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M Lguestbe916c
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M Sguestbe916c
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzioneguestbe916c
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioniguestbe916c
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controlloguestbe916c
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Serverguestbe916c
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionaleguestbe916c
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioniguestbe916c
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M Lguestbe916c
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q Lguestbe916c
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioniguestbe916c
 

Plus de guestbe916c (20)

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
 
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzione
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controllo
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q L
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionale
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioni
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettuale
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M L
 
Algebra
AlgebraAlgebra
Algebra
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q L
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
 
S Q L
S Q LS Q L
S Q L
 

Corso Di Basi Di Dati 05 Normalizzazione

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