Normalizzazione (informatica)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

In informatica la normalizzazione è un procedimento volto alla mitigazione di una serie di difetti sistematici di una base di dati relazionale.

Esistono vari livelli di normalizzazione, via via più stringenti, che se applicati correttamente portano la base di dati in una delle cosiddette "forme normali". Ovvero uno stato in cui risultano rispettati una precisa serie di vincoli di integrità, che garantiscono l'assenza, dimostrabile formalmente, di determinate classi di problemi.

Forme normali[modifica | modifica wikitesto]

Si può dire che una base di dati si trova in una data forma normale quando tutte le relazioni ivi contenute soddisfano i requisiti della forma normale, ergo esse stesse si trovano in forma normale. Di seguito vengono indicate le definizioni delle forme normali per le relazioni.

Prima forma normale (1NF)

Si dice che una una relazione è in 1NF se e solo se:

  • ogni attributo è definito su un dominio con valori atomici, ovvero indivisibili;
  • ogni istanza di attributo contiene un singolo valore del dominio di riferimento.
Seconda forma normale (2NF)

Si dice che una relazione è in 2NF se e solo se:

  • soddisfa i requisiti della 1NF;
  • tutti gli attributi non-chiave presentano una dipendenza funzionale dalla chiave nella sua interezza, ovvero non dipendono solo da una parte della chiave.
Terza forma normale (3NF)

Si dice che una relazione è in 3NF se e solo se:

  • soddisfa i requisiti della 2NF;
  • tutti gli attributi non-chiave dipendono soltanto dalla chiave, ovvero non esistono dipendenze funzionali tra attributi non-chiave.
Forma normale di Boyce e Codd (BCNF)

Si dice che una relazione è in BCNF se e solo se:

  • soddisfa i requisiti della 3NF;
  • per ogni dipendenza funzionale non banale , è una superchiave.

Limiti di 4NF e 5NF[modifica | modifica wikitesto]

La quarta e quinta forma normale, in realtà, raramente vengono utilizzate, in quanto ad un incremento di rigore nell'eliminazione della ridondanza corrisponde un degrado delle prestazioni (query di selezione o, peggio, modifica dei dati, richiedono molto più tempo per l'esecuzione).

Problemi degli schemi non-normali[modifica | modifica wikitesto]

Metodologie di normalizzazione[modifica | modifica wikitesto]

Decomposizione delle relazioni[modifica | modifica wikitesto]

Questo processo si fonda su un semplice criterio: se una relazione presenta più concetti tra loro indipendenti, la si decompone in relazioni più piccole, una per ogni concetto. Questo tipo di processo non è sempre applicabile in tutte le tabelle, dato che in alcuni casi potrebbe comportare una perdita d'informazioni.

Una decomposizione dovrebbe sempre soddisfare due proprietà:

  • la decomposizione senza perdita, che garantisce la ricostruzione delle informazioni originarie
  • la conservazione delle dipendenze, che garantisce il mantenimento dei vincoli di integrità originari.

Per "decomposizione senza perdita" si intende l'atto della manipolazione di una relazione R volta ad ottenere (eventualmente) due o più relazioni (ad esempio R1 e R2) che oltre a conservare le dipendenze funzionali verificano anche la seguente condizione:

Teorema: Sia data una relazione R(X), con X insieme degli attributi di R, e due sottoinsiemi A, B di X tali che A unito B coincide con X; siano inoltre R1 e R2 due relazioni rispettivamente su A e su B. Allora è condizione sufficiente affinché la decomposizione su A e B sia senza perdita se, detto C l'insieme intersezione tra A e B, è superchiave per R1(A) o R2(B).

Bibliografia[modifica | modifica wikitesto]

  • Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone, Basi di dati, 5ª ed., Milano, McGraw-Hill, 2018, ISBN 978-88-386-9445-5.

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica