Oracle
 sql >> Base de données >  >> RDS >> Oracle

Est-il vraiment préférable d'utiliser des tables normalisées ?

Cela dépend ... joindre des tables est intrinsèquement plus lent que d'avoir une grande table qui est "pré-jointe", c'est-à-dire dénormalisée. Cependant, en dénormalisant, vous allez créer une duplication de données et vos tables vont être plus grandes. La normalisation est considérée comme une bonne chose, car elle crée des bases de données qui peuvent répondre à "n'importe quelle" question. Si elle est correctement effectuée, vous pouvez créer une sélection pour accéder à vos données. Ce n'est pas le cas dans certaines autres formes de BD, et ce sont maintenant (pour la plupart) des non-pertinences historiques, la BD normalisée/relationnelle a gagné cette bataille.

Pour en revenir à votre question, utiliser la dénormalisation pour accélérer les choses est une technique bien acceptée. Il est normalement préférable d'exécuter votre base de données pendant un certain temps afin de savoir ce qu'il faut dénormaliser et ce qu'il faut laisser seul, et il est également courant de laisser les données sous leur forme normalisée "correcte" et d'extraire les données dans un ensemble de rapports dénormalisés. tables régulièrement. Si ce processus est effectué dans le cadre de l'exécution du rapport lui-même, les données sont également toujours à jour.

Comme exemple de sur-normalisation, j'ai vu des bases de données dans le passé où les jours de la semaine et les mois de l'année étaient extraits dans des tables séparées - les dates elles-mêmes étaient normalisées - vous pouvez aller trop loin.