2010-09-21 4 views

Répondre

5

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.

1

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.

0

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.

+0

Bon point sur les entrepôts de données. –

1

À 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.

Questions connexes