La normalisation est absolument utilisée dans le monde réel ... et j'espère que vous savez que 3NF n'est que le troisième de ... qu'est-ce qui est maintenant, 8? Mais 3NF devrait être une cible facile.
Cependant ... j'oserais dire qu'il ne pourrait pas y avoir un tel outil.
La normalisation, techniquement, est un attribut de chaque table. Dans une base de données donnée, différentes tables peuvent avoir différents niveaux de normalisation.
Chaque tableau représente des faits ... des faits sur les instances d'un certain type de chose (personne, compte, commande, expédition, article, emplacement), y compris, parfois, des clés étrangères qui vous mènent à d'autres types de faits sur cette chose.
La normalisation a trait à la précision et à l'efficacité de la représentation des faits dans les tableaux ainsi qu'à la capacité de la conception des tableaux à éviter les modèles de données ambigus et redondants.
Ainsi, une compréhension des faits réels est nécessaire ... ce qui est hors de la portée des outils automatisés.
Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?
Dans un monde où tous les instructeurs enseignaient toutes les matières et chaque étudiant pouvait suivre n'importe quelle combinaison mais pas plus d'un cours sur chaque matière de chaque instructeur, ce tableau pourrait en effet être considéré comme étant en 3NF. Dans le monde réel, réclamer 3NF pour ce tableau est absurde.
Pour comprendre que ce n'est pas dans 3NF, il faut comprendre la nature des faits qu'il représente. Dans notre réalité, ce tableau ne va pas être 3NF car (entre autres raisons) le sujet et l'instructeur sont associés ensemble d'une manière qui n'a rien à voir avec l'élève. Si nous avons des cours où les instructeurs enseignent des sujets stockés ailleurs dans notre base de données, pourquoi devrions-nous copier les deux valeurs ici au lieu d'une clé étrangère de l'autre table indiquant que l'étudiant était inscrit au cours? Si l'instructeur est remplacé, nous devons modifier plusieurs enregistrements à plusieurs endroits.
Plus une base de données est normalisée, plus elle est intrinsèquement cohérente avec le monde réel et avec elle-même, et plus il est difficile pour les faits de la base de données d'être faux par inadvertance. La conception de bases de données est un art, mais c'est certainement aussi une science.
Même si je ne vois pas tout ce qu'il écrit, je recommanderais le livre de Chris Date, Database Design and Relational Theory: Normal Forms and All That Jazz, qui donne des détails atroces sur la théorie sous-jacente du modèle relationnel.