Tecniche di normalizzazione 1 Normalizzazione La normalizzazione è utilizzata come tecnica di verifica dei risultati della progettazione di una base di dati; non costituisce una metodologia di progettazione Procedura che permette di trasformare schemi relazionali in schemi in forma normale 2 1
Forme normali La forma normale è una proprietà che garantisce la qualità di una base di dati relazionale, cioè l'assenza di determinati difetti Ad esempio, una relazione non normalizzata presenta ridondanze o anomalie 3 Una relazione con anomalie Impiegato Stipendio Progetto Bilancio Funzione Rossi 20 Marte 2 tecnico Verdi 35 Giove 15 progettista Verdi 35 Venere 15 progettista Neri 55 Venere 15 direttore Neri 55 Giove 15 consulente Neri 55 Marte 2 consulente Mori 48 Marte 2 direttore Mori 48 Venere 15 progettista Bianchi 48 Venere 15 progettista Bianchi 48 Giove 15 direttore 4 2
Proprietà Ogni impiegato ha un solo stipendio (anche se partecipa a più progetti) Ogni progetto ha un bilancio Ogni impiegato in ciascun progetto ha una sola funzione (anche se può avere funzioni diverse in progetti diversi) 5 Anomalie Lo stipendio di ciascun impiegato è ripetuto in tutte le ennuple relative ridondanza Se lo stipendio di un impiegato varia, è necessario andarne a modificare il valore in diverse ennuple anomalia di aggiornamento Se un impiegato interrompe la partecipazione a tutti i progetti, dobbiamo cancellarlo in diverse ennuple anomalia di cancellazione Un nuovo impiegato senza progetto non può essere inserito anomalia di inserimento 6 3
Perché questi fenomeni? Un'unica relazione per rappresentare informazioni eterogenee gli impiegati con i relativi stipendi i progetti con i relativi bilanci le partecipazioni degli impiegati ai progetti con le relative funzioni 7 Per studiare in maniera sistematica questi aspetti, è necessario introdurre il concetto di dipendenza funzionale 8 4
Dipendenza funzionale Si considerino la relazione r su R(X) due sottoinsiemi non vuoti Ye Zdi X esiste in r una dipendenza funzionale (FD) da Y a Z se, per ogni coppia di ennuple t 1 e t 2 di r con gli stessi valori su Y, risulta che t 1 et 2 hanno gli stessi valori anche su Z 9 Notazione X Y Esempi: Impiegato Stipendio Progetto Bilancio Impiegato Progetto Funzione 10 5
Altre FD Impiegato Progetto Progetto Si tratta di una FD banale (sempre soddisfatta) Y A è non banale se A non appartiene a Y Y Z è non banale se nessun attributo in Z appartiene a Y 11 Impiegato Stipendio Progetto Bilancio Funzione Rossi 20 Marte 2 tecnico Verdi 35 Giove 15 progettista Verdi 35 Venere 15 progettista Neri 55 Venere 15 direttore Neri 55 Giove 15 consulente Neri 55 Marte 2 consulente Mori 48 Marte 2 direttore Mori 48 Venere 15 progettista Bianchi 48 Venere 15 progettista Bianchi 48 Giove 15 direttore Impiegato Stipendio Progetto Bilancio Impiegato Progetto Funzione 12 6
Non tutte le FD causano anomalie In ciascun progetto, un impiegato svolge una sola funzione Impiegato Progetto Funzione Questa FD non causa anomalie 13 Alcune FD causano anomalie gli impiegati hanno un unico stipendio Impiegato Stipendio i progetti hanno un unico bilancio Progetto Bilancio Queste FD causano anomalie: perché? 14 7
Legame tra FD e anomalie Impiegato Stipendio Progetto Bilancio Impiegato Progetto Funzione Impiegato non e una chiave Progetto non e una chiave Impiegato Progetto è chiave 15 FD e anomalie La relazione contiene alcune informazioni legate alla chiave e altre ad attributi che non formano una chiave. Infatti abbiamo usato un'unica relazione per rappresentare informazioni eterogenee proprietà degli impiegati (lo stipendio) proprietà dei progetti (il bilancio) proprietà degli impiegati che partecipano ad un progetto (la funzione svolta) 16 8
Forma normale di Boyce-Codd (BCNF) Una relazione r è in forma normale di Boyce- Codd se, per ogni dipendenza funzionale (non banale) X Y definita su di essa, X contiene una chiave K di r La forma normale richiede che i concetti in una relazione siano omogenei (tutte le proprietà sono associate alla chiave) 17 Che facciamo se una relazione non è BCNF? La rimpiazziamo con altre relazioni che siano BCNF Come? Decomponendo sulla base delle dipendenze funzionali, al fine di separare i concetti 18 9
Impiegato Stipendio Progetto Bilancio Funzione Rossi 20 Marte 2 tecnico Rossi Marte tecnico Verdi 35Verdi Giove Giove progettista 15 progettista Verdi 35Verdi Venere progettista 15 progettista Neri 55 Neri Venere direttore 15 direttore Neri 55 Neri Giove consulente 15 consulente Neri Marte consulente Neri 55 Mori Marte direttore 2 consulente Mori 48 Mori Marte Venere progettista 2 direttore Mori 48Bianchi Venere progettista 15 progettista Bianchi 48Bianchi Venere Giove direttore 15 progettista Bianchi 48 Giove 15 direttore Impiegato Stipendio Rossi 20 Verdi 35 Neri 55 Mori 48 Bianchi 48 Impiegato Progetto Funzione Progetto Bilancio Marte 2 Giove 15 Venere 15 19 È sempre così facile? Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Impiegato Sede Progetto Sede 20 10
Decomponiamo sulla base delle dipendenze Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Impiegato Rossi Verdi Neri Sede Roma Milano Milano Progetto Marte Giove Saturno Venere Sede Roma Milano Milano Milano 21 Impiegato Rossi Verdi Neri Proviamo a ricostruire Sede Roma Milano Milano Progetto Marte Giove Saturno Venere Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Verdi Saturno Milano Neri Giove Milano Sede Roma Milano Milano Milano Diversa dalla relazione di partenza! 22 11
Decomposizione senza perdita Una relazione r si decompone senza perdita su X 1 e X 2 se il join delle proiezioni di r su X 1 e X 2 è uguale a r stessa (cioè non contiene ennuple spurie) Condizione sufficiente: se r e una relazione su X= X 1 X 2, X 0 = X 1 X 2, e r soddisfa X 0 X 1 oppure X 0 X 2 ( gli attributi comuni contengono una chiave per almeno una delle relazioni decomposte) allora la decomposizione senza perdita di r è garantita. 23 Impiegato Rossi Verdi Neri Un altra decomposizione? Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Sede Roma Milano Milano Impiegato Sede Progetto Sede Impiegato Progetto Rossi Marte Verdi Giove Verdi Venere Neri Saturno Neri Venere 24 12
Algoritmo Sia R lo schema di una relazione Risultato={R} FinchèesisteunarelazioneR in Risultato che non è in BCNF, si considerino le FD su R non banali del tipo α β, con α β= e si sostituisca Risultato=(Risultato - R ) (R -β) (α, β) 25 Proprietà La decomposizione effettuata tramite l algoritmo precedente è sempre priva di perdite Prova? (R -β) (α,β)= α α β esiste 26 13
Osservazione La FD Progetto Sede interessa attributi che non stanno nella stessa tabella. 27 Problema Supponiamo di voler inserire una nuova ennupla che specifica la partecipazione dell'impiegato Neri, che opera a Milano, al progetto Marte Impiegato Rossi Verdi Neri Sede Roma Milano Milano Impiegato Sede Progetto Sede Impiegato Progetto Rossi Marte Verdi Giove Verdi Venere Neri Saturno Neri Venere 28 14
Impiegato Rossi Verdi Neri Sede Roma Milano Milano Impiegato Rossi Verdi Verdi Neri Neri Neri Progetto Marte Giove Venere Saturno Venere Marte 29 Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Neri Marte Milano 30 15
Conservazione delle dipendenze Una decomposizione conserva le dipendenze se ciascuna delle dipendenze funzionali dello schema originario coinvolge attributi che compaiono tutti insieme in uno degli schemi decomposti Progetto Sede non è conservata 31 Qualità delle decomposizioni Una decomposizione dovrebbe sempre garantire: BCNF l assenza di perdite, in modo da poter ricostruire le informazioni originarie la conservazione delle dipendenze, in modo da mantenere i vincoli di integrità originari DB ben progettato 32 16
Relazione BCNF? Proprietà: Ogni dirigente ha una sede; un progetto può essere diretto da più persone, ma in sedi diverse Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano 33 Verifica Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano Progetto Sede Dirigente Dirigente Sede ok no 34 17
Come decomporre? Progetto Sede Dirigente coinvolge tutti gli attributi e quindi nessuna decomposizione può preservare tale dipendenza Si può trovare una BCNF (vedi algoritmo), ma non preserva le dipendenze 35 Approccio differente: una nuova forma normale Una relazione r è in terza forma normale se, per ogni FD (non banale) X Y definita su r, è verificata almeno una delle seguenti condizioni: X contiene una chiave K di r ogni attributo in Y è contenuto in almeno una chiave di r 36 18
Non BCNF, ma 3NF Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano Progetto Sede Dirigente Dirigente Sede L attributo Sede è contenuto nella chiave 37 Anomalie? C è una ridondanza nella ripetizione della sede del dirigente per i vari progetti che dirige 38 19
Confronto 3NF è meno restrittiva di BCNF (e ammette relazioni con alcune anomalie e ridondanze) ha il vantaggio però di essere sempre raggiungibile, cioè si può sempre ottenere una decomposizione 3NF senza perdite e che conserva le dipendenze 39 Metodologia di decomposizione Si crea una relazione per ogni gruppo di attributi coinvolti in una dipendenza funzionale (e una per quelli che eventualmente non sono coinvolti in alcuna FD), purchè almeno una relazione contenga una chiave della relazione originaria (eventualmente si aggiungono attributi) 40 20
In generale Una volta effettuata la decomposizione in 3NF con la metodologia precedente si verifica se lo schema ottenuto è anche BCNF Se la relazione ha una sola chiave allora le due forme normali coincidono 41 Qualità delle decomposizioni (2) Una decomposizione dovrebbe sempre garantire: BCNF o 3NF l assenza di perdite, in modo da poter ricostruire le informazioni originarie la conservazione delle dipendenze, in modo da mantenere i vincoli di integrità originari 42 21
Schema non decomponibile in BCNF Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano Dirigente Sede Progetto Sede Dirigente 43 Possibile riorganizzazione Si aggiunge un attributo che partiziona le sedi in base ai responsabili Dirigente Progetto Sede Reparto Rossi Marte Roma 1 Verdi Giove Milano 1 Verdi Marte Milano 1 Neri Saturno Milano 2 Neri Venere Milano 2 Dirigente Sede Reparto Sede Reparto Dirigente Progetto Sede Reparto 44 22
BCNF Dirigente Sede Reparto Rossi Roma 1 Verdi Milano 1 Neri Milano 2 Progetto Sede Reparto Marte Roma 1 Giove Milano 1 Marte Milano 1 Saturno Milano 2 Venere Milano 2 45 Quando una BCNF non è raggiungibile spesso è questione di cattiva progettazione 46 23
Progettazione e normalizzazione la teoria della normalizzazione può essere usata nella progettazione logica per verificare lo schema relazionale finale si può usare anche durante la progettazione concettuale per verificare la qualità dello schema concettuale 47 Nome fornitore Indirizzo Partita IVA Codice Prodotto Nome prodotto Prezzo PartitaIVA NomeFornitore Indirizzo 48 24
Analisi dell entità L entità viola la terza forma normale a causa della dipendenza: PartitaIVA NomeFornitore Indirizzo Possiamo decomporre sulla base di questa dipendenza 49 Nome prodotto Codice Partita IVA Nome fornitore Prodotto (1,1) (0,N) Fornitura Fornitore Prezzo Indirizzo 50 25
Professore Dipartimento (0,N) (0,N) (0,1) Tesi Studente (0,N) Corso di laurea Studente Corso di laurea Studente Professore Professore Dipartimento 51 Analisi della relationship La relationship viola la terza forma normale a causa della dipendenza: Professore Dipartimento Possiamo decomporre sulla base di questa dipendenza 52 26
Afferenza (0,N) Dipartimento (1,1) Professore (0,N) (0,1) Tesi Studente (0,N) Corso di laurea 53 Ulteriore analisi sulla base delle dipendenze La relationship Tesi è in BCNF sulla base delle dipendenze Studente CorsoDiLaurea Studente Professore le due proprietà sono indipendenti, questo suggerisce una ulteriore decomposizione 54 27
Professore (1,1) Afferenza (0,N) Dipartimento (0,N) (0,1) Tesi (0,N) Corso di laurea Studente (1,1) Iscrizione (0,N) Corso di laurea 55 56 28
57 Risposta A 58 29
Domanda A La decomposizione sulla base delle FD è senza perdite? 59 Risposta A (Matricola CorsoLaurea) e (Corso CorsoLaurea Id_Professore) hanno come intersezione l attributo CorsoLaurea che non contiene la chiave di nessuna delle due relazioni (Corso CorsoLaurea Id_Professore) e (Id_Professore Dipartimento) hanno come intersezione l attributo Id_Professore che è la chiave della seconda relazione Tuttavia la condizione è solo sufficiente, quindi proviamo ad eseguire il join 60 30
61 Risposta B 62 31
Risposta C 63 Risposta D 64 32