I link spiegano come normalizzare.
per la domanda sul perchè, supponiamo che le tabelle:
clienti, articoli, fature, righefatture, estratticonto (mi fermo qui)
siano in una sola tabella. Avresti:
nome, cognome, ecc… (tuti i campi di Clienti), nrfattura, datafattura, imponibile, ecc.. (tutti i dati della fattura esclusi il corpo),
articolo, descrizione, quantità, prezzounitario, iva%, ecc… (tutti i dati relativi al corpo fattura), pagato, datapagamento, modalitàdipagamento…
se il corpo fattura ha 25 articoli ripeti per 25 volte tutti i valori per gli altri campi.
oltre ad uno spreco di spazio di archiviazione devi sempre scrivere i valori a mano (non hai una tabella clienti dove attingere ai dati, non hai una tabella articoli dove attingere ai dati, e mi fermo qui.
se invece metti una lista clienti, una lista articoli, una lista fatture, ecc… oltre a non replicare i dati per ogni record, hai i dati ordinati e uno spazio di archiviazione ridotto. in piu' se mi serve sapere quanti clienti ho cerco su una tabella da 30 record, piuttosto che filtrare una tabella da milioni di record. (pensa se ogni cliente ha 30 fatture da 40 articoli).