Il modello relazionale

%% Tutta robba prima%%

Normalizzazione di un database

La normalizzazione serve ad eliminare la ridondanza dei dati, e ne esistono vari livelli (forme normali):

  • prima forma normale ($1^{st}$ Normal Form: 1NF)
  • seconda forma normale *($2^{nd}$ Normal Form: 2NF)
  • terza forma normale *($3^{rd}$ Normal Form: 3NF)

Il processo di normalizzazione si basa sull'idea che se una relazione contiene più concetti fra loro indipendenti, la si decompone in relazioni più piccole, in modo che:

  • Non si perdano informazioni.
  • Si conservino le dipendenze (i vincoli di integrità).

La decomposizione senza perdita consiste nel concetto per cui, se suddivido una tabella $T$ in due tabelle $T_1$ e $T_2$, bisogna conservare le dipendenze tra i dati, e la condizione $T = T_1\;join\;T_2$.

Le varie forme normali forme normali si possono descrivere nella seguente maniera:

  • Prima forma normale (1NF): una tabella è in 1NF se tutti gli attributi hanno domini atomici (non si possono ulteriormente scomporre), ed esiste una chiave primaria.
  • Seconda forma normale (2NF): una tabella è in 2NF se è in 1NF ed esistono solo dipendenze funzionali complete fra gli attributi: ogni attributo dipende dalla chiave primaria (o composta).
  • Terza forma normale (3NF): una tabella è in 3NF quando è in 2NF e tutti gli attributi non chiave dipendono dalla chiave soltanto.

Le 4NF, 5NF e 6NF vengono raramente utilizzate, perchè portano ad un'inefficienza delle modifiche al database.

%%https://en.wikipedia.org/wiki/Database_normalization %%