Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Documenti analoghi
Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Tecniche di normalizzazione

Perché questi fenomeni indesiderabili?

Basi di dati. La normalizzazione

Forme normali. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill. La normalizzazione. Normalizzazione. Una relazione con anomalie.

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, La normalizzazione

Forme normali. Le forme normali sono di solito definite sul modello relazionale, ma hanno senso in altri contesti, ad esempio il modello E-R

Decomposizione senza perdita

Tornando all esempio..

Normalizzazione di Basi di Dati

LA NORMALIZZAZIONE. Seconda parte

LA NORMALIZZAZIONE. Prima parte

Atzeni, Ceri, Paraboschi, Torlone Basi di dati. La normalizzazione. Concetti che descriveremo

Corso di Basi di Dati

Corso di Basi di Dati A.A. 2013/2014

2. Complementi di metodologia di progettazione. 2. Complementi di metodologia di progettazione. Fasi della progettazione. COSA concettuale COME

Normalizzazione (cenni)

Una relazione con anomalie

Normalizzazione. Definizione

La normalizzazione. CdL Informatica Applicata UNIURB - Dott. Maurizio Maffi

Forme normali. Prima forma normale (1NF) Seconda forma normale(2nf) Relazione non in 1NF

Forme normali 1NF,2NF,3NF,BCNF

Basi di Dati e Sistemi Informativi. Raffinamento dello schema e Normalizzazione nei database relazionali

Normalizzazione. Relazionali

Normalizzazione. Le forme normali. La normalizzazione. Applicazione forme normali

TEORIA RELAZIONALE: INTRODUZIONE

Progettazione di basi di dati D B M G

D B M G D B M G 2. Progettazione di basi di dati. Normalizzazione

b) Costruire direttamente le relazioni e poi correggere quelle che presentano anomalie

Normalizzazione Progettazione di basi di dati Normalizzazione Normalizzazione Normalizzazione e modello ER Esempio Esame Superato

La in verifica forma teoria normale della normalizzazione fornisce comunque uno strumento di già

Progettazione di basi di dati

LA NORMALIZZAZIONE. Dr. C. d'amat

Fondamenti di Teoria delle Basi di Dati

Elementi di Normalizzazione

Normalizzazione di Basi di Dati. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto San Giovanni

Normalizzazione. Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica

La normalizzazione delle basi di dati

Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone. Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 6

Traduzione. Associazioni n-arie

IL PROGETTO DI UNA BASE DI DATI RELAZIONALE. Università(Matr,Nome,Città,Prov,C#,Titolo,Docente, C_laurea,Data,Voto)

NORMALIZZAZIONE DI SCHEMI RELAZIONALI

PROGETTAZIONE DI DATABASE

4. Forma normale di Boyce-Codd

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Soluzione proposta dal Prof. Rio Chierego dell ISIS Guido Tassinari di Pozzuoli

Corso di Basi di Dati

È fatta male? Perché? Come si può correggere?

Forme normali e normalizzazione

Normalizzazione di schemi relazionali

Teoria della Progettazione delle Basi di Dati Relazionali

Capitolo 9. Esercizio 9.1. Esercizio 9.2

Basi di Dati - VII. Schemi relazionali e anomalie. Teoria Relazionale: Introduzione. Teoria Relazionale: Introduzione

Progettazione logica: normalizzazione di schemi relazionali

Normalizzazione di schemi relazionali

BD, Seconda prova di verifica, del 20/12/2013

Attributi e domini. per brevità scriviamo: A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Corso di Informatica. Prerequisiti. Modulo T2 D2.2 - La normalizzazione 2. Elementi di algebra relazionale Requisiti di una base di dati

Normalizzazione Delle Relazioni

Vincoli di integrità Normalizzazione

PIL Percorsi di Inserimento Lavorativo

Progettazione logica: normalizzazione di schemi relazionali

b) Costruire direttamente le relazioni e poi correggere quelle che presentano anomalie

Basi di Dati. Progettazione di Basi di Dati: Introduzione. Sommario. Il Processo di Sviluppo dell Applicazione

NORMALIZZAZIONE. Fino ad ora. Dipendenze funzionali e Normalizzazione per basi di dati relazionali

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino

Progettare Basi di Dati

Normalizzazione di schemi relazionali

ESERCIZI NORMALIZZAZIONE

BASE DI DATI. collezione di dati, utilizzati per rappresentare le. (accezione specifica) collezione di dati gestita da un DBMS. (accezione generica)

Unità 3. Modello Relazionale

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

Modulo 2 Data Base 3

Esercizio 9.1. Figura 9.20 Relazione per l esercizio 9.1. Soluzione:

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Esercizi sulla normalizzazione (vedi anche note)

Normalizzazione. Relazionali

FORME NORMALI E NORMALIZZAZIONE

È fatta male? Perché? Come si può correggere?

Il modello Relazionale.

MODULO Il sistema azienda. Sistema Informativo e Informatico Requisiti dei dati

Corso sulla Normalizzazione. Prime 3 forme normali

Complementi di Basi di dati Esame del 20 aprile 2007 Tempo a disposizione: 2 ore (libri chiusi)

ELEMENTI DI LOGICA MATEMATICA LEZIONE VII

Complementi ed Esercizi di Informatica Teorica II

Introduzione alla normalizzazione dei dati

Esercitazioni per il corso di Logica Matematica

Prova Scritta di Basi di Dati

Analisi Matematica per Informatici Esercitazione 1 a.a

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

Basi di dati e Relazioni

Modello Relazionale. Chiavi

Transcript:

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2013-2014 Docente: Gigliola Vaglini Docente di laboratorio: Francesco Pistolesi 1 Lezione 9 Dipendenze funzionali Relazioni 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 e anomalie 3 Normalizzazione La normalizzazione è la procedura che permette di portare schemi relazionali in forma normale La normalizzazione è utilizzata come tecnica di verifica dei risultati della progettazione, non costituisce una metodologia di progetto 4 2

Una relazione con anomalie 5 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) 6 3

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 si licenzia, dobbiamo cancellarlo in diverse ennuple anomalia di cancellazione Un nuovo impiegato senza progetto non può essere inserito anomalia di inserimento 7 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 8 4

Per studiare in maniera sistematica questi aspetti, è necessario utilizzare il concetto di dipendenza funzionale 9 13.1. Le dipendenze funzionali 10 5

Dipendenza funzionale Si considerino la relazione r su R(X) due sottoinsiemi non vuoti Y e Z di 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 e t 2 hanno gli stessi valori anche su Z ad ogni chiave K di R corrisponde una dipendenza funzionale in R da K verso tutti gli attributi della relazione 11 Notazione X Y Esempi: Impiegato Stipendio Progetto Bilancio Impiegato Progetto Funzione 12 6

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 13 Impiegato Stipendio Progetto Bilancio Impiegato Progetto Funzione 14 7

Alcune FD causano anomalie gli impiegati hanno un unico stipendio Impiegato Stipendio i progetti hanno un unico bilancio Progetto Bilancio Ma non tutte Impiegato Progetto Funzione Come mai? 15 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 16 8

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) 17 Ancora le FD Implicazione Sia F un insieme di dipendenze funzionali definite su R(Z) ; sia X Y una dipendenza funzionale definita su R(Z) ; si dice che F implica X Y ( F X Y ) se per ogni istanza r di R che verifica tutte le FD in F risulta verificata anche X Y si dice anche che X Y è implicata da F 18 9

FD (cont.) Chiusura Dato un insieme di dipendenze funzionali F definite su R(Z) ; definiamo come chiusura di F l insieme di tutte le dipendenze funzionali implicate da F F + = { X Y F X Y } 19 FD (cont.) Dato un insieme di dipendenze funzionali F definite su R(Z), un istanza r di R che soddisfa F, soddisfa anche tutte le dipendenze funzionali logicamente implicate da F 20 10

FD (cont.) Dato R(Z) ed un insieme F di FD, un insieme di attributi X appartenenti a Z si dice superchiave di R, se la dipendenza funzionale X Z è logicamente implicata da F, cioè se X Z è in F +. Se nessun sottoinsieme proprio di X è superchiave di R, allora X si dice chiave di R 21 Calcolo di F + La definizione di implicazione non è direttamente utilizzabile nella pratica, essa prevede, infatti, una quantificazione universale sulle istanze della base di dati ( per ogni istanza r. ), Armstrong (1974) ha fornito delle regole di inferenza che permettono di derivare effettivamente tutte le dipendenze funzionali che sono implicate da un dato insieme iniziale tali regole sono corrette e complete, cioè permettono di ottenere tutte e sole le dipendenze in F + 22 11

Regole di inferenza di Armstrong 1. Riflessività: Se Y X, allora X Y 2. Additività (o espansione): Se X Y, allora XZ YZ, per qualunque Z 3. Transitività: Se X Y e Y Z, allora X Z 23 Esempio di calcolo di F + Prendiamo le FD dell esempio i. Impiegato Stipendio ii. Progetto Bilancio iii. Impiegato Progetto Funzione E usiamo la regola 2 sulle dipendenze i e ii, otteniamo iv. Impiegato Progetto Stipendio Progetto v. Progetto Impiegato Bilancio Impiegato Di conseguenza Impiegato Progetto Stipendio Progetto Impiegato Bilancio Funzione e quindi Impiegato Progetto è chiave Ci sono altre FD in F +? 24 12

Proprietà delle regole di Armstrong Teorema (correttezza): Le regole di inferenza di Armstrong sono corrette, cioè, applicandole ad un insieme F di dipendenze funzionali, si ottengono solo dipendenze funzionali logicamente implicate da F. Teorema (completezza): Le regole di inferenza di Armstrong sono complete, cioè, applicandole ad un insieme F di dipendenze funzionali, si ottengono tutte le dipendenze funzionali logicamente implicate da F. Teorema (minimalità): Le regole di inferenza di Armstrong sono minimali, cioè ignorando anche una sola di esse, l insieme di regole che rimangono non è più completo. 25 Esempi di prove DIMOSTRARE che, istanza di ogni relazione, X Y X Z Y Z Supponiamo per assurdo che esista una istanza r di R in cui valga X Y ma non X Z Y Z, devono perciò esistere due tuple t1 e t2 di r tali che : (1) t1[x] = t2[x], (2) t1[y] = t2[y], (3) t1[xz] = t2[xz], (4) t1[yz] t2[yz] ma ciò è assurdo, poichè da (1) e (3) si deduce: (5) t1[z] = t2[z], e da (2) e (5) si deduce : (6) t1[yz] = t2[yz], in contraddizione con la (4) 26 13

(cont.) DIMOSTRARE che X Y e Y Z X Z Supponiamo per assurdo che esista una istanza r di R in cui valgano X Y e Y Z, ma non X Z, devono perciò esistere due tuple t1 e t2 in r tali che : (1) t1[x] = t2[x], (2) t1[y] = t2[y], (3) t1[z] = t2[z], (4) t1[z] t2[z] ma ciò è assurdo 27 Regole derivate di Armstrong 4. Regola di unione {X Y, X Z} X YZ 5. Regola di pseudotransitività (o aggiunta sinistra) {X Y, WY Z} XW Z 6. Regola di decomposizione Se Z Y, X Y X Z 28 14

Esempi di prove DIMOSTRARE che X Y e X Z X Y Z Per ipotesi valgono a) X Y b) X Z applicando la regola 2 ad (a) otteniamo c) X Z Y Z applicando la stessa regola a (b) otteniamo X X X Z, che equivale a d) X X Z per la regola 3 applicata a (d) e (c) otteniamo X Y Z 29 Equivalenza Dato un insieme di dipendenze funzionali F è molto utile poter determinare un insieme di dipendenze funzionali G che sia equivalente ad F, ma sia anche strutturalmente più semplice F e G sono equivalenti se F + = G +, ovvero, per ogni X Y F, deve essere X Y G + e, viceversa, per ogni X Y G, deve essere X Y F + 30 15

Esempio 1 F = { A C, AC D, E AD, E H } G = { A CD, E AH } Verificare se F e G sono equivalenti Dimostro che le DF in F sono derivabili dalle DF in G, e viceversa A CD A C, A D A CD AC CCD AC CD AC C, AC D E AH E A, E H E A, A D E D E A, E D E AD 31 (cont.) A C, AC D AA D A D A C, A D A CD E AD E A, E D E A, E H E AH 32 16

Ovvero Il calcolo di F + è molto costoso (esponenziale nel numero di attributi dello schema nel caso peggiore), E spesso quello che ci interessa è solo verificare se F + contiene una certa dipendenza, si cerca un altra strada: si può calcolare e utilizzare la chiusura transitiva di un insieme di attributi X (meno costoso?), poiché si può dimostrare che X Y è in F + se e solo se Y X + Quindi la domanda diventa Se F è un insieme di FD su R(Z) e X Z un insieme di attributi, quali attributi di Z dipendono funzionalmente da X? 33 Algoritmo per il calcolo di X + Denotiamo con X + l insieme degli attributi di R(Z) che dipendono da X (chiusura di X) in F; calcolare X + è semplice (complessità?) CalcolaChiusura(X,F)= X + = X; Ripeti: Fine = true; Per tutte le FD in F = {V i W i }: Se V i X + e W i X + allora: {X + = X + Wi; Fine = false} Fino a che Fine = true o X + = Z 34 17

Esempio 2 Supponiamo di avere F = {A B, BC D, B E, E C} e calcoliamo A+, ovvero l insieme di attributi che dipendono da A A+ = A A+ = AB poiché A B e A A+ A+ = ABE poiché B E e B A+ A+ = ABEC poiché E C e E A+ A+ = ABECD poiché BC D e BC A+ Quindi da A dipendono tutti gli attributi dello schema, ovvero A è superchiave (e anche chiave)! 35 Esempio 1 (cont) F = { A C, AC D, E AD, E H } G = { A CD, E AH } Verificare se F e G sono equivalenti Verifico se X Y in F è implicata dalle df in G; ossia se X Y è in G + ; ossia se Y (X) + G ( chiusura di X rispetto a G ), e viceversa per ogni df in G per A C risulta (A) + G = ACD ; o.k. C (A) + G per AC D risulta (AC) + G = ACD ; o.k. D (AC) + G per E AD risulta (E) + G = EADCH ; o.k. AD (E) + G per E H risulta (E) + G = EHADC ; o.k. H (E) + G 36 18

Importanza della chiusura di un insieme di attributi Consideriamo uno schema di relazione R(Z) con dipendenze funzionali F. La chiusura di un insieme X Z di attributi è fondamentale per diversi scopi: Si può utilizzare per verificare se una dipendenza funzionale è logicamente implicata da F X Y è in F + se e solo se Y X + Si può utilizzare per verificare se un insieme di attributi è superchiave o chiave X è superchiave di R se e solo se X Z è in F +, cioè se e solo se Z X + X è chiave di R se e solo se X Z è in F + e non esiste alcun sottoinsieme Y di X ottenuto da X eliminando un solo elemento, tale che Z Y + 37 Ancora equivalenza F e G sono equivalenti se F + = G +, ovvero, per ogni X Y F, deve essere X Y G + e viceversa, per ogni Z W G, deve essere Z W F + Invece di usare il metodo sopra si calcola X + rispetto a G e si verifica se Y X +, idem per W Z + rispetto a F 38 19

Copertura Minimale Alcuni attributi di una dipendenza funzionale possono essere ridondanti: ridondanza a DESTRA: { A B, B C, A CD } può essere semplificata in { A B, B C, A D } (FD semplici) ridondanza a SINISTRA: { A B, B C, AC D } può essere semplificata in { A B, B C, A D } (senza attributi estranei) Un insieme F di dipendenze funzionali può contenere dipendenze ridondanti, ovvero ottenibili tramite le dipendenze di F Esempio: A C è ridondante in {A B, B C, A C} Intuitivamente, una copertura minimale (canonica) di F è un insieme minimale di dipendenze funzionali equivalente a F e privo di dipendenze e attributi ridondanti 39 FD semplici Per minimizzare un insieme di FD è innanzitutto necessario scriverle tutte in una forma standard (forma canonica), in cui sulla destra c è sempre un singolo attributo Supponiamo di avere F = {AB CD, AC DE} Possiamo riscrivere F come F = {AB C, AB D, AC D, AC E} 40 20

Attributi estranei In alcune FD è possibile che sul lato sinistro ci siano degli attributi inutili ( estranei ): come si identificano? Supponiamo di avere F = {AB C, A B} e calcoliamo A + e B + A + = A B + =B A + = AB poiché A B e A A + A + = ABC poiché AB C e AB A + C dipende solo da A, e in AB C l attributo B è estraneo (a sua volta dipende da A) e possiamo riscrivere l insieme di FD più semplicemente come: F = {A C, A B } Quindi in una FD del tipo AX B l attributo A è estraneo se X + include B (ovvero X da solo determina B) 41 FD ridondanti Dopo avere eliminato gli attributi estranei si deve verificare se vi sono intere FD inutili ( ridondanti ), ovvero FD che sono implicate da altre Come facciamo a stabilire che una FD del tipo X A è ridondante? La eliminiamo da F, calcoliamo X + e verifichiamo se include A, ovvero se con le FD che restano riusciamo ancora a dimostrare che X determina A 42 21

Copertura Minimale Definizione Un insieme F di FD è minimale se 1. la parte destra di ogni FD in F è formata da un solo attributo 2. tutti gli attributi della parte sinistra di ogni FD in F sono necessari ( se si sostituisce una X A con Y A ove Y X l insieme delle FD risultante non è più equivalente ad F ) 3. tutte le DF in F sono necessarie, nessuna è ridondante ( non è possibile rimuovere una FD da F e avere un insieme equivalente a F ) Una copertura minimale di un insieme F è un insieme minimale equivalente a F ( può essere usato al posto di F ) N.B. In generale, la copertura minimale non è unica 43 Copertura Minimale - Algoritmo Calcolo di M minimale per un insieme di FD F : M = F ogni FD del tipo X { A1, A2,...., An } è sostituita da X A1, X A2,...., X An ogni FD X A in M, se, per ogni attributo B X, { { M { X A } } { (X { B } ) A } } M, è sostituita da (X { B } ) A A (X { B } ) + ogni rimanente X A in M, se { { F { X A } } M è rimossa A X + anche in { { F { X A } } 44 22

Esempio Sia F = {AB C, B A, C A}, A è estraneo in AB C, quindi trasformiamo F in F = {B C, B A, C A}, dopo possiamo eliminare B A trasformando F in F = {B C, C A} Se tentiamo di eliminare la FD ridondante prima di eliminare l attributo estraneo non ci riusciamo NB: questa operazione è bene che segua l eliminazione degli attributi estranei 45 Proiezione delle FD di R(U) su X U La proiezione di F su X, denotata da F X, è l insieme di dipendenze funzionali Z Y in F + che coinvolgono solo attributi in X, cioè tali che Z X e Y X 46 23

Algoritmo Per calcolare F X, cioè la proiezione di F su X, possiamo procedere per enumerazione (non si può fare meglio), evitando però di generare dipendenze funzionali inutili CalcolaProiezione(F,X):= { result = ; per ogni sottoinsieme proprio S di X, per ogni attributo A in X tale che A non è in S, e tale che non esiste alcun sottoinsieme S di S tale che S A è in result, if A è in CalcolaChiusura(S,F) allora result = result { S A }; } 47 Dimensione della proiezione di F su X Ci sono casi un cui la proiezione di F su X ha dimensione esponenziale rispetto alla dimensione di F e X, come mostrato dal seguente esempio Consideriamo R(A1,A2,,An,B1,B2,...,Bn,C1,C2,,Cn,D) e F = { Ai Ci, Bi Ci 1 i n } { C1C2 Cn D } La proiezione di F su { A1,A2,,An,B1,B2,...,Bn,D } è P = { X1X2...Xn D Xi = Ai oppure Xi = Bi per 1 i n }, la cui dimensione è ovviamente esponenziale rispetto alla dimensione dello schema R e delle dipendenze funzionali F. Si noti che si può dimostrare che nessun insieme equivalente a P ha cardinalità minore. 48 24

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) 49 BCNF: commenti Se R con FD F non è in BCNF allora in F c è almeno una dipendenza funzionale X Y che non è banale, e tale che X non è una superchiave di R. Chiamiamo una tale dipendenza funzionale un avversaria della BCNF Teorema (avversaria sconfitta): Data R, se in F non c è alcuna avversaria di BCNF, allora non c è alcuna avversaria nemmeno in F +. 50 25

BCNF: commenti Grazie al teorema dell avversaria sconfitta, è sufficiente analizzare una ad una le dipendenze funzionali in F (e non F + ), e per ognuna verificare se non è avversaria della BCNF, cioè se è banale o se è tale da avere una superchiave come membro sinistro Ciò implica che occorre saper verificare se un insieme di attributi è superchiave di una relazione K è superchiave di R(Z) se K Z F + con F insieme di dipendenze funzionali su R Ovvero Z K + 51 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 52 26

53 È sempre così facile? Impiegato Sede Progetto Sede 54 27

Decomponiamo sulla base delle dipendenze 55 Proviamo a ricostruire Diversa dalla relazione di partenza! 56 28

Decomposizione senza perdita Una istanza legale r di una relazione R si decompone senza perdita su X 1 e X 2 se il join naturale 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. 57 Algoritmo per la decomposizione in BCNF Assumiamo (senza perdita di generalità) che ogni volta che chiamiamo l algoritmo descritto sotto ogni dipendenza funzionale in F abbia un unico attributo come membro destro, e che U sia l insieme di tutti gli attributi di R Decomponi(R,F):= { if esiste un avversaria X A di BCNF in F then { sostituisci R con una relazione R1 con attributi U-A, ed una relazione R2 con attributi X A; Decomponi(R1,F U-A ); Decomponi(R2,F X A ) } } 58 29

Proprietà dell algoritmo Teorema (correttezza dell algoritmo della decomposizione) Qualunque sia l input, l esecuzione dell algoritmo su tale input termina, e produce una decomposizione della relazione originaria tale che: ogni relazione ottenuta è in BCNF la decomposizione è senza perdita nel join N.B. A seconda dell ordine con cui si considerano le dipendenze funzionali, il risultato della decomposizione può cambiare 59 Relazione R F= Impiegato Sede,Progetto Sede Decomponi(R,F):= R1(Impiegato, Sede), R2(Impiegato, Progetto) Decomponi(R,F):= R1(Impiegato, Progetto), R2(Progetto, Sede) 60 30

Consideriamo una di queste decomposizioni Impiegato Sede Progetto Sede 61 Osservazione La decomposizione è senza perdita sul join, però La FD Progetto Sede interessa attributi che non stanno nella stessa tabella. E un problema? 62 31

Problema Supponiamo di voler inserire una nuova ennupla che specifica la partecipazione dell'impiegato Neri, che opera a Milano, al progetto Marte Impiegato Sede Progetto Sede 63 64 32

65 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 66 33

Decomposizione senza perdita di dipendenze Sia R uno schema di relazione con dipendenze funzionali F, e sia X un sottoinsieme di attributi di R La decomposizione di R in due relazioni con attributi X e Y è una decomposizione senza perdita di dipendenze se (F X F Y ) è equivalente a F, cioè se (F X F Y ) + = F + N.B. Non è assicurato che la decomposizione ottenuta dall algoritmo per la decomposizione BCNF sia senza perdita di dipendenze 67 La verifica di decomposizione senza perdita di dipendenze La definizione di decomposizione senza perdita di dipendenze è basata sul verificare che (F X F Y ) + = F +. Per applicare la definizione, è necessario sapere calcolare se un insieme di dipendenze funzionali è equivalente ad un altro è necessario saper calcolare la proiezione di un insieme di dipendenze funzionali su un insieme di attributi 68 34

Per la verifica di equivalenza si può usare un metodo polinomiale e, per ogni X Y F, calcolare X + rispetto a G e verificare se Y X +, idem per X Y G e X + rispetto a F. Per calcolare la proiezione abbiamo invece un metodo esponenziale 69 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 70 35

Esempio La relazione R(A,B,C), con F = { A B, B C, A C } non è in BCNF (qual è la chiave?, qual è la dipendenza avversaria?). Se la decomponiamo in R1(A,B) con A B e R2(B,C) con B C, otteniamo due relazioni in BCNF, con la proprietà che la decomposizione è senza perdita nel join. La decomposizione è anche senza perdita di dipendenze, perchè la dipendenza funzionale A C è logicamente implicata dalle due dipendenze funzionali che valgono in R1 e R2. N.B. Se la definizione di conservazione delle dipendenze non considerasse (F X F Y ) + ma solo (F X F Y ), allora la decomposizione sembrerebbe perdere la dipendenza A C, che non è esprimibile direttamente né in R1 (cioè mediante F AB ) nè in R2 (cioè mediante F BC ). 71 Relazione BCNF? Proprietà: Ogni dirigente ha una sede; un progetto può essere diretto da più persone, ma in sedi diverse 72 36

Verifica Progetto Sede Dirigente Dirigente Sede ok no 73 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 74 37

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 è superchiave di r ogni attributo in Y è contenuto in almeno una chiave di r 75 Non BCNF, ma 3NF Progetto Sede Dirigente Dirigente Sede L attributo Sede è contenuto nella chiave 76 38

Anomalie? C è una ridondanza nella ripetizione della sede del dirigente per i vari progetti che dirige 77 Confronto 3NF è meno restrittiva di BCNF (e ammette relazioni con alcune anomalie e ridondanze) il problema di verificare se una relazione è in 3NF è NP-completo (il miglior algoritmo deterministico conosciuto ha complessità esponenziale nel caso peggiore), infatti: Dati R ed F e un attributo A si genera non deterministicamente un sottoinsieme S degli attributi di R che contiene A, si controlla se S è una chiave (non una superchiave) ha il vantaggio però di essere sempre raggiungibile, cioè si può sempre ottenere una decomposizione 3NF senza perdite e che conserva le dipendenze 78 39

Metodologia di decomposizione Dati R ed F minimale, si usa Decomponi(R,F) ottenendo gli schemi R 1 (X 1 ), R 2 (X 2 ),, R n (X n ) in BCFN ciascuno con dipendenze funzionali F X i Sia l insieme N di dipendenze funzionali in F che non sono preservate in R 1,R 2,,R n, cioè che non sono incluse nella chiusura dell unione dei vari F X i Per ogni dipendenza funzionale X A in N, aggiungiamo lo schema relazionale X A alla decomposizione, con le corrispondenti dipendenze funzionali 79 Altra metodologia Si deriva la copertura minimale G di F. Si raggruppano le dipendenze in G in sottoinsiemi tali che ad ogni sottoinsieme G i appartengono le dipendenze i cui membri sinistri hanno la stessa chiusura: i.e. X A e Y B appartengono a G i se X + =Y + secondo G. Si partizionano gli attributi U nei sottoinsiemi U i individuati dai sottoinsiemi G i del passo precedente. Se un sottoinsieme è contenuto in un altro si elimina. Si crea una relazione R i (U i ) per ciascun sottoinsieme Ui, con associate le dipendenze G i. Si aggiunge una relazione per gli attributi che non sono coinvolti in alcuna FD Se non c è già una relazione che contenga una chiave della relazione originaria, si aggiunge 80 40

Confronto La prima metodologia parte garantendo l assenza di perdita sul join e poi conserva le dipendenze La seconda conserva le dipendenze e poi risolve l eventuale perdita sul join 81 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 82 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 83 Schema non decomponibile in BCNF Dirigente Sede Progetto Sede Dirigente 84 42

Possibile riorganizzazione Si aggiunge un attributo che partiziona le sedi in base ai responsabili Dirigente Sede Reparto Sede Reparto Dirigente Progetto Sede Reparto 85 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 86 43

Quando una BCNF non è raggiungibile spesso è questione di cattiva progettazione 87 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 88 44

Nome fornitore Indirizzo Partita IVA Codice Prodotto Nome prodotto Prezzo PartitaIVA NomeFornitore Indirizzo 89 Analisi dell entità L entità viola la terza forma normale a causa della dipendenza: PartitaIVA NomeFornitore Indirizzo Possiamo decomporre sulla base di questa dipendenza 90 45

Nome prodotto Codice Partita IVA Nome fornitore Prodotto (1,1) (0,N) Fornitura Fornitore Prezzo Indirizzo 91 Professore Dipartimento (0,N) (0,N) (0,1) Tesi Studente (0,N) Corso di laurea Studente Corso di laurea Studente Professore Professore Dipartimento 92 46

Analisi della relationship La relationship viola la terza forma normale a causa della dipendenza: Professore Dipartimento Possiamo decomporre sulla base di questa dipendenza 93 Afferenza (0,N) Dipartimento (1,1) Professore (0,N) (0,1) Tesi Studente (0,N) Corso di laurea 94 47

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 95 (0,N) (0,1) Professore (1,1) Afferenza (0,N) Dipartimento Tesi (0,N) Corso di laurea Studente (1,1) Iscrizione (0,N) Corso di laurea 96 48