La dénormalisation est une technique d’optimisation des bases de données dans laquelle nous ajoutons des données redondantes à une ou plusieurs tables. Cela peut nous aider à éviter des jointures coûteuses dans une base de données relationnelle. Notez que la dénormalisation ne signifie pas ne pas faire de normalisation. C’est une technique d’optimisation qui est appliquée après avoir fait la normalisation.
Dans une base de données normalisée traditionnelle, nous stockons les données dans des tables logiques distinctes et tentons de minimiser les données redondantes. Nous pouvons nous efforcer d’avoir une seule copie de chaque donnée dans la base de données.
Par exemple, dans une base de données normalisée, nous pourrions avoir une table Cours et une table Enseignants. Chaque entrée dans Cours stockerait le teacherID d’un cours mais pas le teacherName. Lorsque nous avons besoin de récupérer une liste de tous les Cours avec le nom de l’enseignant, nous ferions une jointure entre ces deux tables.
D’une certaine manière, c’est génial ; si un enseignant change de nom, nous ne devons mettre à jour le nom qu’à un seul endroit.
L’inconvénient est que si les tables sont grandes, nous pouvons passer un temps inutilement long à faire des jointures sur les tables.
La dénormalisation, alors, établit un compromis différent. Dans le cadre de la dénormalisation, nous décidons que nous sommes d’accord avec une certaine redondance et un effort supplémentaire pour mettre à jour la base de données afin d’obtenir les avantages en termes d’efficacité de moins de jointures.
Pros de la dénormalisation :-
- La récupération des données est plus rapide puisque nous faisons moins de jointures
- Les requêtes pour récupérer peuvent être plus simples(et donc moins susceptibles d’avoir des bugs),
puisque nous devons regarder moins de tables.
Les inconvénients de la dénormalisation :-
- Les mises à jour et les insertions sont plus coûteuses.
- La dénormalisation peut rendre le code de mise à jour et d’insertion plus difficile à écrire.
- Les données peuvent être incohérentes . Quelle est la valeur » correcte » pour une donnée ?
- La redondance des données nécessite plus de stockage.
Dans un système qui exige l’évolutivité, comme celui de toute grande entreprise technologique, nous utilisons presque toujours des éléments des bases de données normalisées et dénormalisées.