Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette...

12
Normalizzazione

Transcript of Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette...

Page 1: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Normalizzazione

Page 2: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Perché la normalizzazione La normalizzazione è un procedimento che

permette dieliminare la ridondanza. La ridondanza dei dati ,al di là dello spreco di

memoria causato dalla memorizzazione multipla della stessa informazione, può portare il database in una situazione di incoerenza.

Si ha incoerenza quando lo stesso campo ha valori diversi in tabelle diverse. Ciò si può verificare quando le tabelle non sono aggiornate o quando l'aggiornamento non è stato effettuato correttamente.

Page 3: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Forme normali Esistono vari livelli di normalizzazione

(forme normali) che certificano la qualità dello schema del database.

Page 4: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Criterio di normalizzazione Se una relazione presenta più concetti tra

loro indipendenti, la si decompone in relazioni più piccole, una per ogni concetto.

Page 5: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Dipendenza funzionale La dipendenza funzionale è un particolare vincolo di

integrità che descrive legami di tipo funzionale tra gli attributi di una relazione.

Quando un attributo a determina un altro attributo b possiamo dire che esiste una dipendenza funzionale tra a e b.

Definizione: Data una relazione X e due sottoinsiemi di attributi Y e Z di X, diremo che esiste una dipendenza funzionale tra Y e Z se per ogni coppia di tuple t1 e t2 aventi gli stessi valori sugli attributi Y, risulta che t1 e t2 hanno gli stessi valori anche sugli attributi Z.

Page 6: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Prima forma normale (1NF) Una base dati è in 1NF (prima forma

normale) se e solo se:◦ non presenta attributi multipli ◦ esiste una chiave primaria (esiste un insieme di

attributi, che identifica in modo univoco ogni tupla della relazione)

Page 7: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

1NF (esempio da wikipedia) Relazione non in 1NF Relazione in 1NF

Page 8: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Seconda forma normale (2NF) Una relazione è in 2NF (seconda forma

normale) quando è in 1NF e tutti i campi non chiave dipendono funzionalmente dall'intera chiave composta e non da una parte di essa.

La seconda forma normale elimina la dipendenza parziale degli attributi dalla chiave e riguarda il caso di relazioni con chiavi composte, cioè formate da più attributi.

Page 9: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

2NF (esempio)

la chiave è composta, in quanto il solo codice non basta per identificare la merce che può essere presente in magazzini diversi.

l’indirizzo del magazzino dipende solo dall’attributo Magazzino, quindi l’attributo “LocalitàMagazzino” dipende solo da una parte della chiave

Codice Magazzino Quantità LocalitàMagazzino

Page 10: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Eliminazione dipendenza funzionale (2NF) Nell’esempio viene

creata una nuova relazione che ha come chiave il nome del magazzino e come attributo la località.

Il campo LocalitàMagazzino viene eliminato dalla relazione di partenza

Codice Magazzino Quantità

Magazzino LocalitàMagazzino

Page 11: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

Terza forma normale (3NF) Una relazione si dice in terza forma normale

(3FN) quando è in seconda forma normale e tutti gli attributi non-chiave dipendono dalla chiave soltanto, ossia non esistono attributi che dipendono da altri attributi non-chiave.

Page 12: Normalizzazione. Perché la normalizzazione La normalizzazione è un procedimento che permette dieliminare la ridondanza. La ridondanza dei dati,al di là

3NF (esempio)CodImpiegato Nome Reparto CapoReparto

1 Verdi Vendite Rossi

2 Bianchi Vendite Rossi

Nell’esempio il campo CapoReparto dipende funzionalmente dal campo non-chiave Reparto

La soluzione è quella di scomporre in due relazioni eliminando il campo che ha dipendena funzionale dalla relazione di partenza