Tecniche di normalizzazione

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

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

Basi di dati. La normalizzazione

Perché questi fenomeni indesiderabili?

Normalizzazione di Basi di Dati

LA NORMALIZZAZIONE. Seconda parte

LA NORMALIZZAZIONE. Prima parte

Tornando all esempio..

Decomposizione senza perdita

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

Normalizzazione (cenni)

Corso di Basi di Dati

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

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

Una relazione con anomalie

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

Normalizzazione. Definizione

Normalizzazione. Relazionali

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

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

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

LA NORMALIZZAZIONE. Dr. C. d'amat

Progettazione di basi di dati D B M G

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

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

Traduzione. Associazioni n-arie

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

Progettazione di basi di dati

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

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

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

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

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

Lezione 8. La normalizzazione

Elementi di Normalizzazione

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

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

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

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

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

Forme normali e normalizzazione

Normalizzazione di schemi relazionali

Normalizzazione Delle Relazioni

PROGETTAZIONE DI DATABASE

La normalizzazione delle basi di dati

Progettare Basi di Dati

Il modello Relazionale.

Vincoli di integrità Normalizzazione

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

4. Forma normale di Boyce-Codd

Corso di Basi di Dati

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

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

Capitolo 9. Esercizio 9.1. Esercizio 9.2

Normalizzazione di schemi relazionali

Normalizzazione. Relazionali

Progettazione logica e normalizzazione (lucidi del corso)

Corso sulla Normalizzazione. Prime 3 forme normali

Progettazione logica: normalizzazione di schemi relazionali

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

PIL Percorsi di Inserimento Lavorativo

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Introduzione alla normalizzazione dei dati

Fondamenti di Teoria delle Basi di Dati

Obiettivi della normalizzazione: In pratica:

Prefazione. Parte Prima Basi di dati relazionali: modello e linguaggi 15

TEORIA RELAZIONALE: INTRODUZIONE

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

Normalizzazione. Motivazione

Basi di dati I 7 febbraio 2017 Esame Compito A Durata: un ora per la prova breve e due ore per la prova completa.

Normalizzazione di schemi relazionali

Dati una relazione r(x) e un sottoinsieme Y di X, la proiezione di r su Y si indica con

Progettazione logica: normalizzazione di schemi relazionali

Basi di Dati. Corso di Laurea in Informatica Corso B A.A. 2015/16. Dr. Claudia d'amato. Dipartimento di Informatica, Università degli Studi Bari

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

Basi di dati Prova di autovalutazione 17 gennaio 2011

ESERCIZI NORMALIZZAZIONE

Il modello Relazionale.

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

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

Join (naturale) Join. Join. Join

Lezione basi di dati 26 gennaio NORMALIZZAZIONE

Basi di dati Modelli e linguaggi di interrogazione

Basi di dati I 14 febbraio 2019 Compito A Tempo a disposizione: un ora e quindici minuti per la prova breve, due ore per la prova lunga

Normalizzazione. Lezione 7. Normalizzazione e integrità referenziale. Consideriamo la seguente tabella. Anomalie di inserimento

Normalizzazione. La normalizzazione è un processo con il quale le tabelle vengono trasformate

Unità 3. Modello Relazionale

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

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

Prova Scritta di Basi di Dati

Quante occorrenze abbiamo nella relazione Insegnamento? 1000 (studenti) x 25 (insegnanti per ciascuno studente) = 25000

Ma: progettazione dei dati. progettazione delle applicazioni. Progettazione di basi di dati

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

Perché preoccuparci?

Prova Scritta di Basi di Dati

Progettazione Logica. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Transcript:

Tecniche di normalizzazione 1 Normalizzazione La normalizzazione è utilizzata come tecnica di verifica dei risultati della progettazione di una base di dati; non costituisce una metodologia di progettazione Procedura che permette di trasformare schemi relazionali in schemi 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 o anomalie 3 Una relazione con anomalie Impiegato Stipendio Progetto Bilancio Funzione Rossi 20 Marte 2 tecnico Verdi 35 Giove 15 progettista Verdi 35 Venere 15 progettista Neri 55 Venere 15 direttore Neri 55 Giove 15 consulente Neri 55 Marte 2 consulente Mori 48 Marte 2 direttore Mori 48 Venere 15 progettista Bianchi 48 Venere 15 progettista Bianchi 48 Giove 15 direttore 4 2

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) 5 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 interrompe la partecipazione a tutti i progetti, dobbiamo cancellarlo in diverse ennuple anomalia di cancellazione Un nuovo impiegato senza progetto non può essere inserito anomalia di inserimento 6 3

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 7 Per studiare in maniera sistematica questi aspetti, è necessario introdurre il concetto di dipendenza funzionale 8 4

Dipendenza funzionale Si considerino la relazione r su R(X) due sottoinsiemi non vuoti Ye Zdi 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 et 2 hanno gli stessi valori anche su Z 9 Notazione X Y Esempi: Impiegato Stipendio Progetto Bilancio Impiegato Progetto Funzione 10 5

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 11 Impiegato Stipendio Progetto Bilancio Funzione Rossi 20 Marte 2 tecnico Verdi 35 Giove 15 progettista Verdi 35 Venere 15 progettista Neri 55 Venere 15 direttore Neri 55 Giove 15 consulente Neri 55 Marte 2 consulente Mori 48 Marte 2 direttore Mori 48 Venere 15 progettista Bianchi 48 Venere 15 progettista Bianchi 48 Giove 15 direttore Impiegato Stipendio Progetto Bilancio Impiegato Progetto Funzione 12 6

Non tutte le FD causano anomalie In ciascun progetto, un impiegato svolge una sola funzione Impiegato Progetto Funzione Questa FD non causa anomalie 13 Alcune FD causano anomalie gli impiegati hanno un unico stipendio Impiegato Stipendio i progetti hanno un unico bilancio Progetto Bilancio Queste FD causano anomalie: perché? 14 7

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 15 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) 16 8

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) 17 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 18 9

Impiegato Stipendio Progetto Bilancio Funzione Rossi 20 Marte 2 tecnico Rossi Marte tecnico Verdi 35Verdi Giove Giove progettista 15 progettista Verdi 35Verdi Venere progettista 15 progettista Neri 55 Neri Venere direttore 15 direttore Neri 55 Neri Giove consulente 15 consulente Neri Marte consulente Neri 55 Mori Marte direttore 2 consulente Mori 48 Mori Marte Venere progettista 2 direttore Mori 48Bianchi Venere progettista 15 progettista Bianchi 48Bianchi Venere Giove direttore 15 progettista Bianchi 48 Giove 15 direttore Impiegato Stipendio Rossi 20 Verdi 35 Neri 55 Mori 48 Bianchi 48 Impiegato Progetto Funzione Progetto Bilancio Marte 2 Giove 15 Venere 15 19 È sempre così facile? Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Impiegato Sede Progetto Sede 20 10

Decomponiamo sulla base delle dipendenze Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Impiegato Rossi Verdi Neri Sede Roma Milano Milano Progetto Marte Giove Saturno Venere Sede Roma Milano Milano Milano 21 Impiegato Rossi Verdi Neri Proviamo a ricostruire Sede Roma Milano Milano Progetto Marte Giove Saturno Venere Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Verdi Saturno Milano Neri Giove Milano Sede Roma Milano Milano Milano Diversa dalla relazione di partenza! 22 11

Decomposizione senza perdita Una relazione r si decompone senza perdita su X 1 e X 2 se il join 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. 23 Impiegato Rossi Verdi Neri Un altra decomposizione? Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Sede Roma Milano Milano Impiegato Sede Progetto Sede Impiegato Progetto Rossi Marte Verdi Giove Verdi Venere Neri Saturno Neri Venere 24 12

Algoritmo Sia R lo schema di una relazione Risultato={R} FinchèesisteunarelazioneR in Risultato che non è in BCNF, si considerino le FD su R non banali del tipo α β, con α β= e si sostituisca Risultato=(Risultato - R ) (R -β) (α, β) 25 Proprietà La decomposizione effettuata tramite l algoritmo precedente è sempre priva di perdite Prova? (R -β) (α,β)= α α β esiste 26 13

Osservazione La FD Progetto Sede interessa attributi che non stanno nella stessa tabella. 27 Problema Supponiamo di voler inserire una nuova ennupla che specifica la partecipazione dell'impiegato Neri, che opera a Milano, al progetto Marte Impiegato Rossi Verdi Neri Sede Roma Milano Milano Impiegato Sede Progetto Sede Impiegato Progetto Rossi Marte Verdi Giove Verdi Venere Neri Saturno Neri Venere 28 14

Impiegato Rossi Verdi Neri Sede Roma Milano Milano Impiegato Rossi Verdi Verdi Neri Neri Neri Progetto Marte Giove Venere Saturno Venere Marte 29 Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Neri Marte Milano 30 15

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 31 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 32 16

Relazione BCNF? Proprietà: Ogni dirigente ha una sede; un progetto può essere diretto da più persone, ma in sedi diverse Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano 33 Verifica Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano Progetto Sede Dirigente Dirigente Sede ok no 34 17

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 35 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 contiene una chiave K di r ogni attributo in Y è contenuto in almeno una chiave di r 36 18

Non BCNF, ma 3NF Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano Progetto Sede Dirigente Dirigente Sede L attributo Sede è contenuto nella chiave 37 Anomalie? C è una ridondanza nella ripetizione della sede del dirigente per i vari progetti che dirige 38 19

Confronto 3NF è meno restrittiva di BCNF (e ammette relazioni con alcune anomalie e ridondanze) ha il vantaggio però di essere sempre raggiungibile, cioè si può sempre ottenere una decomposizione 3NF senza perdite e che conserva le dipendenze 39 Metodologia di decomposizione Si crea una relazione per ogni gruppo di attributi coinvolti in una dipendenza funzionale (e una per quelli che eventualmente non sono coinvolti in alcuna FD), purchè almeno una relazione contenga una chiave della relazione originaria (eventualmente si aggiungono attributi) 40 20

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 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 42 21

Schema non decomponibile in BCNF Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano Dirigente Sede Progetto Sede Dirigente 43 Possibile riorganizzazione Si aggiunge un attributo che partiziona le sedi in base ai responsabili Dirigente Progetto Sede Reparto Rossi Marte Roma 1 Verdi Giove Milano 1 Verdi Marte Milano 1 Neri Saturno Milano 2 Neri Venere Milano 2 Dirigente Sede Reparto Sede Reparto Dirigente Progetto Sede Reparto 44 22

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 45 Quando una BCNF non è raggiungibile spesso è questione di cattiva progettazione 46 23

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 47 Nome fornitore Indirizzo Partita IVA Codice Prodotto Nome prodotto Prezzo PartitaIVA NomeFornitore Indirizzo 48 24

Analisi dell entità L entità viola la terza forma normale a causa della dipendenza: PartitaIVA NomeFornitore Indirizzo Possiamo decomporre sulla base di questa dipendenza 49 Nome prodotto Codice Partita IVA Nome fornitore Prodotto (1,1) (0,N) Fornitura Fornitore Prezzo Indirizzo 50 25

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

Afferenza (0,N) Dipartimento (1,1) Professore (0,N) (0,1) Tesi Studente (0,N) Corso di laurea 53 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 54 27

Professore (1,1) Afferenza (0,N) Dipartimento (0,N) (0,1) Tesi (0,N) Corso di laurea Studente (1,1) Iscrizione (0,N) Corso di laurea 55 56 28

57 Risposta A 58 29

Domanda A La decomposizione sulla base delle FD è senza perdite? 59 Risposta A (Matricola CorsoLaurea) e (Corso CorsoLaurea Id_Professore) hanno come intersezione l attributo CorsoLaurea che non contiene la chiave di nessuna delle due relazioni (Corso CorsoLaurea Id_Professore) e (Id_Professore Dipartimento) hanno come intersezione l attributo Id_Professore che è la chiave della seconda relazione Tuttavia la condizione è solo sufficiente, quindi proviamo ad eseguire il join 60 30

61 Risposta B 62 31

Risposta C 63 Risposta D 64 32