1 / 80

Normalizzazione di Schemi

Normalizzazione di Schemi. S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni). Forme normali. Una forma normale è una proprietà di una base di dati relazionale che ne garantisce la “qualità”, cioè l'assenza di determinati difetti

Download Presentation

Normalizzazione di Schemi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Normalizzazione di Schemi S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni)

  2. Forme normali • Una forma normale è una proprietà di una base di dati relazionale che ne garantisce la “qualità”, cioè l'assenza di determinati difetti • Quando una relazione non è normalizzata: • presenta ridondanze, • si presta a comportamenti poco desiderabili durante gli aggiornamenti • Le forme normali sono di solito definite sul modello relazionale, ma hanno senso in altri contesti, ad esempio il modello E-R Normalizzazione di Schemi Relazionali

  3. Forme Normali • Forma normale: proprietà delle relazioni di un DB • Altrimenti: comportamenti indesiderati • Verifica forma normale = verifica di qualità • Metodologie di progettazione  Schemi già in forma normale • Normalizzazione: Schema  Schema normalizzato Normalizzazione di Schemi Relazionali

  4. Normalizzazione • Procedura che permette di trasformare schemi non normalizzati in schemi che soddisfano una forma normale • La normalizzazione va utilizzata come tecnica di verifica dei risultati della progettazione di una base di dati • Non costituisce una metodologia di progettazione Normalizzazione di Schemi Relazionali

  5. Una relazione con anomalie Normalizzazione di Schemi Relazionali

  6. Proprietà di questa Tabella • lo stipendio di ciascun impiegato è unico (indipendentemente dai progetti cui partecipa) • il bilancio di ciascun progetto è unico (indipendentemente dagli impiegati che vi partecipano) • La funzione di un impiegato in un progetto è unica • Ridondanze: • stipendio di ciascun impiegato ripetuto in tutte le tuple relative ad esso • bilancio di ciascun progetto ripetuto per ogni impiegato che partecipa Normalizzazione di Schemi Relazionali

  7. Anomalie • anomalia di aggiornamento: lo stipendio di un impiegato varia  modifica di tutte le tuple corrispondenti • anomalia di cancellazione: un impiegato interrompe la partecipazione a tutti i progetti  spariscono nome e stipendio (a meno di valori nulli sull'unica chiave) • anomalia di inserimento: impossibile inserire nuovo impiegato senza progetto motivo di questi inconvenienti: unica relazione per gestire dati e associazioni tra dati di tipo diverso. Normalizzazione di Schemi Relazionali

  8. Difetti fra Relazioni su Concetti Disomogenei • Dati ripetuti in diverse tuple, senza aggiungere informazioni significative. • Informazioni ripetute  aggiornamento ripetuto per ciascuna occorrenza • Informazioni ripetute  la cancellazione di una tupla può comportare l’ eliminazione di concetti ancora necessari • Inserimento di informazioni relative ad uno solo dei concetti non possibile se esse non costituiscono una tupla completa (o almeno la sua chiave primaria) Normalizzazione di Schemi Relazionali

  9. Come eliminare le anomalie? • Mediante un procedimento di normalizzazione • Ossia, trasformando una tabella non in forma normale in un’insieme di tabelle in forma normale • Forme Normali: • Boyce-Codd Normal Form (BCNF) • Terza Forma Normale (in subordine) Normalizzazione di Schemi Relazionali

  10. 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 Normalizzazione di Schemi Relazionali

  11. Normalizzazione: Definizione Intuitiva • Occorre separare le informazioni eterogenee in sottoinsiemi omogenei. • Ciascun sottoinsieme individuato deve rappresentare un ben preciso concetto. • I concetti individuati corrispondono ad un insieme di attributi che nel suo interno ha una potenziale chiave. • Dopo aver individuato i concetti rilevanti, la tabella data può essere decomposta in altrettante tabelle separate. Normalizzazione di Schemi Relazionali

  12. Per studiare in maniera sistematica come individuare e separare i concetti, è necessario introdurre come strumento un vincolo di integrità:la dipendenza funzionale Normalizzazione di Schemi Relazionali

  13. Proprietà dell’esempio considerato • 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) Normalizzazione di Schemi Relazionali

  14. Dipendenza Funzionale • dipendenza funzionale: vincolo di integrità per il modello relazionale  descrive legami di tipo funzionale tra gli attributi di una relazione • Esempio: il valore dell'attributo Impiegato determina il valore dell'attributo Stipendio: • esiste una funzione che associa ad ogni elemento del dominio dell'attributo Impiegato un solo elemento del dominio dell'attributo Stipendio Normalizzazione di Schemi Relazionali

  15. Formalizzazione • Relazione r su uno schema R(X) • sottoinsiemi di attributi non vuoti Y e Z di X • insieme I di coppie di tuple t1 e t2 di r con uguali valori sugli attributi Y • esiste su r una dipendenza funzionale tra Y e Z, se, per ogni coppia (t1,t2) I, t1 e t2 hanno gli stessi valori anche sugli attributi Z • Sintassi: Y  Z Normalizzazione di Schemi Relazionali

  16. Formalizzazione • Sintassi: Y  Z • il vincolo cosi’ definito si associa a schema R(X) • Semantica: relazione r su schema R(X) corretta se soddisfa le dipendenze funzionali che la coinvolgono Normalizzazione di Schemi Relazionali

  17. In sintesi • 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 t1 e t2 di r con gli stessi valori su Y, risulta che t1 e t2 hanno gli stessi valori anche su Z • FD = Functional Dependency Normalizzazione di Schemi Relazionali

  18. Notazione XY • Esempi: Impiegato  Stipendio Progetto  Bilancio Impiegato Progetto  Funzione Normalizzazione di Schemi Relazionali

  19. Osservazione • Dato schema R(K,V) e dato insieme di attributi A  V si ha sempre K  V • ossia, il vincolo di dipendenza funzionale generalizza il vincolo di chiave • Una dipendenza funzionale Y Zsu uno schema R(X) dove Y è la chiave degenera nel vincolo di chiave se Y  Z = X • Nell’ esempio Impiegato Progetto  Stipendio Bilancio Funzione Normalizzazione di Schemi Relazionali

  20. Dipendenze Funzionali banali • Impiegato Progetto  Progetto • Si tratta però 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 Normalizzazione di Schemi Relazionali

  21. Le anomalie sono legate ad alcune FD • gli impiegati hanno un unico stipendio Impiegato  Stipendio • i progetti hanno un unico bilancio Progetto  Bilancio Normalizzazione di Schemi Relazionali

  22. Non tutte le FD causano anomalie • In ciascun progetto, un impiegato svolge una sola funzione Impiegato Progetto  Funzione • Il soddisfacimento è più "semplice" Normalizzazione di Schemi Relazionali

  23. Una differenza fra FD Impiegato  Stipendio Progetto  Bilancio • causano anomalie Impiegato Progetto  Funzione • non causa anomalie • Perché? Normalizzazione di Schemi Relazionali

  24. Impiegato  Stipendio Progetto  Bilancio Impiegato Progetto  Funzione Normalizzazione di Schemi Relazionali

  25. FD e anomalie • La terza FD corrisponde ad una chiave e non causa anomalie • Le prime due FD non corrispondono a chiavi e causano anomalie • La relazione contiene alcune informazioni legate alla chiave e altre ad attributi che non formano una chiave Normalizzazione di Schemi Relazionali

  26. Motivo delle Anomalie • 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 Normalizzazione di Schemi Relazionali

  27. Impiegato  Stipendio Progetto  Bilancio Impiegato Progetto  Funzione • ImpiegatoProgetto è chiave • Impiegato solono • 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 Normalizzazione di Schemi Relazionali

  28. In particolare • La proprietà "Lo stipendio di ciascun impiegato è funzione del solo impiegato, indipendentemente dai progetti cui partecipa" vuol dire che Impiegato  Stipendio • La proprietà "Il bilancio di ciascun progetto dipende dal solo progetto, in­dipendentemente dagli impiegati che vi partecipano" vuol dire che Progetto  Bilancio • Queste due proprietà (e quindi le corrispondenti dipendenza funzionali) generano ridondanze e anomalie indesiderate Normalizzazione di Schemi Relazionali

  29. In particolare • Poichè gli attributi Impiegato Progetto formano una chiave, allora Impiegato Progetto  Funzione che significa: "In ciascun progetto, ciascuno degli impiegati coinvolti può svolgere una sola funzione“ non genera ridondanze e anomalie • Questo proprio perché Impiegato Progetto è una superchiave Normalizzazione di Schemi Relazionali

  30. Forma normale di Boyce e Codd (BCNF) • Una relazione r è in forma normale di Boyce e Codd se: • per ogni dipendenza funzionale (non banale) X  Y definita su di essa, X contiene una chiave K di r Normalizzazione di Schemi Relazionali

  31. Forma normale di Boyce e Codd (BCNF) • BCNF = Boyce-Codd Normal Form • La forma normale di Boyce-Codd richiede che i concetti in una relazione siano omogenei (solo proprietà direttamente associate alla chiave) Normalizzazione di Schemi Relazionali

  32. Cosa fare se una relazione non soddisfa la BCNF? • La rimpiazziamo con altre relazioni che soddisfano la BCNF Come? • Decomponendo sulla base delle dipendenze funzionali, al fine di separare i concetti Normalizzazione di Schemi Relazionali

  33. Normalizzazione di Schemi Relazionali

  34. Normalizzazione • Procedimento che consiste nel decomporre r non in forma normale rispetto alle dipendenze funzionali D1, ..., Dk in n relazioni r1, ..., rn in forma normale • si vuole che: • r = r1 join r2 join rn (P1: decomposizione senza perdita) • ogni dipendenza funzionale Dj su r sia soddisfatta in almeno una delle r1, ..., rn date (P2: conservazione delle dipendenze) Normalizzazione di Schemi Relazionali

  35. Caso favorevole della normalizzazione • si decompone r in tante relazioni quante sono le dipendenze funzionali significative (non banali) con diverso primo membro • Le relazioni risultanti sono in BCNF • Le proprietà P1 (decomposizione senza perdita) e P2 (conservazione delle dipendenze) sono mantenute. Normalizzazione di Schemi Relazionali

  36. Rispetto all’esempio • D1: Impiegato  Stipendio • D2: Progetto  Bilancio • D3: Impiegato Progetto  Funzione Decomposizione • R1(Impiegato , Stipendio ) • R2(Progetto, Bilancio) • R3(Impiegato, Progetto, Funzione) ciascuna dipendenza corrisponde ad una diversa relazione la cui chiave è proprio il primo membro della dipendenza stessa Normalizzazione di Schemi Relazionali

  37. Dipendenze con struttura complessa • può non essere necessario (o possibile) basare la decomposizione su tutte le dipendenze • può essere difficile individuare quelle su cui si deve basare la decomposizione. ImpiegatoCategoria Stipendio Neri 3 30 Verdi 3 30 Rossi 4 50 Mori 4 50 Bianchi 5 72 Normalizzazione di Schemi Relazionali

  38. Proprietà Esempio • Relazione nell’esempio: soddisfa le dipendenze (non banali) D1: Impiegato  Categoria D2: Categoria  Stipendio Normalizzazione di Schemi Relazionali

  39. Decomposizione in BCNF R1 ImpiegatoCategoria Neri 3 Verdi 3 Rossi 4 Mori 4 Bianchi 5 Normalizzazione di Schemi Relazionali

  40. Decomposizione in BCNF R2 Categoria Stipendio 3 30 4 50 5 72 Normalizzazione di Schemi Relazionali

  41. Osservazione Attenzione: Scegliendo invece le dipendenze D1’: Impiegato  Categoria Stipendio D2: Categoria  Stipendio forma normale non possibile, perchè D1’ copre tutti gli attributi, quindi impossibile decomporre • Quindi: no dipendenze che coprono tutti gli attributi Normalizzazione di Schemi Relazionali

  42. Non sempre così facile Impiegato  Sede Progetto  Sede Normalizzazione di Schemi Relazionali

  43. Relazione nell’esempio soddisfa le dipendenze (non banali) D1: Impiegato  Sede D2: Progetto  Sede • Osservazione: ciascun impiegato può partecipare a più progetti , ma tutti nella stessa sede Normalizzazione di Schemi Relazionali

  44. Decomponiamo sulla base delle dipendenze Normalizzazione di Schemi Relazionali

  45. Diversa dalla relazione di partenza! Proviamo a ricostruire Normalizzazione di Schemi Relazionali

  46. Cosa è accaduto? • Ci sono tuple “spurie” perchè, per ogni impiegato, la sua sede si è “combinata” nel join con tutti i progetti di quella sede. • C’è quindi perdita di informazione: a quali progetti partecipa realmente ciascun impiegato? Nel risultato del join se ne è persa traccia. Normalizzazione di Schemi Relazionali

  47. Proprietà delle relazioni decomposte • Non si vuole perdita di informazione • Una decomposizione in BCNF è valida se è senza perdita (di informazione), ossia se il join delle relazioni decomposte restituisce la relazione di partenza (senza aggiungere tuple spurie) Normalizzazione di Schemi Relazionali

  48. Formalizzazione • Relazione r su un insieme di attributi X dove X = X1  X2 • r1 ed r2 ottenute per proiezione da r su X1 e X2 • r1 join r2 contiene in generale tutte le tuple di r, più eventualmente tuple "spurie". • r si decompone senza perdita su X1 e X2 se r1 join r2 = r Normalizzazione di Schemi Relazionali

  49. Decomposizione senza perdita • Una relazione r si decompone senza perdita su X1 e X2 se il join delle proiezioni di r su X1 e X2 è uguale a r stessa (cioè non contiene ennuple spurie) • La decomposizione senza perdita è garantita se gli attributi comuni alle relazioni decomposte contengono una chiave per almeno una di esse Normalizzazione di Schemi Relazionali

  50. Condizione sufficiente per la Decomposizione senza Perdita • relazione r sugli attributi ABC • proiezioni r1 su AB e r2 su AC. • sia A C • Allora, A è chiave per la proiezione r2 su AC non ci sono in r2 due tuple diverse con gli stessi valori su A  decomposizione senza perdita Normalizzazione di Schemi Relazionali

More Related