Upload
scevola-giordano
View
213
Download
0
Embed Size (px)
Citation preview
Normalizzazione
Le forme normali “certificano” che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti collaterali.
La normalizzazione è una procedura che permette di trasformare schemi non normalizzati in schemi che soddisfano una forma normale; è utilizzata come tecnica di verifica dei risultati della progettazione di una base di dati.
Non costituisce una metodologia di progettazione
Prima di definire le forme normali è necessario esaminare i diversi tipi di anomalia che si possono verificare a causa delle ridondanze.
Una relazione con anomalie
Impiegato Stipendio Progetto Bilancio Funzione
Rossi 20 Marte 2 tecnicoVerdi 35 Giove 15 progettistaVerdi 35 Venere 15 progettistaNeri 55 Venere 15 direttoreNeri 55 Giove 15 consulenteNeri 55 Marte 2 consulenteMori 48 Marte 2 direttoreMori 48 Venere 15 progettista
Bianchi 48 Venere 15 progettistaBianchi 48 Giove 15 direttore
AnomalieSe si utilizza una sola relazione per rappresentare concetti disomogenei o indipendenti si possono verificare tre tipi di anomalie, oltre ad avere ridondanza nello schema (un dato è ripetuto in tutte le tuple relative al concetto cui si riferisce):
• anomalia di aggiornamento: se il dato ridondante varia va modificato in tutte le tuple
• anomalia di cancellazione: se non ci sono informazioni relative ad un elemento della chiave si perdono anche tutte le altre informazioni, anche se disponibili, riguardo ad altri concetti non inclusi nella chiave (a meno di ammettere valori nulli nella chiave).
• anomalia di inserimento: non è possibile inserire informazioni su un concetto non incluso nella chiave se manca l’informazione su un elemento della chiave.
Anomalie
Quindi in presenza di ridondanze:
• alcuni dati possono essere ripetuti, senza aggiunta di informazioni significative
• gli aggiornamenti (concettualmente atomici) devono essere ripetuti per ogni occorrenza dei dati relativi.
• La cancellazione di una tupla perché non è più valido l’insieme di concetti nel suo complesso può comportare l’eliminazione di tutti i concetti, anche quelli che restano validi
• Non è possibile inserire un solo concetto per una relazione se non esiste un intero insieme di concetti
Perché questi fenomeni indesiderabili?
• abbiamo usato 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
Dipendenze funzionali
Sono vincoli di integrità di tipo funzionale fra gli attributi di una relazione.
Formalmente: data una relazione r su uno schema R(X) e due sottoinsiemi non vuoti Z e Y di X, esiste per r una dipendenza funzionale tra Y e Z se per ogni coppia di tuple t1 e t2 di r aventi gli stessi valori su Y, t1 e t2 hanno anche gli stessi valori su Z.
Si indica con Y Z (es. Impiegato Stipendio)
Y Z è non banale se nessun attributo in Z appartiene a Y
Es. Impiegato Progetto Progetto è banale
Se K è una chiave esiste una dipendenza funzionale da K di tutti gli altri attributi. Il vincolo di dipendenza funzionale generalizza il vincolo di chiave.
Y -> Z su R(X) degenera nel vincolo di chiave se Y U Z = X
• gli impiegati hanno un unico stipendio
Impiegato Stipendio• i progetti hanno un unico bilancio
Progetto Bilancio• In ciascun progetto, un impiegato svolge una sola funzione
Impiegato Progetto Funzione
Le prime due dipendenze funzionali causano anomalie, la terza no.
Tornando all’esempio…..
Impiegato Stipendio Progetto Bilancio Funzione
Rossi 20 Marte 2 tecnicoVerdi 35 Giove 15 progettistaVerdi 35 Venere 15 progettistaNeri 55 Venere 15 direttoreNeri 55 Giove 15 consulenteNeri 55 Marte 2 consulenteMori 48 Marte 2 direttoreMori 48 Venere 15 progettista
Bianchi 48 Venere 15 progettistaBianchi 48 Giove 15 direttore
Impiegato StipendioProgetto Bilancio
Impiegato Progetto Funzione
Dipendenze funzionali e anomalie
• La parte sinistra della terza dipendenza funzionale corrisponde ad una chiave e non causa anomalie
• Le prime due non corrispondono a chiavi e causano anomalie• La relazione contiene alcune informazioni legate alla chiave e altre
ad attributi che non formano una chiave
• Impiegato Progetto è chiave• Impiegato solo no• Progetto solo no• Le anomalie sono causate dalla presenza di concetti eterogenei:
– proprietà degli impiegati (lo stipendio)– proprietà di progetti (il bilancio)– proprietà della chiave Impiegato Progetto
Forma normale di Boyce e Codd
Le dipendenze funzionali X -> Y in cui X sia una superchiave NON possono creare anomalie o ridondanze, in quanto X di per sé implica l’unicità di ogni tupla definita su tale insieme.
Se X non è superchiave ciò può non accadere.
Una relazione r si definisce in forma normale di Boyce e Codd se per ogni dipendenza funzionale X->Y definita su di essa, X contiene una chiave K di r, cioè X è superchiave di r.
La forma normale di Boyce e Codd richiede che i concetti in una relazione siano omogenei (solo proprietà direttamente associate alla chiave)
Decomposizione in forma normale
In generale, se una relazione non è in forma normale, è possibile portarla in forma normale producendo tante relazioni quante sono le dipendenze funzionali.
Questo è possibile in molti casi in modo diretto e naturale se le dipendenze sono indipendenti (es. su insiemi disgiunti di attributi).
In altri casi la cosa può essere più complicata.
Impiegato Stipendio Progetto Bilancio Funzione
Rossi 20 Marte 2 tecnicoVerdi 35 Giove 15 progettistaVerdi 35 Venere 15 progettistaNeri 55 Venere 15 direttoreNeri 55 Giove 15 consulenteNeri 55 Marte 2 consulenteMori 48 Marte 2 direttoreMori 48 Venere 15 progettista
Bianchi 48 Venere 15 progettistaBianchi 48 Giove 15 direttore
Impiegato StipendioRossi 20Verdi 35Neri 55Mori 48
Bianchi 48
Impiegato Progetto Funzione Rossi Marte tecnico Verdi Giove progettista Verdi Venere progettista Neri Venere direttore Neri Giove consulente Neri Marte consulente Mori Marte direttore Mori Venere progettista
Bianchi Venere progettista Bianchi Giove direttore
Progetto BilancioMarte 2Giove 15Venere 15
Decomposizione in forma normale
In generale, la progettazione concettuale fatta mediante il modello E-R tende a garantire che lo schema rappresenti in modo separato le entità fondamentali e le rispettive associazioni.
Quindi se la progettazione concettuale è stata fatta in modo corretto, la base di dati risultante dalla sua traduzione dovrebbe essere in forma normale.
Una buona decomposizione deve soddisfare le proprietà di essere senza perdita e di conservare le dipendenze.
Non sempre così facileImpiegato Progetto Sede
Rossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere Milano
Impiegato SedeProgetto Sede
Decomponendo in base alle dipendenze:
Impiegato SedeRossi RomaVerdi MilanoNeri Milano
Progetto SedeMarte RomaGiove Milano
Saturno MilanoVenere Milano
Ricomposizione della tabella
Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere MilanoVerdi Saturno MilanoNeri Giove Milano
La relazione ottenuta è diversa dalla relazione di partenza
Impiegato SedeRossi RomaVerdi MilanoNeri Milano
Progetto SedeMarte RomaGiove Milano
Saturno MilanoVenere Milano
Decomposizione senza perdita
Data una relazione r su X, se X1 e X2 sono due sottoinsiemi di X la cui unione è X stesso, allora il join delle due relazioni ottenute per proiezione di r su X1 e X2 è una relazione che contiene tutte le tuple di r più eventualmente alcune altre che si possono definire “spurie”.
La decomposizione di r su X1 e X2 è senza perdita se il join delle due proiezioni è uguale ad r stessa, cioè non contiene tuple spurie.
Se si deve fare una decomposizione ai fini della normalizzazione,è essenziale che sia senza perdita.
Sia r una relazione su X e X1 e X2 tali che X1 U X2 = X e
X0 = X1 X2 . Se r soddisfa la dipendenza funzionale X0->X1
oppure X0 -> X2 allora la decomposizione è senza perdita.
Cioè la decomposizione è senza perdita se gli attributi comuni sono superchiave per una delle relazioni decomposte.
Conservazione delle dipendenze
La decomposizione in più relazioni può creare casi in cui un inserimento di dati illecito per la relazione originaria (per la violazione di una dipendenza funzionale) possa non essere rilevato nel caso della relazione decomposta.
Una proprietà fondamentale delle decomposizioni deve essere quella di conservare le dipendenze.
Questo può essere garantito se ciascuna delle dipendenze funzionali dello schema originario coinvolge attributi che compaiono tutti insieme in uno degli schemi decomposti.
Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere Milano
Impiegato ProgettoRossi MarteVerdi GioveVerdi VenereNeri SaturnoNeri Venere
Impiegato SedeRossi RomaVerdi MilanoNeri Milano
Impiegato SedeProgetto Sede
Supponiamo di voler inserire una nuova tupla che specifica la partecipazione dell'impiegato Neri, che opera a Milano, al progetto Marte
Conservazione delle dipendenze
Impiegato ProgettoRossi MarteVerdi GioveVerdi VenereNeri SaturnoNeri Venere
Impiegato SedeRossi RomaVerdi MilanoNeri Milano
Neri MarteNeri Milano
Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere MilanoNeri Marte Milano
Conservazione delle dipendenze
Progetto Sede non è conservata
Qualità di una decomposizione
Quindi, una decomposizione deve soddisfare le proprietà di decomposizione senza perdita e di conservazione delle dipendenze.
• La decomposizione senza perdita garantisce che le informazioni nella relazione originaria siano ricostruibili con precisione a partire da quelle decomposte. In questo caso la stessa interrogazione dà gli stessi risultati sulla relazione originaria e su quelle decomposte.
• La conservazione delle dipendenze garantisce che, nelle relazioni decomposte, i vincoli di integrità di quelle originarie siano ancora validi. Ogni aggiornamento (non) valido su quella originaria corrisponde a un aggiornamento (non) valido su quelle decomposte. Queste ultime possono accettare anche aggiornamenti leciti impossibili su quella originaria, a causa delle anomalie rimosse con la decomposizione.
Una relazione non-normalizzata
Dirigente Progetto Sede
Rossi Marte RomaVerdi Giove MilanoVerdi Marte MilanoNeri Saturno MilanoNeri Venere Milano
Progetto Sede DirigenteDirigente Sede
La decomposizione è problematica
Progetto Sede Dirigente coinvolge tutti gli attributi e quindi nessuna
decomposizione può preservare tale dipendenza
Quindi in alcuni casi la forma normale di Boyce & Codd “non è
raggiungibile”
Terza forma normale
Esistono schemi che violano la forma normale di Boyce e Codd che non sono decomponibili ai fini della normalizzazione.
Es. se è presente una dipendenza funzionale in cui un membro sinistro non è superchiave o se una dipendenza funzionale coinvolge già tutti gli attributi e quindi non è decomponibile conservando le dipendenze.
In questi casi si ammette una condizione meno restrittiva, che a sua volta non ammette ridondanze o anomalie pur ammettendo situazioni come quelle viste sopra.
Tale condizione si chiama terza forma normale.
Terza forma normale
Si dice che una relazione r è in terza forma normale se, per ogni dipendenza funzionale X -> Y definita su di essa è verificata almeno una delle seguenti condizioni:
• X contiene una chiave K di r
• ogni attributo in Y è contenuto in almeno una chiave di r
La terza forma normale è meno forte della forma normale di Boyce e Codd ma è sempre ottenibile.
Uno schema non decomponibile in BCNF
Dirigente Progetto Sede
Rossi Marte RomaVerdi Giove MilanoVerdi Marte MilanoNeri Saturno MilanoNeri Venere Milano
Dirigente SedeProgetto Sede Dirigente
Una possibile riorganizzazione
Dirigente Progetto Sede Reparto
Rossi Marte Roma 1Verdi Giove Milano 1Verdi Marte Milano 1Neri Saturno Milano 2Neri Venere Milano 2
Dirigente Sede RepartoSede Reparto DirigenteProgetto Sede Reparto
Decomposizione in BCNF
Progetto Sede Reparto
Marte Roma 1Giove Milano 1Marte Milano 1
Saturno Milano 2Venere Milano 2
Dirigente Sede Reparto
Rossi Roma 1Verdi Milano 1Neri Milano 2
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
Prodotto
Nome prodotto
Prezzo
Nome fornitore
Indirizzo
PartitaIVA
Codice
PartitaIVA NomeFornitore Indirizzo
Analisi dell’entità
– L’entità viola la terza forma normale a causa della dipendenza:
PartitaIVA NomeFornitore Indirizzo
– Possiamo decomporre sulla base di questa dipendenza
Indirizzo
PartitaIVA
Nomefornitore
Nomeprodotto
Prezzo
Codice
FornituraProdotto Fornitore
(1,1) (0,N)
Professore Studente
Corso dilaurea
Tesi
(0,N) (0,1)
(0,N)
Dipartimento
(0,N)
Studente Corso di laureaStudente Professore
Professore Dipartimento
Analisi della relationship
• La relationship viola la terza forma normale a causa della
dipendenza:
Professore Dipartimento
• Possiamo decomporre sulla base di questa dipendenza
Professore Studente
Corso dilaurea
Tesi
(0,N) (0,1)
(0,N)
DipartimentoAfferenza
(1,1)
(0,N)
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
Professore StudenteTesi
(0,N) (0,1)
Dipartimento
Afferenza
(0,N)
(1,1)
Corso dilaurea
(0,N)
Corso dilaurea
Iscrizione
(0,N)
(1,1)