Quando su una tabella i valori di alcuni campi sono ripetuti, si deve scomporre la tabella in due parti. Si creano praticamente due nuove tabelle che contengono i campi di quella presa in considerazione. Le nuove tabelle devono poi essere messe in relazione tra loro.

ESEMPIO.
Si vuole tenere conto di tutti gli acquisti fatti dai clienti. Se si organizzano i dati in un’unica tabella, molte informazioni devono essere ripetute (il nome, l’indirizzo e tutti i dati del cliente per ogni ordine). La figura 6.10 visualizza la situazione.
 

 
FIG. 6.10
 

È visibile la notevole ripetizione dei dati, con grande spreco di tempo (per l’inserimento) e di memoria (hard disk e RAM).
Le situazioni di questo tipo indicano, in genere, che la tabella memorizza più di un oggetto, cioè più elementi distinti. Nella tabella 6.10 sono rappresentati le informazioni dei clienti e quelle degli ordini effettuati dai clienti stessi. La persona cliente è un oggetto, l’ordine effettuato è un altro oggetto. Si deve scomporre la tabella in due parti, che rappresentino rispettivamente questi due oggetti: una tabella Clienti e una tabella Ordini. Si devono “spartire” i campi della tabella iniziale, nei due nuovi insiemi, considerando se le informazioni riguardano uno o l’altro oggetto. La figura 6.11 visualizza la separazione delle tabelle.
 

 
FIG. 6.11
 

Queste tabelle non rispettano la prima regola, manca infatti la chiave primaria. Si deve aggiungere, in entrambe, un campo chiave primaria, figura 6.12.
 

 
FIG. 6.12
 

Le due tabelle sono in forma normale (prima e seconda), ma non è possibile sapere da chi sono stati effettuati gli ordini, manca la relazione. Come visto più volte, la relazione tra clienti e ordini è del tipo uno a molti, la tabella Clienti è il lato uno, la tabella Ordini è il lato molti. Si deve aggiungere la chiave esterna nella tabella lato molti (Ordini), il campo da aggiungere deve essere uguale al campo chiave primaria della tabella lato uno (Clienti). Quindi, si aggiunge il campo IdCliente nella tabella Ordini, il risultato finale è visualizzato nella figura 6.13.
 

 
FIG. 6.13