Différence entre la normalisation et la dénormalisation

Différence entre la normalisation et la dénormalisation
Différence entre la normalisation et la dénormalisation

Vidéo: Différence entre la normalisation et la dénormalisation

Vidéo: Différence entre la normalisation et la dénormalisation
Vidéo: iOS 5 vs iOS 4.3.3 Speed Test 2024, Novembre
Anonim

Normalisation vs Dénormalisation

Les bases de données relationnelles sont constituées de relations (tables liées). Les tableaux sont constitués de colonnes. Si les tables sont deux 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 (c'est-à-dire que la base de données est composée de nombreuses tables plus petites), l'interrogation serait inefficace. 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 tables 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 est effectué pour minimiser les redondances présentes dans les données des bases de données relationnelles. Ce processus divisera principalement les grandes tables en tables plus petites avec moins de redondances (appelées "Formes normales"). Ces petites tables seront liées les unes aux autres par des relations bien définies. Dans une base de données bien normalisée, toute altération ou modification des données nécessitera la modification 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 de 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 garantit qu'elle représente réellement une relation (c'est-à-dire qu'elle ne contient aucun enregistrement qui se répète) et ne contient aucun attribut à valeur relationnelle (c'est-à-dire.e. tous les attributs doivent avoir des valeurs atomiques). 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 les 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 deuxième 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. Même si 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 peuvent entraîner de lourdes pénalités de performance avec des bases de données normalisées (même réglées pour des performances plus élevées). En effet, joindre plusieurs relations (qui sont des résultats de normalisation) pour produire un résultat à une requête peut parfois être lent en fonction de l'implémentation physique réelle des systèmes de base de données.

Quelle est la différence entre la normalisation et la dénormalisation ?

– La normalisation et la dénormalisation sont deux processus complètement opposés.

– La normalisation est le processus consistant à diviser des tables plus grandes en plus petites en réduisant les données redondantes, tandis que la dénormalisation est le processus consistant à ajouter des données redondantes pour 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 (c'est-à-dire les 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 moins bonnes performances en écriture qu'une base de données normalisée.

– Il est souvent recommandé de "normaliser jusqu'à ce que ça fasse mal, dénormaliser jusqu'à ce que ça marche".

Conseillé: