Warum muss man eine Datenbank normalisieren?
Muss man nicht, aber es erleichtert das Leben wenn man auf dieser Datenbank entwickelt.
Der Wikipediaartikel dazu ist recht gut geschrieben und hat bei den einzelnen NFs auch immer den praktischen Nutzen angeführt.
Normalisierung (Datenbank) – Wikipedia
Bis zur wievielten NF man geht ist Ermessenssache und es gibt Datenmodelle bei denen die 5NF einfach dadurch erreicht wird, dass 4NF und 5NF per se nicht verletzt werden können.
Meiner Meinung nach ist es den zusätzlichen Aufwand wert in der Nodellierung zumindest bis 3NF zu gehen. Zumindest wenn man länger auf der DB arbeiten will. Geschickte Modellierung sorgt dafür, dass manche Fehler (z.B. Updateanomalien) nicht vorkommen können und das ist meisten billiger als solche Fehler in der Applikation zu verhindern. Und glauben sie mir, wenn es technisch die Möglichkeit gibt einen Fehler zu machen und ein Projekt lang genug lebt, dann wird sich jemand finden der diesen Fehler macht (Murphys Law gilt auch in der IT).