Tutti i campi, diversi dalla chiave primaria, devono dipendere solo dal valore della chiave primaria. I campi delle tabelle non devono dipendere da altri campi, esclusa la chiave primaria. Questo garantisce che la chiave primaria rappresenti in modo univoco ogni record della tabella e che non si possano fare calcoli sui campi delle tabelle.
ESEMPIO. Ordini.
La figura 6.08 visualizza una tabella Ordini, nella prima forma normale: la
tabella ha una chiave primaria, IdOrdine e non ci sono campi che contengono più
di un valore.
FIG. 6.08
Il problema è che il campo
TotaleFattura dipende dai campi Quantità e PrezzoUnitario. Se venisse modificato
il valore del campo Quantità, dovrebbe essere modificato anche il valore del
rispettivo campo TotaleFattura. La tabella, quindi, non è nella seconda forma
normale. Il campo TotaleFattura deve essere eliminato dalla tabella, per trovare
il totale della fattura si devono utilizzare le query. Le tabelle non possono
contenere valori calcolati.
La figura 6.09 visualizza la tabella nella seconda forma normale.
FIG. 6.09
ESEMPIO. Età.
Un altro campo che non corrisponde alla seconda forma normale è il campo età, in
quanto dipende dalla data di nascita e dalla data corrente. Il campo età deve
essere eliminato dalla maggior parte delle tabelle.
Esistono
situazioni in cui i campi età e TotaleFattura possono essere utilizzati nelle
tabelle: quando questi campi rappresentano una situazione statica, che non si
modifica nel tempo. Per esempio se il campo età contiene l’informazione relativa
all’età delle persone al 31/12/2010, questo campo non dipende da altri valori,
quindi può esistere e le tabelle si trovano nella seconda forma normale.