Normalisierung wird absolut in der realen Welt verwendet ... und hoffentlich wissen Sie, dass 3NF nur die dritte von ... was ist jetzt, 8? Aber 3NF sollte ein einfaches Ziel sein.
Allerdings ... würde ich sagen, dass es so ein Tool nicht geben könnte.
Normalisierung ist technisch ein Attribut jeder Tabelle. Innerhalb einer bestimmten Datenbank können verschiedene Tabellen unterschiedliche Normalisierungsebenen aufweisen.
Jede Tabelle repräsentiert Fakten ... Fakten über Instanzen einer bestimmten Art von Sache (Person, Konto, Bestellung, Versand, Artikel, Ort), einschließlich manchmal Fremdschlüssel, die Sie zu anderen Arten von Fakten über diese Sache führen.
Die Normalisierung hat mit der Genauigkeit und Effizienz der Darstellung von Fakten in den Tabellen sowie mit der Fähigkeit des Tabellenentwurfs zu tun, mehrdeutige und redundante Datenmuster zu vermeiden.
Daher ist ein Verständnis der tatsächlichen Gegebenheiten erforderlich, das außerhalb des Anwendungsbereichs automatisierter Tools liegt.
Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?
In einer Welt, in der alle Ausbilder alle Fächer unterrichteten und jeder Schüler von jedem Ausbilder eine beliebige Kombination, jedoch nicht mehr als einen Kurs zu jedem Fach belegen konnte, könnte man sagen, dass diese Tabelle in 3NF vorliegt. In der Realität ist es absurd, 3NF für diesen Tisch zu beanspruchen.
Um zu verstehen, dass dies nicht in 3NF enthalten ist, muss man die Natur der Fakten verstehen, die es darstellt. In unserer Realität wird diese Tabelle nicht 3NF sein, da (unter anderem) das Fach und der Ausbilder auf eine Weise miteinander verbunden sind, die nichts mit dem Schüler zu tun hat. Wenn wir Kurse haben, in denen die Dozenten Fächer unterrichten, die an anderer Stelle in unserer Datenbank gespeichert sind, warum sollten wir dann beide Werte hier anstelle eines Fremdschlüssels aus der anderen Tabelle kopieren, der angibt, dass der Student für den Kurs angemeldet war? Wenn der Ausbilder ersetzt wird, müssen wir mehrere Datensätze an mehreren Stellen ändern.
Je normaler eine Datenbank ist, desto stärker stimmt sie mit der realen Welt und mit sich selbst überein, und desto schwieriger ist es, dass die Fakten der Datenbank versehentlich falsch sind. Datenbankdesign ist eine Kunst, aber definitiv auch eine Wissenschaft.
Auch wenn ich nicht alles, was er schreibt, auf Augenhöhe sehe, würde ich Chris Dates Buch " Database Design and Relational Theory: Normal Forms" und "All That Jazz" empfehlen, in dem die zugrunde liegende Theorie des relationalen Modells bis ins kleinste Detail erläutert wird.