1NF vs 2NF vs 3NF

La normalizzazione è un processo che viene eseguito per ridurre al minimo le ridondanze presenti nei dati nei database relazionali. Questo processo principalmente dividerà le tabelle di grandi dimensioni in tabelle più piccole con meno ridondanze. Queste tabelle più piccole saranno correlate tra loro attraverso relazioni ben definite. In un database ben normalizzato, qualsiasi alterazione o modifica dei dati richiederà la modifica di una sola tabella. La prima forma normale (1NF), la seconda forma normale (2NF) e la terza forma normale (3NF) sono state introdotte da Edgar F. Codd, che è anche l'inventore del modello relazionale e del concetto di normalizzazione.

Che cos'è 1NF?

1NF è il primo modulo normale, che fornisce il set minimo di requisiti per la normalizzazione di un database relazionale. Una tabella conforme a 1NF garantisce che rappresenta effettivamente una relazione (ovvero non contiene alcun record che si ripete), ma non esiste una definizione universalmente accettata per 1NF. Una proprietà importante è che una tabella conforme a 1NF non può contenere alcun attributo che abbia un valore relazionale (vale a dire che tutti gli attributi dovrebbero avere valori atomici).

Che cos'è 2NF?

2NF è la seconda forma normale utilizzata nei database relazionali. Affinché una tabella sia conforme a 2NF, deve essere rispettata 1NF e qualsiasi attributo che non fa parte di una chiave candidata (ovvero attributi non primi) dovrebbe dipendere completamente da qualsiasi chiave candidata nella tabella.

Che cos'è 3NF?

3NF è la terza forma normale utilizzata nella normalizzazione del database relazionale. Secondo la definizione del Codd, si dice che una tabella è in 3NF, se e solo se, quella tabella è nella seconda forma normale (2NF) e ogni attributo nella tabella che non appartiene a una chiave candidata, dovrebbe dipendere direttamente su ogni chiave candidata di quella tabella. Nel 1982 Carlo Zaniolo ha prodotto una definizione espressa diversamente per 3NF. Le tabelle conformi al 3NF generalmente non contengono anomalie che si verificano durante l'inserimento, l'eliminazione o l'aggiornamento dei record nella tabella.

Qual è la differenza tra 1NF e 2NF e 3NF?

1NF, 2NF e 3NF sono forme normali utilizzate nei database relazionali per ridurre al minimo le ridondanze nelle tabelle. Il 3NF è considerato come una forma normale più forte rispetto al 2NF ed è considerato come una forma normale più forte rispetto a 1NF. Pertanto, in generale, per ottenere una tabella conforme al modulo 3NF sarà necessario scomporre una tabella che si trova nel 2NF. Allo stesso modo, per ottenere una tabella conforme al 2NF sarà necessario scomporre una tabella che si trova nel 1NF. Tuttavia, se una tabella conforme a 1NF contiene chiavi candidate costituite solo da un singolo attributo (ovvero chiavi candidate non composite), tale tabella si conformerebbe automaticamente a 2NF. La decomposizione delle tabelle comporterà ulteriori operazioni di join (o prodotti cartesiani) durante l'esecuzione di query. Ciò aumenterà il tempo di calcolo. D'altra parte, le tabelle che rispettano forme normali più forti avrebbero meno ridondanze rispetto alle tabelle che rispettano solo forme normali più deboli.