La normalizzazione è un processo di progettazione che consiste nel ristrutturare lo schema di un database relazionale per eliminare ridondanze, anomalie di inserimento, aggiornamento e cancellazione, e garantire l’integrità dei dati. Il procedimento si basa sulla teoria delle dipendenze funzionali e porta lo schema attraverso una serie di “forme normali” successive, ognuna più restrittiva della precedente.
Le Forme Normali.
Prima Forma Normale (1NF) Una relazione è in 1NF se tutti gli attributi contengono valori atomici (indivisibili) e non esistono gruppi ripetuti o attributi multivalore. Ogni cella della tabella deve contenere un unico valore.
Seconda Forma Normale (2NF) Una relazione è in 2NF se è già in 1NF e ogni attributo non-chiave dipende funzionalmente dall’intera chiave primaria e non solo da una sua parte. Questa forma è rilevante solo quando la chiave primaria è composta da più attributi.
Terza Forma Normale (3NF) Una relazione è in 3NF se è in 2NF e non esistono dipendenze transitive: nessun attributo non-chiave dipende da un altro attributo non-chiave. Tutti gli attributi devono dipendere direttamente e solo dalla chiave primaria.
Forma Normale di Boyce-Codd (BCNF) È una versione rafforzata della 3NF. Una relazione è in BCNF se, per ogni dipendenza funzionale X → Y, X è una superchiave della relazione. Elimina anomalie residue che la 3NF non copre in presenza di chiavi candidate multiple e sovrapposte.
Quarta Forma Normale (4NF) Una relazione è in 4NF se è in BCNF e non contiene dipendenze multivalore non banali: non deve esistere una situazione in cui un attributo determina, indipendentemente, due insiemi di valori distinti di altri attributi.
Quinta Forma Normale (5NF) Anche detta Project-Join Normal Form (PJNF). Una relazione è in 5NF se non può essere decomposta in relazioni più piccole senza perdita di informazione, eliminando le cosiddette dipendenze di join.
Forma Normale di Dominio-Chiave (DKNF) Forma teorica “ideale” in cui ogni vincolo sulla relazione è una conseguenza logica dei soli vincoli di dominio e di chiave. È difficilmente raggiungibile in pratica ma rappresenta il riferimento teorico ultimo.
Obiettivi del processo.
Il processo di normalizzazione mira a garantire che ogni fatto sia rappresentato una sola volta, che le relazioni siano stabili rispetto alle modifiche e che il modello sia privo di anomalie operative. Nella pratica industriale, si arriva tipicamente alla 3NF o alla BCNF, ritenute un buon compromesso tra rigore teorico e prestazioni operative.
