Est-ce que vous concevez toujours des bases de données dans au moins la troisième forme normale (3NF)? Pourquoi?Bases de données et troisième forme normale
Répondre
En général, je vise à concevoir une base de données au moins Boyce Codd/5e forme normale, sauf où je trouve de bonnes raisons de ne pas le faire. La principale raison de l'utilisation de Normal Form est d'éviter la redondance qui pourrait sinon entraîner des résultats incorrects. Un autre avantage est que Normal Form permet d'éviter les "biais" dans la conception de la base de données (la tendance à s'adapter à certains modes d'utilisation plus que d'autres), ce qui facilite la prise en charge des modifications de schéma.
Non, pas toujours.
Vous devez bien comprendre les formes normales, pour éviter de faire des erreurs stupides. Mais parfois, c'est utile, pour des raisons de commodité ou de performance. (Caching)
Je trouve qu'il est important d'éviter la duplication de données qui peut être désynchronisée. (Noms changés, ressources déplacées.) Pourtant, parfois c'est exactement ce que vous voulez. (Résumé des factures à un moment précis.)
"dportas" a un point important à propos du biais. Briser les règles de la forme normale a tendance à rendre votre code et vos données moins faciles à maintenir et plus souples.
Je voudrais au moins concevoir de cette façon (sauf si je créais un entrepôt de données qui a des règles différentes). Chaque fois que j'ai vu des gens essayer de dénormaliser dans la phase de conception initiale, ils ont créé beaucoup plus de problèmes qu'ils n'en ont résolus. Je maudis ces gens tous les jours car je suis la personne qui réussit à réparer cette ordure.
À l'époque, j'ai utilisé la modélisation ER pour l'analyse des données, puis je l'ai convertie en un modèle relationnel, puis j'ai converti le modèle relationnel en tables SQL (avec leurs index). Cela semble compliqué, mais ce n'est pas le cas. Chaque étape est simple et gérable.
Si vous effectuez la modélisation ER correctement, vous associez chaque attribut à l'entité ou à la relation correcte. Chaque entité reçoit une clé, qu'elle soit naturelle ou synthétique. La découverte de toutes les relations utiles est la partie la plus profonde de l'analyse des données.
Le modèle ER peut être utilisé comme guide pour former des relations à partir des attributs. Chaque entité obtient une relation, et chaque relation plusieurs-à-plusieurs obtient une relation, tandis que les relations plusieurs-à-un obtiennent une clé étrangère dans l'une des relations d'entité.
Un tel modèle est automatiquement en 3NF. Les départs de BCNF, 4NF et 5NF sont rares. Rendre les tables SQL basées sur les relations est simple. La conception de l'index nécessite d'anticiper le volume, la charge et les ressources, et dépend un peu du SGBD.
- 1. Traduction de dépendances fonctionnelles dans la troisième forme normale
- 2. Est-ce que la 3ème forme normale est ok pour les bases de données?
- 3. forme simple avec dialogue et jQuery UI bases de données
- 4. Forme normale disjonctive avec prédicat de plage
- 5. Bases de données et DVCS
- 6. nginx_http_push_module et bases de données
- 7. Défi !! Exemple d'une 4ème relation de forme normale valide qui peut effectuer une 5ème décomposition de forme normale
- 8. forme normale élégante disjonctif dans Django
- 9. register_shutdown_function et problème de bases de données!
- 10. NHibernate et plusieurs bases de données
- 11. Entity Framework et bases de données multilingues
- 12. bases de données relationnelles et messages multidiffusion
- 13. Django et plusieurs bases de données
- 14. Bases de données intégrables et toplink
- 15. Prism Modules et bases de données
- 16. tapestry-hibernate et 2 bases de données
- 17. Bases de données relationnelles et langages OO
- 18. Bases de données XML et ORM
- 19. Bases de données Clojure et NoSQL
- 20. Traduire une grammaire récursive droite en forme normale de Chomsky
- 21. tableView et vue normale (même objet de données)
- 22. interroger une table pas dans la 3ème forme normale
- 23. Représente la dépendance fonctionnelle de la base de données tridimensionnelle dans la 5ème forme normale
- 24. Bases de données multiniveaux
- 25. Conversion d'une expression en forme normale conjonctive avec une torsion
- 26. bases de données inactives
- 27. Script iMacro et troisième onglet
- 28. Recherche de bases de données
- 29. Entity Framework: extraction de données des bases de données de différentes bases de données
- 30. bases de données Android SQLite
Bon point sur les entrepôts de données. –