Decomposizione senza perdita Data una relazione r su X, se X 1 e X 2 sono due sottoinsiemi di X la cui unione è X stesso, allora il join delle due relazioni ottenute per proiezione di r su X 1 e X 2 è una relazione che contiene tutte le tuple di r più eventualmente alcune altre che si possono definire spurie. La decomposizione di r su X 1 e X 2 è senza perdita se il join delle due proiezioni è uguale ad r stessa, cioè non contiene tuple spurie. Se si deve fare una decomposizione ai fini della normalizzazione, è essenziale che sia senza perdita.
Decomposizione senza perdita Sia r una relazione su X e X 1 e X 2 tali che X 1 U X 2 = X e X 0 = X 1 X 2. Se r soddisfa la dipendenza funzionale X 0 ->X 1 oppure X 0 -> X 2 allora la decomposizione è senza perdita. Cioè la decomposizione è senza perdita se gli attributi comuni sono superchiave per una delle relazioni decomposte.
Conservazione delle dipendenze La decomposizione in più relazioni può creare casi in cui un inserimento di dati illecito per la relazione originaria (per la violazione di una dipendenza funzionale) possa non essere rilevato nel caso della relazione decomposta. Una proprietà fondamentale delle decomposizioni deve essere quella di conservare le dipendenze. Essa può essere garantita se ciascuna delle dipendenze funzionali dello schema originario coinvolge attributi che compaiono tutti insieme in uno degli schemi decomposti.
Conservazione delle dipendenze Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Impiegato Sede Progetto Sede Impiegato Rossi Verdi Neri Sede Roma Milano Milano Impiegato Progetto Rossi Marte Verdi Giove Verdi Venere Neri Saturno Neri Venere Supponiamo di voler inserire una nuova tupla che specifica la partecipazione dell'impiegato Neri, che opera a Milano, al progetto Marte
Conservazione delle dipendenze Impiegato Rossi Verdi Neri Neri Sede Roma Milano Milano Milano Impiegato Progetto Rossi Marte Verdi Giove Verdi Venere Neri Saturno Neri Venere Neri Marte Impiegato Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Venere Milano Neri Saturno Milano Neri Venere Milano Neri Marte Milano Progetto Sede non è conservata
Qualità di una decomposizione Una decomposizione deve avere la proprietà di decomposizione senza perdita e conservare le dipendenze. La decomposizione senza perdita garantisce che le informazioni nella relazione originaria siano ricostruibili con precisione a partire da quelle decomposte. In questo caso, la stessa interrogazione dà gli stessi risultati sulla relazione originaria e su quelle decomposte. La conservazione delle dipendenze garantisce che, nelle relazioni decomposte, i vincoli di integrità di quelle originarie siano ancora validi. Ogni aggiornamento (non) valido su quella originaria corrisponde a un aggiornamento (non) valido su quelle decomposte. Queste ultime possono accettare anche aggiornamenti leciti impossibili su quella originaria, a causa delle anomalie rimosse con la decomposizione.
Una relazione non normalizzata Dirigente Progetto Sede Rossi Marte Roma Verdi Giove Milano Verdi Marte Milano Neri Saturno Milano Neri Venere Milano Progetto Sede Dirigente Dirigente Sede
La decomposizione è problematica Progetto Sede Dirigente coinvolge tutti gli attributi e quindi nessuna decomposizione può preservare tale dipendenza Quindi, in alcuni casi, la forma normale di Boyce & Codd non è raggiungibile
Terza forma normale Esistono schemi che violano la forma normale di Boyce e Codd che non sono decomponibili ai fini della normalizzazione. Es. se è presente una dipendenza funzionale in cui un membro sinistro non è superchiave o se una d.f. coinvolge già tutti gli attributi e quindi non è decomponibile conservando le dipendenze. In questi casi si ammette una condizione meno restrittiva, che a sua volta non ammette ridondanze o anomalie pur ammettendo situazioni come quelle viste. Tale condizione si chiama terza forma normale.
Terza forma normale Si dice che una relazione r è in terza forma normale se, per ogni dipendenza funzionale X Y definita su di essa è verificata almeno una delle seguenti condizioni: X contiene una chiave K di r ogni attributo in Y è contenuto in almeno una chiave di r La terza forma normale è meno forte della forma normale di Boyce e Codd ma è sempre ottenibile.
Uno 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
Una possibile riorganizzazione 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
Decomposizione in 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
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
Nome fornitore Indirizzo Partita IVA Codice Prodotto Nome prodotto Prezzo PartitaIVA Nomefornitore Indirizzo Si suppone che ogni prodotto abbia un solo fornitore
Analisi dell entità L entità viola la terza forma normale a causa della dipendenza: PartitaIVA NomeFornitore Indirizzo Possiamo decomporre sulla base di questa dipendenza
Nome prodotto Codice Partita IVA Nome fornitore Prodotto (1,1) (0,N) Fornitura Fornitore Prezzo Indirizzo
Relatore Dipartimento (0,N) (0,N) (0,1) Tesi Studente Corso di laurea (0,N) Studente Corso di laurea Studente Relatore Relatore Dipartimento
Analisi della associazione L associazione viola la terza forma normale a causa della dipendenza: Relatore Dipartimento Possiamo decomporre sulla base di questa dipendenza
Afferenza (0,N) Dipartimento (1,1) Relatore (0,N) (0,1) Tesi Studente (0,N) Corso di laurea
Ulteriore analisi sulla base delle dipendenze La associazione Tesi è in BCNF sulla base delle dipendenze Studente CorsoDiLaurea Studente Relatore le due proprietà sono indipendenti questo suggerisce una ulteriore decomposizione
Relatore (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