La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Basi di Dati e Sistemi Informativi Normalizzazione Home page del corso:

Presentazioni simili


Presentazione sul tema: "Basi di Dati e Sistemi Informativi Normalizzazione Home page del corso:"— Transcript della presentazione:

1 Basi di Dati e Sistemi Informativi Normalizzazione Home page del corso:

2 Studio/analisi dei requisiti Progettazione concettuale Progettazione logica Progettazione fisica SCHEMA CONCETTUALE SCHEMA LOGICO SCHEMA FISICO Fasi della progettazione Risultati Analisi dei requisiti e progettazione in dettaglio … Progettazione logica

3 Lo schema logico prodotto dalla progettazione dovrebbe rispettare dei requisiti di qualita : Completezza lo schema logico deve contenere tutti i concetti del diagramma E-R Correttezza lo schema logico deve preservare la semantica del diagramma E-R Efficienza lo schema logico non deve contenere ridondanze sui dati … Normalizzazione dei dati

4 Le ridondanze sui dati possono essere di due tipi: Ridondanza concettuale non ci sono duplicazioni dello stesso dato, ma sono memorizzate informazioni che possono essere ricavate da altre gia contenute nel DB. Ridondanza logica esistono duplicazioni sui dati, che possono generare anomalie nelle operazioni sui dati … Normalizzazione dei dati

5 Esempi di ridondanze concettuali che possono presentarsi gia nel diagramma E-R… STIPENDIO Lordo Netto Tasse ATTRIBUTI DERIVABILI Lo stipendio netto si puo ricavare dal lordo e dalle tasse. PERSONACITTA RESIDENTI Codice Fiscale Codice (1,1) Nome (1,N) Descrizione Numero Abitanti Il Numero Abitanti si puo ricavare contando le Persone Normalizzazione dei dati

6 Le ridondanze sui dati possono essere di due tipi: Ridondanza concettuale non ci sono duplicazioni dello stesso dato, ma sono memorizzate informazioni che possono essere ricavate da altre gia contenute nel DB. Ridondanza logica esistono duplicazioni sui dati, che possono generare anomalie nelle operazioni sui dati … Normalizzazione dei dati

7 Q. Cosa ce di strano in questa tabella? Normalizzazione dei dati DocenteLivelloSalarioDipartimentoDirettoreCorso Rossi415000FisicaNeriMat. Discreta Rossi415000ChimicaRossiniAnalisi I Bianchi310000InformaticaViolaBasi di Dati Neri415000InformaticaViolaProgrammazione Neri415000MatematicaBruniInf. di base Rossi310000MatematicaBruniGeometria

8 Q. Cosa ce di strano in questa tabella? Normalizzazione dei dati A. Lo stipendio di ciascun docente e ripetuto in tutte le tuple relative Ridondanze sui dati ! DocenteLivelloSalarioDipartimentoDirettoreCorso Rossi FisicaNeriMat. Discreta Rossi ChimicaRossiniAnalisi I Bianchi InformaticaViolaBasi di Dati Neri InformaticaViolaProgrammazione Neri MatematicaBruniInf. di base Rossi MatematicaBruniGeometria

9 Q. Cosa ce di strano in questa tabella? Normalizzazione dei dati A. Il direttore di un dipartimento e ripetuto in tutte le tuple relative Ridondanze sui dati ! DocenteLivelloSalarioDipartimentoDirettoreCorso Rossi415000Fisica Neri Mat. Discreta Rossi415000Chimica Rossini Analisi I Bianchi310000Informatica Viola Basi di Dati Neri415000Informatica Viola Programmazione Neri415000Matematica Bruni Inf. di base Rossi310000Matematica Bruni Geometria

10 Q. Cosa ce di strano in questa tabella? Normalizzazione dei dati DocenteLivelloSalarioDipartimentoDirettoreCorso Rossi FisicaNeriMat. Discreta Rossi ChimicaRossiniAnalisi I Bianchi InformaticaViolaBasi di Dati Neri InformaticaViolaProgrammazione Neri MatematicaBruniInf. di base Rossi MatematicaBruniGeometria Anomalia di aggiornamento se varia lo stipendio, devo modificare tutte le tuple del docente!

11 Q. Cosa ce di strano in questa tabella? Normalizzazione dei dati Anomalia di cancellazione Se un docente non ha corsi, dobbiamo eliminare tutti i suoi dati … DocenteLivelloSalarioDipartimentoDirettoreCorso Rossi FisicaNeriMat. Discreta Rossi ChimicaRossiniAnalisi I Bianchi InformaticaViolaBasi di Dati Neri InformaticaViolaProgrammazione Neri MatematicaBruniInf. di base Rossi MatematicaBruniGeometria

12 Q. Cosa ce di strano in questa tabella? Normalizzazione dei dati Anomalia di inserimento Non posso inserire un docente che non ha un corso associato … DocenteLivelloSalarioDipartimentoDirettoreCorso Rossi FisicaNeriMat. Discreta Rossi ChimicaRossiniAnalisi I Bianchi InformaticaViolaBasi di Dati Neri InformaticaViolaProgrammazione Neri MatematicaBruniInf. di base Rossi MatematicaBruniGeometria

13 Normalizzazione dei dati V1. Ogni dipartimento ha un solo direttore. V2. Ogni docente ha un solo stipendio (anche se ha piu corsi). V3. Lo stipendio dipende dal livello e non dal dipartimento o dal corso tenuto! PROBLEMA: Abbiamo usato ununica relazione per rappresentare informazioni eterogenee ! DocenteLivelloSalarioDipartimentoDirettoreCorso

14 Da dove deriva una ridondanza ? Traduzioni non corrette nel modello logico… PERSONA PROGETTO (1,N) (0,N) Codice Cognome PARTECIPAZIONE Salario Nome Sede Normalizzazione dei dati CodiceNomeProgettoCognomeSalarioSedeProgetto PERSONA

15 Da dove deriva una ridondanza ? Errori durante la progettazione concettuale.. PRODOTTO Nome NomeComponente PrezzoProdotto CollocazioneProdotto TipoComponente Normalizzazione dei dati Meglio ristrutturare lo schema E-R, partizionando lentita ed introducendo delle relazioni uno-a-molti o molti-a-molti ! Lentita PRODOTTO contiene sia le informazioni sul prodotto sia quelle sulle sue componenti.

16 Normalizzazione dei dati Per risolvere le anomalie viste fin qui, si introduce un nuovo vincolo di integrita sul modello relazionale: la Dipendenza Funzionale (DF). Data una relazione r su uno schema R(X) e due attributi Y e Z di X. Esiste la dipendenza funzionale Y Z se per ogni coppia di tuple t1 e t2 di r con t1[Y]=t2[Y], si ha anche che t1[Z]=t2[Z].

17 Normalizzazione dei dati ImpiegatoStipendioProgettoSedeRuolo Rossi20000MarteRomaTecnico Verdi35000GioveBolognaTecnico Verdi35000VenereMilanoProgettista Neri55000VenereMilanoDirettore Neri55000GioveBolognaDirettore Neri55000MarteRomaTecnico Bianchi48000VenereMilanoConsulente DF1 : Impiegato Stipendio Spiegazione: [Ogni impiegato ha un unico stipendio]

18 Normalizzazione dei dati ImpiegatoStipendioProgettoSedeRuolo Rossi20000MarteRomaTecnico Verdi35000GioveBolognaTecnico Verdi35000VenereMilanoProgettista Neri55000VenereMilanoDirettore Neri55000GioveBolognaDirettore Neri55000MarteRomaTecnico Bianchi48000VenereMilanoConsulente DF2 : Progetto Sede Spiegazione: [Ogni progetto ha ununica sede]

19 Normalizzazione dei dati ImpiegatoStipendioProgettoSedeRuolo Rossi20000MarteRomaTecnico Verdi35000GioveBolognaTecnico Verdi35000VenereMilanoProgettista Neri55000VenereMilanoDirettore Neri55000GioveBolognaDirettore Neri55000MarteRomaTecnico Bianchi48000VenereMilanoConsulente DF3 : Impiegato Progetto Impiegato Spiegazione: ovvia! (ed inutile)

20 Normalizzazione dei dati ImpiegatoStipendioProgettoSedeRuolo Rossi20000MarteRomaTecnico Verdi35000GioveBolognaTecnico Verdi35000VenereMilanoProgettista Neri55000VenereMilanoDirettore Neri55000GioveBolognaDirettore Neri55000MarteRomaTecnico Bianchi48000VenereMilanoConsulente DF4 : Impiegato Progetto Ruolo Spiegazione: Un impiegato puo coprire un solo ruolo per progetto!

21 Normalizzazione dei dati MatricolaCognomeCorsoVoto 1244RossiBasi di Dati BianchiProgrammazione BianchiAnalisi I VerdiProgrammazione VerdiBasi di Dati BruniAnalisi I20 Le dipendenze funzionali sono definite a livello di schema e non a livello di istanza! Dipendenza funzionale Corso Voto ? NO!

22 Normalizzazione dei dati Le dipendenze funzionali sono definite a livello di schema e non a livello di istanza! Dipendenza funzionale Corso Docente ? Puo essere, occorre considerare le specifiche del sistema … MatricolaCognomeCorsoDocenteVoto 1244RossiBasi di DatiDi Felice BianchiProgrammazioneMessina BianchiAnalisi ISordoni VerdiProgrammazioneMessina VerdiBasi di DatiDi Felice BruniAnalisi ISordoni20

23 Normalizzazione dei dati Le dipendenze funzionali hanno sempre un verso ! Corso Docente? OK Docente Corso? NO ! MatricolaCognomeCorsoDocenteVoto 1244RossiBasi di DatiDi Felice BianchiProgrammazioneMessina BianchiAnalisi ISordoni VerdiProgrammazioneMessina VerdiBasi di DatiDi Felice BruniAnalisi ISordoni BruniLAMDi Felice28

24 Normalizzazione dei dati Le dipendenze funzionali hanno sempre un verso ! Corso Docente? OK Docente Corso? NO ! MatricolaCognomeCorsoDocenteVoto 1244RossiBasi di DatiDi Felice BianchiProgrammazioneMessina BianchiAnalisi ISordoni VerdiProgrammazioneMessina VerdiBasi di DatiDi Felice BruniAnalisi ISordoni BruniLAMDi Felice28

25 Normalizzazione dei dati Le dipendenze funzionali sono una generalizzazione del vincolo di chiave. Data una relazione r con schema R(X), con chiave K. Esiste un vincolo di dipendenza funzionale tra K e qualsiasi attributo dello schema r. Q. Che accade se K e una superchiave?

26 Normalizzazione dei dati ImpiegatoStipendioProgettoSedeRuolo DF 1 : Impiegato Progetto Stipendio DF 2 : Impiegato Progetto Sede DF 3 : Impiegato Progetto Ruolo DF 4 : Impiegato Progetto Sede Ruolo …. DF n : Impiegato Progetto Impiegato Stipendio Progetto Sede Ruolo ESEMPIO. Impiegato,Progetto e una chiave della relazione non possono esistere due tuple con lo stesso valore della coppia !

27 Normalizzazione dei dati ImpiegatoStipendioProgettoSedeRuolo Rossi20000MarteRomaTecnico Verdi35000GioveBolognaTecnico Verdi35000VenereMilanoProgettista Neri55000VenereMilanoDirettore Neri55000GioveBolognaDirettore Neri55000MarteRomaTecnico Bianchi48000VenereMilanoConsulente DF1 : Impiegato Stipendio DF2 : Progetto Sede DF3 : Impiegato Progetto Sede

28 Normalizzazione dei dati Dipendenze funzionali buone e cattive. DF1 : Impiegato Stipendio DF2: Progetto Sede Ridondanza sui dati, possibili anomalie (aggiornamento, cancellazione, etc) nelle operazioni sui dati … DF3 : Impiegato Progetto Ruolo Non determina ridondanze sui dati …

29 Normalizzazione dei dati Perche DF3 non causa anomalie a differenza di DF1 e di DF2? DF1 : Impiegato Stipendio DF2: Progetto Sede DF3 : Impiegato Progetto Ruolo Motivo: DF3 ha sulla sinistra una (super)chiave. DF1 e DF2 non contengono una (super)chiave.

30 Normalizzazione dei dati Uno schema R(X) si dice in forma normale di Boyce e Codd se per ogni dipendenza funzionale (non ovvia) Y Z definita su di esso, Y e una superchiave di R(X). Se una relazione e in FNBC, non presenta le anomalie e ridondanze viste fin qui. Se una relazione NON e in FNBC, bisogna trasformarla ( normalizzarla ) -se possibile- in FNBC.

31 Normalizzazione dei dati LocalitaStatoAbitanti RomaItalia CambridgeUK50000 CambridgeUS BolognaItalia NYUS Esempi di relazioni… DF : Localita Stato Abitanti Rispetta la FNBC! LocalitaStatoPrefisso RomaItalia0039 CambridgeUS001 CambridgeUK0044 BolognaItalia0039 NYUS001 DF : Stato Prefisso NON rispetta la FNBC!

32 Normalizzazione dei dati LocalitaStatoAbitanti RomaItalia CambridgeUK50000 CambridgeUS BolognaItalia NYUS Esempi di relazioni… DF : Localita Stato Abitanti Rispetta la FNBC! LocalitaStatoPrefisso RomaItalia0039 MadridSpagna0034 CambridgeUK0044 ParigiFrancia0033 NYUS001 DF : Stato Prefisso NON rispetta la FNBC!

33 Normalizzazione dei dati Q. Come normalizzare una relazione? A. Creare tabelle separate per ogni dipendenza funzionale, ognuna in FNBC! ImpiegatoStipendio Rossi20000 Verdi35000 Neri55000 Bianchi48000 IMPIEGATO STIPENDIO ImpiegatoProgettoRuolo RossiMarteTecnico VerdiGioveTecnico VerdiVenereProgettista NeriVenereDirettore NeriGioveDirettore NeriMarteTecnico BianchiVenereConsulente IMPIEGATO, PROGETTO RUOLO PROGETTO SEDE ProgettoSede MarteRoma GioveBologna VenereMilano

34 Normalizzazione dei dati Q. Tutte le decomposizioni vanno bene? DF1. Impiegato Sede (Ogni impiegato lavora in una sola sede) DF2. Progetto Sede (Ogni progetto ha la stessa sede) ImpiegatoProgettoSede RossiMarteRoma VerdiGioveMilano VerdiVenereMilano NeriSaturnoMilano NeriVenereMilano ImpiegatoSede RossiRoma VerdiMilano NeriMilano ProgettoSede MarteRoma GioveMilano VenereMilano SaturnoMilano IMPIEGATO SEDE PROGETTO SEDE

35 Normalizzazione dei dati Q. Tutte le decomposizioni vanno bene? ImpiegatoSede RossiRoma VerdiMilano NeriMilano ProgettoSede MarteRoma GioveMilano VenereMilano SaturnoMilano ImpiegatoProgettoSede RossiMarteRoma VerdiGioveMilano VerdiVenereMilano VerdiSaturnoMilano NeriVenereMilano NeriGioveMilano NeriSaturnoMilano = Se combino le due relazioni della decomposizione tramite operatore di join, non ottengo la relazione di partenza! ( decomposizione con perdita ) TUPLE SPURIE

36 Normalizzazione dei dati Uno schema R(X) si decompone senza perdita negli schemi R1(X1) ed R2(X2) se, per ogni possibile istanza r di R(X), il join naturale delle proiezioni di r su X1 ed X2 produce la relazione r di partenza. In caso di decomposizione con perdite, possono generarsi delle tuple spurie dopo il join.

37 Normalizzazione dei dati Sia r una relazione con schema R(X) e siano X 1 ed X 2 sottoinsiemi di R(X) con. Sia inoltre X 0 un attributo comune di X 1 ed X 2. La relazione r si decompone senza perdita negli schemi R(X 1 ) ed R(X 2 ) se soddisfa una delle due dipendenze funzionali: X 0 X 1 o X 0 X 2. (In pratica, X 0 e una superchiave di X 1 o di X 2 )

38 Normalizzazione dei dati Anche se una decomposizione e senza perdite, puo comunque presentare dei problemi di conservazione delle dipendenze … ImpiegatoSede RossiRoma VerdiMilano NeriMilano Con questa decomposizione, non ho tuple spurie … IMPIEGATO SEDE ImpiegatoProgetto RossiMarte VerdiGiove VerdiVenere NeriVenere NeriSaturno ImpiegatoProgettoSede RossiMarteRoma VerdiGioveMilano VerdiVenereMilano NeriVenereMilano NeriSaturnoMilano

39 Normalizzazione dei dati Anche se una decomposizione e senza perdite, puo comunque presentare dei problemi di conservazione delle dipendenze … ImpiegatoSede RossiRoma VerdiMilano NeriMilano Che accade se aggiungo limpiegato Neri al progetto Marte? IMPIEGATO SEDE ImpiegatoProgetto RossiMarte VerdiGiove VerdiVenere NeriVenere NeriSaturno NeriMarte

40 Normalizzazione dei dati Q. Tutte le decomposizioni vanno bene? IMPIEGATO SEDE ImpiegatoSede RossiRoma VerdiMilano NeriMilano ImpiegatoProgetto RossiMarte VerdiGiove VerdiVenere NeriVenere NeriSaturno NeriMarte ImpiegatoProgettoSede RossiMarteRoma VerdiGioveMilano VerdiVenereMilano NeriVenereMilano NeriSaturnoMilano NeriMarteMilano = Violazione del vincolo di dipendenza Progetto Sede

41 Normalizzazione dei dati REGOLA PRATICA : Per conservare le dipendenze in una decomposizione, ogni dipendenza funzionale dello schema dovrebbe coinvolgere attributi che compaiono tutti insieme in uno degli schemi decomposto … ImpiegatoSede ImpiegatoProgetto DF1 : IMPIEGATO SEDE, OK, Compare nella prima relazione DF2 : PROGETTO SEDE, Non compare in nessuna relazione r1r1 r2r2

42 Normalizzazione dei dati Q. Tutte le decomposizioni vanno bene? A.NO ! Le decomposizione dovrebbero sempre soddisfare tre proprieta : Soddisfacimento della FNBC : ogni relazione prodotta deve essere in FNBC. Decomposizione senza perdita : il join delle relazioni decomposte deve produrre la relazione originaria. Conservazione delle dipendenze : il join delle relazioni decomposte deve rispettare tutte le DF originarie.

43 Normalizzazione dei dati Q. Data una relazione non in FNBC, e sempre possibile ottenere una decomposizione in FNBC ? A. NO! consideriamo un controesempio … DirigenteProgettoSede RossiMarteRoma VerdiGioveMilano VerdiMarteMilano NeriSaturnoMilano NeriVenereMilano DF1. Progetto Sede Dirigente DF2. Dirigente Sede PROBLEMA: DF1 coinvolge tutti gli attributi, nessuna decomposizione puo preservare la dipendenza!

44 Normalizzazione dei dati Per risolvere casi come quello precedente, si introduce una nuova definizione di forma normale meno restrittiva della forma di Boyce e Codd… Una relazione r e in terza forma normale se per ogni dipendenza funzionale X A dello schema, almeno una delle seguenti condizioni e verificata : X contiene una chiave K di r A appartiene ad almeno una chiave K di r

45 Normalizzazione dei dati La relazione considerata fin qui rispetta la TFN ! DirigenteProgettoSede RossiMarteRoma VerdiGioveMilano VerdiMarteMilano NeriSaturnoMilano NeriVenereMilano DF1. Progetto Sede Dirigente DF2. Dirigente Sede DF1 : Progetto Sede e una chiave Condizione 1 soddisfatta ! DF2 : Sede e parte di una chiave Condizione 2 soddisfatta ! Se e gia in TFN, non e necessaria alcuna nomalizzazione ! Putroppo le ridondanze sui dati restano …

46 Normalizzazione dei dati ( SVANTAGGI ) La TFN e meno restrittiva della FNBC Tollera alcune ridondanze ed anomalie sui dati. Certifica meno lo qualita dello schema ottenuto. ( VANTAGGI ) La TFN e sempre ottenibile, qualsiasi sia lo schema di partenza. COME? Algoritmo di normalizzazione in TFN!

47 Normalizzazione dei dati ALGORITMO DI NORMALIZZAZIONE IN TERZA FORMA NORMALE ( TFN )

48 Normalizzazione dei dati Una relazione r e in terza forma normale se per ogni dipendenza funzionale X A (non banale) dello schema, almeno una delle seguenti condizioni e verificata : X contiene una chiave K di r (X e una superchiave di r) A appartiene ad almeno una chiave K di r

49 Normalizzazione dei dati Una dipendenza funzionale X Y e banale se Y e contenuto in X. ESEMPI : Impiegato Progetto Impiegato Impiegato Progetto Sede Impiegato Progetto Questo genere di dipendenze funzionali non ci interessano, e non le conseriamo come tali nel resto della trattazione …

50 Normalizzazione dei dati Data una relazione r con schema R(X) non in TFN, normalizzare in TFN vuol dire: decomporre r nelle relazioni r 1,r 2, … r n, garantendo che: Ogni r i (1<=i<=n) e in TFN. La decomposizione e senza perdite. La decomposizione conserva tutte le dipendenze F definite sullo schema R(X) di partenza.

51 Normalizzazione dei dati Ad esempio, data la relazione: R(MGCRDSPA), con dipendenze funzionali: F= {M RSDG, MS CD, G R, D S, S D, MPD AM} Qual e la sua decomposizione in 3FN? In molti casi, la decomposizione non e intuitiva …

52 Normalizzazione dei dati IDEE alla base dellalgoritmo di normalizzazione: Semplificare linsieme di dipendenze F, rimuovendo quelle non necessarie, e trasformando ogni dipendenza in modo che nella parte destra compaia un singolo attributo. Raggruppare gli attributi coinvolti nelle stesse dipendenze, e costruire le relazioni corrispondenti. Assicurarsi che almeno una delle relazioni prodotte contenga la chiave della relazione originaria.

53 Normalizzazione dei dati IDEE alla base dellalgoritmo di normalizzazione: Semplificare linsieme di dipendenze F, rimuovendo quelle non necessarie, e trasformando ogni dipendenza in modo che nella parte destra compaia un singolo attributo. Raggruppare gli attributi coinvolti nelle stesse dipendenze, e costruire le relazioni corrispondenti. Assicurarsi che almeno una delle relazioni prodotte contenga la chiave della relazione originaria.

54 Normalizzazione dei dati Dato un insieme di dipendenze funzionali F, ed una dipendenza funzionale f, diremo che F implica f se ogni relazione r che soddisfa F soddisfa anche f. F : {Impiegato Livello, Livello Stipendio} f : Impiegato Stipendio In questo caso, F implica f? SI ! Dim. Devo dimostrare che se in una relazione r sono vere entrambe le dipendenze funzionali di F, allora vale anche la dipendenza funzionale f…

55 Normalizzazione dei dati Dato un insieme di dipendenze funzionali F, ed una dipendenza funzionale f, diremo che F implica f se ogni relazione r che soddisfa F soddisfa anche f. F : {Impiegato Livello, Impiegato Stipendio} f : Livello Stipendio In questo caso, F implica f? NO ! ImpiegatoLivelloStipendio Neri Rossi415000

56 Normalizzazione dei dati Dato uno schema R(U), con un insieme di dipendenze F. Sia X un insieme di attributi contenuti in U. Si definisce la chiusura di X rispetto ad F (X + F ) come linsieme degli attributi che dipendono funzionalmente da X: Q. Come verificare se F implica f ?

57 Normalizzazione dei dati Esempio (facile). Siano: R=(ABCDE) F={A B, A C} Vogliamo conoscere la chiusura di A: A + F A + F ={B,C}

58 Normalizzazione dei dati Esempio (facile). Siano: R=(ABCDE) F={A B, A C, C D} Vogliamo conoscere la chiusura di A: A + F A + F ={B,C,D}

59 Normalizzazione dei dati INPUT : X (attributi) e F (dipendenze) OUTPUT : La chiusura di X rispetto ad F: X + F 1) X + F =X. 2) Per ogni dipendenza f: Y A in F 3) Ripeti il passo 2 finche non e possibile aggiungere nuovi elementi in X + F.

60 Normalizzazione dei dati Esempio. Siano: R=(ABCDE) F={A B, BC D, B E, E C} A + F ={A} A + F ={A,B} // con f: A B A + F ={A,B,E} // con f: B E A + F ={A,B,E,C} // con f: E C A + F ={A,B,E,C,D} // con f: BC D

61 Normalizzazione dei dati Q. Come verificare se F implica f: X A ? 1.Calcolare la chiusura X + F 1.Se A appartiene ad X + F, allora F implica f. ESEMPIO F={A B, BC D, B E, E C} f: A E A + F ={A,B,E,C,D} …. Quindi F implica A E

62 Normalizzazione dei dati Data una relazione r con schema R(U), lalgoritmo per determinare la chiusura X + F puo essere usato anche per verificare se X e una chiave di r. …COME? Dato uno schema R(U), con un insieme F di dipendenze funzionali, allora: un insieme di attributi K e una (super)chiave di R(U) se F implica K U.

63 Normalizzazione dei dati Dato uno schema R(U), con un insieme F di dipendenze funzionali, allora: un insieme di attributi K e una (super)chiave di R(U) se F implica K U. ESEMPIO R=(ABCDE) F={A B, BC D, B E, E C} Se A e una chiave allora F implica A ABCDE. A + F ={A,B,E,C,D} quindi A e una chiave!

64 Normalizzazione dei dati Dati due insiemi di dipendenze funzionali F 1 ed F 2, essi si dicono equivalenti se F 1 implica ciascuna dipendenza di F 2 e viceversa. ESEMPIO F={A B, AB C} F 1 ={A B, A C} F e F 1 sono equivalenti! Occorre fare 4 verifiche …

65 Normalizzazione dei dati Dato un insieme di dipendenze funzionali F definito su uno schema R(U), esso si dice non ridondante se non esiste una dipendenza f di F tale che F-{f} implica f. ESEMPIO F={A B, AB C, A C} F e ridondante perche: F-{A C} implica A C!

66 Normalizzazione dei dati Dato un insieme di dipendenze funzionali F definito su uno schema R(U), esso si dice ridotto se(1) non e ridondante, e (2) non e possibile ottenere un insieme F equivalente ad F eliminando attributi dai primi membri di una o piu dipendenze di F. ESEMPIO F={A B, AB C} F NON e ridotto perche B puo essere eliminato da AB C e si ottiene ancora un insieme F 2 equivalente ad F!

67 Normalizzazione dei dati Dato uno schema R(U) con insieme di dipendenze F, per trovare una copertura ridotta di F si procede in tre passi: 1.Sostituire F con F 1, che ha tutti i secondi membri composti da un singolo attributo. M RSDG, MS CD, G R, D S, S D, MPD AM F 1 ={ M R, M S, M D, M G, MS C, MS D, G R, D S, S D, MPD A, MPD M }

68 Normalizzazione dei dati STEP 2. Eliminare gli attributi estranei. Supponiamo di avere F={AB C, A B}, e calcoliamo A + F A + F =A A + F =AB // da A B A + F =ABC // da AB C C dipende solo da A, quindi lattributo B in AB C puo essere eliminato preservando luguaglianza! F 1 ={A C, A B}

69 Normalizzazione dei dati STEP 2. Eliminare gli attributi estranei. Q. In generale, se ho una dipendenza funzionale del tipo: AX B, come faccio a stabilire se lattributo A puo essere eliminato preservando luguaglianza? A. Si calcola X + e si verifica se esso include B, nel qual caso A puo essere eliminato dalla dipendenza!

70 Normalizzazione dei dati STEP 3. Eliminare le ridondanze non necessarie. Supponiamo di avere F={B C, B A, C A}: B A e ridondante, in quanto bastano le relazioni B C, e C A per capire che A dipende da B! Formalmente, dovrei dimostrare che: F-{B A} implica {B A} quindi, verificare che: B + F-{B A} contiene A …

71 Normalizzazione dei dati STEP 3. Eliminare le ridondanze non necessarie. Q. In generale, come posso stabilire se la dipendenza del tipo X A e ridondante? A. Si elimina da F, si calcola X + F-{X A}, e si verifica se tale insieme include ancora A. Nel caso lo includa, si elimina la dipendenza funzionale X A.

72 Normalizzazione dei dati Dati R(U), ed un insieme di dipendenze F, lalgoritmo di normalizzazione in terza forma normale procede come segue: STEP 1. Costruire una copertura ridotta F 1 di F. F={M RSDG, MS CD, G R, D S, S D, MPD AM} F 1 ={M D, M G, M C, G R, D S, S D, MP A}

73 Normalizzazione dei dati STEP 2. Decomporre F 1 nei sottoinsiemi F 1 (1), F 1 (2), … F 1 (n), tali che ad ogni sottoinsieme appartengano dipendenze con gli stessi lati sinistri. F 1 (1) ={M D, M G, M C} F 1 (2) ={G R} F 1 (3) ={D S} F 1 (4) ={S D} F 1 (5) ={MP A}

74 Normalizzazione dei dati STEP 3. Se due o piu lati sinistri delle dipendenze si implicano a vincenda, si fondono i relativi insiemi. F 1 (1) ={M D, M G, M C} F 1 (2) ={G R} F 1 (3) ={D S} F 1 (3) ={D S, S D} F 1 (4) ={S D} F 1 (5) ={MP A}

75 Normalizzazione dei dati STEP 4. Trasformare ciascun F 1 (i) in una relazione R (i) con gli attributi contenuti in ciascuna dipendenza. Il lato sinistro diventa la chiave della relazione. F 1 (1) ={M D, M G, M C}: R (1) (MDGC) F 1 (2) ={G R}: R (2) (GR) F 1 (3) ={D S, S D}: R (3) (SD) F 1 (4) ={MP A}: R (4) (MPA)

76 Normalizzazione dei dati STEP 5. Se nessuna relazione R (i) cosi ottenuta contiene una chiave K di R(U), inserire una nuova relazione R (n+1) contenente gli attributi della chiave. Nel nostro caso, la chiave e costituita da: (MP). R (1) (MDGC) R (2) (GR) R (3) (SD) R (4) (MPA) R (4) (MPA) contiene la chiave non ce necessita di aggiungere altre relazioni!

77 Normalizzazione dei dati In conclusione, data la relazione: R(MGCRDSPA), con dipendenze funzionali: F= {M RSDG, MS CD, G R, D S, S D, MPD AM} La sua decomposizione in 3FN e la seguente: R (1) (MDGC) R (2) (GR) R (3) (SD) R (4) (MPA)

78 Normalizzazione dei dati Esempio: R(ABCDE) F={C AB, BC DE, D B} STEP (1.a ) Ridurre F. (semplificare parte destra delle dipendenze) F 1 ={C A, C B, BC D, BC E, D B} STEP (1.b ) Ridurre F. (semplificare parte sinistra delle dipendenze) Calcolo C + F1 ={C,A,B, D, E}, e noto che include B! F 2 ={C A, C B, C D, C E, D B}

79 Normalizzazione dei dati STEP (1.c ) Ridurre F. (rimuovere dipendenze) Che succede se elimino C B? F 3 ={C A, C D, C E, D B} F 2 ={C A, C B, C D, C E, D B} STEP (2 ) Decomporre F (in insiemi di dipendenze con lo stesso lato sx) F 31 ={C A, C D, C E} F 32 ={D B}

80 Normalizzazione dei dati STEP (3 ) Fondere gli insiemi. (le cui parti sinistre si implicano) STEP (4 ) Costruire le relazioni associate. F 31 ={C A, C D, C E} F 32 ={D B} R 1 (CADE) R 2 (DB} STEP (5 ) Verificare esistenza della chiave. C + ={A,B,C,D,E} quindi C e una chiave dello schema r

81 Normalizzazione dei dati Perche si chiama Terza Forma Normale ( TFN )? Prima Forma Normale (PFN) ovvia,si suppone sempre rispettata Seconda Forma Normale (SFN) variante debole della TFN. Procenendo per gradi, si dovrebbe normalizzare in PFN, poi in SFN, e quindi in TFN.

82 Normalizzazione dei dati Una relazione r con schema R(U) e in Prima Forma Normale (PFN) quando rispetta i requisiti del modello relazionale, ossia ogni attributo e elementare, e non ci sono righe/colonne ripetute. Esempi di relazioni non in PFN: PAZIENTE (Nome, Cognome, Recapito(Via, Citta, CAP)) PAZIENTE(Nome, Nome, Cognome)

83 Normalizzazione dei dati Perche si chiama Terza Forma Normale ( TFN )? Prima Forma Normale (PFN) ovvia,si suppone sempre rispettata Seconda Forma Normale (SFN) variante debole della TFN. Procenendo per gradi, si dovrebbe normalizzare in PFN, poi in SFN, e quindi in TFN.

84 Normalizzazione dei dati Una relazione r con schema R(U) e in Seconda Forma Normale (SFN) quando non presenta dipendenze parziali, della forma: Y A, dove: Y e un sottoinsieme proprio della chiave A e un qualsiasi sottoinsieme di R(U) IMPIEGATO(Impiegato, Categoria, Stipendio) Impiegato Categoria Categoria Stipendio

85 Normalizzazione dei dati Una relazione r con schema R(U) e in Seconda Forma Normale (SFN) quando non presenta dipendenze parziali, della forma: Y A, dove: Y e un sottoinsieme proprio della chiave A e un qualsiasi sottoinsieme di R(U) IMPIEGATO(Impiegato, Stipendio, Progetto, Budget) Impiegato Stipendio Progetto Budget DIPENDENZA PARZIALE!


Scaricare ppt "Basi di Dati e Sistemi Informativi Normalizzazione Home page del corso:"

Presentazioni simili


Annunci Google