Normalizarea bazelor de date este o abordare a proiectării bazelor de date care a fost introdusă de Edgar F. Codd în anii 1970. Anumite baze de date, cunoscute sub numele de baze de date relaționale, permit stocarea datelor în grupuri separate. Fiecare grup se numește în mod obișnuit tabel. Pentru a furniza informații utile, aceste grupuri sunt conectate între ele. De exemplu, elevii pot fi stocați într-un grup, iar clasele în alt grup. Pentru a arăta că un elev este înscris la o clasă, se stabilește o "relație" între un grup și celălalt. Un student ar putea avea o relație cu mai multe clase, fiecare dintre acestea fiind înscrisă la o clasă, în timp ce o clasă ar avea o relație cu mai mulți studenți.
O alternativă tradițională este "baza de date cu fișiere plate", în care toate datele sunt grupate ca într-o foaie de calcul. Problema cu bazele de date cu fișiere plate este că acestea pot avea multe spații libere și există o mulțime de informații care trebuie repetate pentru fiecare intrare. Acest lucru înseamnă că baza de date este mai mare decât trebuie să fie și că este mai probabil ca baza de date să conțină greșeli. Bazele de date relaționale, prin împărțirea datelor în grupuri, reduc șansele de erori și nu ocupă mai mult spațiu decât este necesar. Dar, pentru a funcționa, trebuie să fie bine concepute.
Normalizarea bazelor de date este o metodă de proiectare a unor baze de date relaționale bune. Există mai multe "forme normale", fiecare dintre acestea având reguli pe care baza de date ar trebui să le respecte. Codd a specificat inițial trei seturi de criterii pe care diferite baze de date trebuie să le îndeplinească: prima, a doua și a treia formă normală.
Dacă o relație (sau un "tabel de bază de date") respectă o anumită formă normală, nu este vulnerabilă la anumite modificări care vor afecta integritatea datelor. Dezavantajul îndeplinirii unui astfel de set de criterii este, de obicei, că interogarea anumitor date din baza de date va deveni mai dificilă.