Normalizzazione
La Normalizzazione è attuata sulle basi di Dati per ottemperare ad eventuali anomalie o criticità.E' un processo con il quale si porta la base dati a soddisfare le cosiddette forme normali. L'obbiettivo minimo è quello di portare una base dati in 3a forma normale.
PRIMA FORMA NORMALE
Una tabella è in prima forma normale se e solo se ciascun attributo è definito su un dominio di valori atomici ( Ovvero non è presente più di una colonna riferita ad uno stesso attributo )Le successive forme normali mirano alla distribuzione delle informazioni su più relazioni : lo scopo è quello di ridurre i legami funzionali tra i doversi attributi di una relazione. Tali legami sono esplicitati attraverso il concetto di dipendenza funzionale.
Ma spieghiamo per bene cosa si intende per dipendenza funzionale :
"Data una relazione R(X) ed un insieme di attributi A e B non vuoti e sottoinsiemi di X si dice che B è funzionalmente dipendente da da A se ad ogni combinazione di valori di A corrisponde una sola combinazione di valori di B". E si scrive A-->B ( B dipende da A ) .
-
Una
dipendenza si dice non banale se nessun sottoinsieme
di B è anche sottoinsieme di A.
-
Il
vincolo di dipendenza funzionale generalizza il vincolo
di chiave, ovvero "Data una relazione R(X) con chiave
K esiste una dipendenza funzionale tra K e un qualsiasi
insieme di attributi di R(X)".
"Una decomposizione di una relazione R(X) è un insieme di relazioni R1,...Rn ottenute proiettando R(X) su un insieme di attributi A1,...An tali che A1 U .... U An è uguale a X".
Non sempre effettuando il join tra le relazioni si ottiene la relazione iniziale. Per identificare le relazioni con le quali si ottiene tramite join la relazione originale si introduce la definizione di lossless-join :
"Una decomposizione di R(X) in R1(A) e R2(B) si dice lossless-join se R(X) = R1(A) JOIN R2(B)".
Una decomposizione non lossless-join è detta lossy-join (decomposizione con perdita).
Condizione sufficiente affinchè una decomposizione sia senza perdita è che dati A e B sottoinsiemi di X e A U B = X. Inoltre A intersezione B = C allora C deve essere superchiave per almeno una delle relazioni R1(A) o R2(B) .
Una volta decomposta la relazione, vanno mantenute le dipendenze (conservazione delle dipendenze).
Per mantenere le dipendenze ciauscuna delle relazioni dovrebbe coinvolgere attributi che compaiono tutti in una delle tabelle decomposte.
SECONDA FORMA NORMALE
Una tabella si dice in seconda forma normale (2NF) se e solo se è in 1NF e ciascun attributo non chiave è completamente dipendente dalla chiave primaria.Se una relazione non è in seconda forma normale può presentare alcuni problemi
- anomalia di aggiornamento
- anomalia di inserimento
- anomalia di cancellazione
TERZA FORMA NORMALE
Una tabella si dice in terza forma normale (3NF) se e solo se è in 2NF e per ogni dipendenza funzionale non banale X---> A tra due insiemi di attributi X ed A è vera una delle seguenti affermazioni:- X è una superchiave
- A è menbro di una chiave
FORMA NORMALE DI BOYCE-CODD
Una tabella si dice in forma normale di Boyce-Codd se e solo se per ogni dipendenza funzionale X-->A , X è una superchiave. La forma normale di Boyce-Codd è da considerare come una restrizione della terza forma normale (infatti non prevede che il termine destro sia menbro di una chiave).- è garantita la raggiungibilità della terza forma normale
- non è garantita la raggiungibilità della forma normale di Boyce-Codd (tale difetto è associato ad una anomalia di cancellazione)