Sistemi Informativi: Forme Normali e Dipendenze FORME NORMALI E DIPENDENZE La teoria della normalizzazione e delle dipendenze ha come scopo principale quello di fornire gli strumenti teorici e pratici per progettare dei buoni schemi relazionali, ovvero: come combinare insieme degli attributi in uno schema; come combinare insieme piu schemi per formare uno schema del DB. Uno dei principali obiettivi che ci si propone è evitare i problemi legati all aggiornamento dei dati: Anomalie di modifica Anomalie di inserimento Anomalie di cancellazione e alla presenza di informazioni ridondanti.
Sistemi Informativi: Forme Normali e Dipendenze m Articolo Magazzino Quantità Indirizzo scarpe VR 1 25,000 v. Albere 17, Verona pantaloni VR 1 15,000 v. Albere 17, Verona scarpe BO 5,200 v. Agucchi 3, Bologna camicie VR 2 35,000 v. del Lavoro 4, Verona.... 1. Se un magazzino cambia indirizzo occorre modificare tutte le tuple relative a quel magazzino. 2. Se si inserisce un nuovo articolo in un magazzino occorre replicare l indirizzo del magazzino. 3. Non si può inserire l informazione relativa alla sede di un magazzino se non vi è almeno un articolo. 4. Se un magazzino si svuota, si perde l informazione sulla sua sede.
a su fa M Qg a = π AMQ (m) i su fm Ig i = π MI (m) Sistemi Informativi: Forme Normali e Dipendenze Soluzione: La relazione originaria si può ricostruire con un join: m su fa M Q Ig m = a 1 i
Sistemi Informativi: Forme Normali e Dipendenze i Imp cod Rep cod Nome imp Capo rep 1 1 Rossi Bianchi 2 1 Menconi Bianchi 3 2 Dell Amico Marchi.... 1. Se viene cambiato il capo di un reparto occorre modificare le tuple di tutti gli impiegati di quel reparto. 2. Se si inserisce un nuovo impiegato in un reparto già esistente occorre replicare il nome del capo. 3. Se si elimina l ultimo impiegato di un reparto, si perde l informazione sul capo.
r su fi R Ng r = π IRN (i) c su fr Cg c = π RC (i) Sistemi Informativi: Forme Normali e Dipendenze i si decompone in: i si riottiene con un join: i su fi R N Cg i = r 1 c
8t 1 t 2 2 r : t 1 [X ]=t 2 [X ] ) t 1 = t 2 : Sistemi Informativi: Forme Normali e Dipendenze Superchiavi e Chiavi Definizione 1 (Superchiave) Dato uno schema R e un insieme di attributi X R, X è una superchiave di R se e solo se, per ogni relazione legale r dello schema si ha: Definizione 2 (Chiave) Dato uno schema R e un insieme di attributi X R, X è una chiave di R se e solo se, per ogni relazione legale r dello schema si ha: 1. X è superchiave 2. @Y : Y X tale che Y sia superchiave. Esempio 1 Dato lo schema fimp cod Rep cod Nome imp Capo repg Imp cod è chiave (e quindi superchiave), fimp cod Rep codg è superchiave (ma non chiave).
Sistemi Informativi: Forme Normali e Dipendenze Osservazione 1 Il concetto di chiave è semantico: non si può dire che un insieme di attributi X è una chiave solo perchè le condizioni 1 e 2 sono soddisfatte in una specifica relazione. Dire che X è una chiave equivale ad imporre un vincolo sulle possibili relazioni dello schema: non possono esistere due tuple con lo stesso valore della chiave. Solo le relazioni che soddisfano questo vincolo sono dette legali. Spesso si parla di chiavi candidate in luogo di chiavi, per mettere in evidenza che, per motivi di collegamento tra gli schemi e di implementazione, occorre privilegiarne una, che viene detta chiave primaria.
8t 1 t 2 2 r : t 1 [X ]=t 2 [X ] ) t 1 [Y ]=t 2 [Y ] Sistemi Informativi: Forme Normali e Dipendenze Dipendenze Funzionali Le dipendenze funzionali (FD) sono state introdotte da Codd (1970) per poter caratterizzare i motivi che portano ad avere ridondanza ed anomalie di aggiornamento. Definizione 3 (Dipendenza funzionale) Dato uno schema S e due insiemi di attributi X Y S non necessariamente disgiunti, X determina funzionalmente Y, scritto X! Y,se e solo se le relazioni legali dello schema sono solo quelle per cui si ha: Esempio 2 Dato lo schema fimp cod Rep cod Nome imp Capo repg, si ha: Imp! cod Rep cod Imp! cod Nome imp Rep! cod Capo rep Teorema 1 Xè una superchiave di S se e solo se X! S.
Sistemi Informativi: Forme Normali e Dipendenze Osservazione 2 Se Y X allora si ha sicuramente X! Y (FD banali) Le forme normali definiscono particolari proprietà dello schema con riferimento alle FD su di esso definite. Fanno uso del concetto di attributo primo. Definizione 4 (Attributo primo) Un attributo A dello schema R è primo se e solo se fa parte di almeno una chiave di R. In caso contrario A è detto non-primo.
Sistemi Informativi: Forme Normali e Dipendenze 1 Seconda Forma Normale (2NF) La 2NF è rivolta ad eliminare le anomalie che si generano quando qualche attributo non-primo dipende funzionalmente solo da una parte di una chiave (dipendenza non completa o parziale). Esempio 3 Dato lo schema fa M Q Ig ( MAGAZZINI ), la dipendenza funzionale di I da AM non è completa, perchèsiham! I. Definizione 5 (Seconda forma normale) Uno schema R è in 2NF se ognuno dei suoi attributi non-primi è completamente dipendente da ognuna delle chiavi. Esempio 4 Lo schema fa M Q Ig non èin2nf.glischemifa M Qg fm Ig sono in 2NF.
Sistemi Informativi: Forme Normali e Dipendenze 1 Il riferimento ai soli attributi non-primi è essenziale. Esempio 5 Nello schema Stradario fvia Comune CAPg si ha: è chiave fvia CAPg! CAP Comune Tuttavia, fvia Comuneg è chiave, quindi Comune è primo. Dunque lo schema èin 2NF. Se le chiavi sono tutte composte da un solo attributo, allora lo schema è sicuramente in 2NF.
Rep cod! Capo rep: X! Y A 62 Y: Sistemi Informativi: Forme Normali e Dipendenze 1 Terza Forma Normale (3NF) Nello schema Impiegati fimp cod Rep cod Nome repg imp Capo si ha: Imp! cod Rep cod Imp! cod Nome imp Imp! cod Capo rep Lo schema èin2nf(lachiaveè Imp cod), ma vi sono ancora anomalie, dovute alle dipendenze transitive. Definizione 6 (Dipendenza transitiva) Dato lo schema S e X S, A 2 S, A è transitivamente dipendente da X se esiste Y S tale che: 6! Y X! Y A
fimp cod Rep cod Nome impg frep cod Capo repg Sistemi Informativi: Forme Normali e Dipendenze 1 Esempio 6 Nello schema fimp cod Rep cod Nome imp Capo repg, le condizioni della definizione sono verificate sostituendo Imp cod a X, Rep cod a Y, Capo rep a A. Dunque Capo rep dipende transitivamente da Imp cod. Definizione 7 (Terza forma normale) UnoschemaRè in 3NF se e solo se ognuno dei suoi attributi non-primi non dipende transitivamente da nessuna delle chiavi. Esempio 7 Gli schemi: sono in 3NF.
Sistemi Informativi: Forme Normali e Dipendenze 1 Osservazione 3 Benchè gli schemi in 3NF non siano esenti da problemi, tale livello di normalizzazione è spesso accettato come soddisfacente in pratica. Teorema 2 Se uno schema è in 3NF, allora è anche in 2NF. Dimostrazione: (Per assurdo.) Sia R in 3NF ma non in 2NF. Allora esistono X, Y e A in R, con X chiave, Y X e A non-primo non appartenente a Y,talicheY! A. Poichè X! Y (FD banale) e Y 6! X (altrimenti X non sarebbe chiave) si deriva che A è transitivamente dipendente da X, contraddicendo l ipotesi che lo schema fosse in 3NF. 2 Osservazione 4 Dato uno schema R e un insieme F di FD su R, stabilire se lo schema èin 3NF è un problema molto probabilmente non risolubile in tempo polinomiale, al pari di quello di stabilire se un attributo èprimo.
Sistemi Informativi: Forme Normali e Dipendenze 1 ALGORITMI DI NORMALIZZAZIONE Tutti gli algoritmi di normalizzazione mirano a produrre degli schemi che soddisfino certe proprietà (forme normali), operando una decomposizione degli attributi e delle relative dipendenze. Oltre al desiderato livello di normalizzazione, vi sono altri due requisiti che una decomposizione dovrebbe soddisfare: Preservare i dati. Una decomposizione che preserva i dati, detta anche senza perdita, garantisce che la relazione originaria è ottenibile attraverso join naturale delle relazioni ottenute dalla decomposizione Preservare le dipendenze. Una decomposizione che preserva le dipendenze garantisce che l unione delle dipendenze degli schemi ottenuti dalla decomposizione è equivalente all insieme di dipendenze definite sullo schema originario.
r = π R1 (r) 1 π R2 (r): Sistemi Informativi: Forme Normali e Dipendenze 1 Definizione 8 (Decomposizione senza perdita) Dato uno schema R consideriamo una sua decomposizione ρ = fr 1 R 2 g tale che R = R 1 [ R 2. Diciamo che ρ è senza perdita se e solo se, per ogni possibile r istanza di R, Pertanto r può essere ricostruita esattamente a partire dalle sue proiezioni.
Sistemi Informativi: Forme Normali e Dipendenze 1 Decomposizione per proiezione in 3NF: algoritmo intuitivo È possibile definire algoritmi formali per la decomposizione in 3NF, in molti casi è tuttavia possibile utilizzare un algoritmo di decomposizione, detto intuitivo, che opera come segue: Non 2NF. Sia R = fk 1 K 2 X Y g uno schema con chiave K 1 K 2 che non èin2nfacausa della FD K 1! X. Allora R può essere decomposto, senza perdita di informazione, nei due schemi R 1 = fk 1 Xg e R 2 = fk 1 K 2 Y g.
Sistemi Informativi: Forme Normali e Dipendenze 1 Non 3NF. Sia R = fk X Y Zg uno schema con chiave K che non èin3nfacausadella FD X! Y. Allora R può essere decomposto, senza perdita di informazione, nei due schemi fk X Zg e fx Y g. Viceversa, se la situazione è del tipo fk 1 K 2 X Y Zg, con chiave K 1 K 2, e vale la FD K 1 X! Y, allora si può decomporre negli schemi fk 1 K 2 X Zg e fk 1 X Y g. Esempio 8 fo S D Ag con OS! DA e OD! A. La dipendenza di A da OS è transitiva. Si generano quindi i due schemi fo S Dg e fo D Ag.