Normalisation vs dénormalisation
Les bases de données relationnelles sont constituées de relations (tables associées). Les tableaux sont composés de colonnes. Si les tables sont grandes (c'est-à-dire trop de colonnes dans une table), des anomalies de base de données peuvent se produire. Si les tables sont deux petites (la base de données est composée de nombreuses tables plus petites), il serait inefficace pour les requêtes. La normalisation et la dénormalisation sont deux processus utilisés pour optimiser les performances de la base de données. La normalisation minimise les redondances présentes dans les tableaux de données. La dénormalisation (inverse de la normalisation) ajoute des données redondantes ou des données de groupe.
Qu'est-ce que la normalisation??
La normalisation est un processus qui vise à minimiser les redondances présentes dans les données des bases de données relationnelles. Ce processus divisera principalement les grandes tables en petites tables avec moins de redondances (appelées «formulaires normaux»). Ces petites tables seront reliées entre elles par le biais de relations bien définies. Dans une base de données bien normalisée, toute modification ou modification des données ne nécessite la modification que d’une seule table. La première forme normale (1NF), la deuxième forme normale (2NF) et la troisième forme normale (3NF) ont été introduites par Edgar F. Codd. La forme normale Boyce-Codd (BCNF) a été introduite en 1974 par Codd et Raymond F. Boyce. Des formes normales supérieures (4NF, 5NF et 6NF) ont été définies, mais elles sont rarement utilisées.
Une table conforme à 1NF assure qu’elle représente réellement une relation (c’est-à-dire qu’elle ne contient aucun enregistrement répété) et ne contient aucun attribut à valeur relationnelle (c’est-à-dire que tous les attributs doivent avoir une valeur atomique). Pour qu'une table soit conforme à 2NF, elle doit être conforme à 1NF et tout attribut qui ne fait pas partie d'une clé candidate (c'est-à-dire des attributs non premiers) doit entièrement dépendre de l'une des clés candidates de la table. Selon la définition de Codd, une table est dite en 3NF, si et seulement si, cette table est dans la seconde forme normale (2NF) et chaque attribut de la table qui n'appartient pas à une clé candidate doit dépendre directement de chaque clé candidate de cette table. BCNF (également connu sous le nom de 3.5NF) capture certaines des anomalies qui ne sont pas traitées par le 3NF.
Qu'est-ce que la dénormalisation??
La dénormalisation est le processus inverse du processus de normalisation. La dénormalisation fonctionne en ajoutant des données redondantes ou en regroupant des données pour optimiser les performances. Bien que l'ajout de données redondantes semble contre-productif, la dénormalisation est parfois un processus très important pour surmonter certaines des lacunes du logiciel de base de données relationnelle, qui peut entraîner de lourdes pertes de performances avec les bases de données normalisées (même optimisées). En effet, la jonction de plusieurs relations (résultats de la normalisation) pour produire un résultat à une requête peut parfois être lente en fonction de la mise en œuvre physique réelle des systèmes de base de données..
Quelle est la différence entre normalisation et dénormalisation? - La normalisation et la dénormalisation sont deux processus complètement opposés. - La normalisation consiste à diviser des tables plus volumineuses en tables plus petites, réduisant ainsi les données redondantes, tandis que la dénormalisation consiste à ajouter des données redondantes afin d'optimiser les performances.. - La normalisation est effectuée pour éviter les anomalies des bases de données. - La dénormalisation est généralement effectuée pour améliorer les performances de lecture de la base de données, mais en raison des contraintes supplémentaires utilisées pour la dénormalisation, les écritures (opérations d'insertion, de mise à jour et de suppression) peuvent devenir plus lentes. Par conséquent, une base de données dénormalisée peut offrir de meilleures performances en écriture qu'une base de données normalisée.. - Il est souvent recommandé de “normaliser jusqu'à ce que ça fasse mal, de dénormaliser jusqu'à ce que ça marche”.
|