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