0% ont trouvé ce document utile (0 vote)
19 vues9 pages

Dénormalisation des données en bases

Ce document décrit les différentes façons de dénormaliser une base de données relationnelle normalisée, notamment par le partitionnement horizontal et vertical des tables, la fusion de tables, et la dénormalisation de colonnes. Il souligne l'importance d'analyser les besoins en termes de performances et d'accès aux données avant de dénormaliser, et de bien identifier les éléments dénormalisés.

Transféré par

Claude Ondobo
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues9 pages

Dénormalisation des données en bases

Ce document décrit les différentes façons de dénormaliser une base de données relationnelle normalisée, notamment par le partitionnement horizontal et vertical des tables, la fusion de tables, et la dénormalisation de colonnes. Il souligne l'importance d'analyser les besoins en termes de performances et d'accès aux données avant de dénormaliser, et de bien identifier les éléments dénormalisés.

Transféré par

Claude Ondobo
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Dénormalisation de tables et de colonnes

La normalisation de base de données consiste à éliminer la redondance et les dépendances incohérentes entre les tables. Bien que la normalisation soit le plus
souvent considérée comme le but de la modélisation de base de données, la dénormalisation, c'est-à-dire la duplication délibérée de certaines données afin
d'accélérer l'extraction des données, peut s'avérer utile dans certains cas.
PowerAMC prend en charge la dénormalisation de différentes façons :
 Partitionnement horizontal - divise une table en plusieurs tables contenant les mêmes colonnes, mais moins de lignes.
 Partitionnement vertical - divise une table en plusieurs tables contenant le même nombre de lignes, mais moins de colonnes.
 Fusion de tables - fusionne des tables afin d'éliminer la jointure entre elles.
 Dénormalisation de colonne - répète une colonne dans plusieurs tables afin d'éviter d'avoir à créer des jointures entre les tables.
Le partitionnement horizontal et vertical implique des compromis en termes de performances et de complexité. Bien qu'ils puissent améliorer les temps de réponse et
accélérer les opérations de sauvegarde et de reprise, ils requièrent des jointures et unions supplémentaires afin d'extraire des données de plusieurs tables, des
requêtes plus complexes pour déterminer quelle table contient des données demandées, et des métadonnées supplémentaires afin de décrire la table partitionnée. La
dénormalisation de colonne peut simplifier les requêtes mais requiert plus de maintenance et d'espace disque dans la mesure où certaines données sont dupliquées.
Lorsque vous devez évaluer la pertinence d'une dénormalisation, vous devez analyser vos besoins dans le domaine de l'accès aux données par les applications dans
votre environnement ainsi que leurs performances. Le plus souvent, d'éventuels problèmes de performances peuvent être résolus par une politique d'indexation
judicieuse et l'emploi d'autres solutions que la dénormalisation. La dénormalisation est appropriée dès lors que :
 Des requêtes critiques reposent sur des données provenant de plusieurs tables.
 De nombreux calculs doivent être effectués sur les colonnes avant que les requêtes ne reçoivent une réponse.
 Les tables doivent être accessibles de différentes façons à différents types d'utilisateurs simultanément.
 Certaines colonnes sont interrogées très fréquemment.

 Partitions horizontales
Le partitionnement horizontal consiste à segmenter une table en plusieurs tables contenant chacune un sous-ensemble des lignes et les mêmes colonnes
afin d'optimiser la recherche des données. Vous pouvez utiliser n'importe quelle colonne, y compris des colonnes de clé primaire, comme critère de
partitionnement.

 Partitions verticales
Le partitionnement vertical consiste à segmenter une table en plusieurs tables contenant chacune un sous-ensemble des colonnes et le même nombre de
lignes que la table partitionnée. Les tables de partition ont la même clé primaire.
 Fusions de tables
La fusion de tables consiste à combiner plusieurs tables en une seule afin d'éliminer des jointures et d'améliorer les performances des requêtes. Vous
pouvez fusionner des tables liées entre elles par une référence ou bien des tables qui ont des clés primaires identiques.

 Dénormalisation de colonnes
La dénormalisation de colonne consiste à répliquer des colonnes d'une table dans une autre afin de réduire le nombre de jointures nécessaires pour les
requêtes fréquemment appelées. Si elle permet d'obtenir de meilleures performances, la dénormalisation de colonnes implique aussi plus de maintenance
et d'espace disque dans la mesure où les données des colonnes répliquées sont stockées deux fois.

 Propriétés d'une dénormalisation


Une transformation de dénormalisation est automatiquement créée lorsque vous utilisez une table de partitionnement en utilisant l'Assistant de
partitionnement horizontal ou vertical ou que vous fusionnez des tables à l'aide de l'Assistant de fusion de tables. Pour accéder à la feuille de propriétés de
cet objet, sélectionnez Modèle > Transformations pour afficher la boîte de dialogue Liste des transformations, sélectionnez la dénormalisation appropriée,
puis cliquez sur l'outil Propriétés.

 Suppression de partitionnements et de fusions de tables


Vous pouvez supprimer des partitionnements ou des fusions de tables, ou bien retirer les tables associées.

Sujet parent : Tables (MPD)


Pourquoi dénormaliser un
modèle relationnel normalisé ?
Un modèle de données relationnel sans redondance est indispensable pour garantir la justesse et la qualité des données. En certaines
circonstances, un modèle normalisé peut contraindre les développeurs et les utilisateurs.
Au niveau de l’utilisateur, un modèle de données logique relationnel sans redondances, de par la multitude de relations à établir entre tables, peut
nécessiter un temps de traitement conséquent et entraîner des temps d’attente insupportables.

Au niveau du développeur, un modèle de données logique relationnel sans redondances, toujours de par la multitude de relations à établir entre
tables, peut engendrer une complication et un temps de développement conséquent.
Pour résoudre ces deux contraintes, nous pouvons appliquer le principe inverse de la normalisation, que nous nommons dénormalisation.
Toutefois, et ceci est essentiel, nous nous devons de gérer et d’identifier clairement les éléments dénormalisés de notre structure de données
dans le but de continuer à garantir la qualité des données de nos systèmes d’information.

Un temps d’attente trop long n’est pas forcément réduit en recourant à la dénormalisation. Souvent, de multiples autres raisons en sont la cause
comme, par exemple, l’absence d’index sur les clés étrangères. Avant de recourir à la dénormalisation et à la mise en place de son traitement, il
est prudent de faire une simulation pour nous assurer que nos hypothèses soient correctes.

Comment dénormaliser un modèle de données relationnel normalisé ?


Conception
de SII
 Conception de SII
o Livres
o Articles
o Comment ?
 Réaliser MCD
 Réaliser MLD
 Réaliser MLD-R
 Comment dénormaliser un modèle de données relationnel normalisé ?
 Comment normaliser un modèle de données relationnel ?
 Transformer un MCD en un MLD-R
 Transformer un MLD-R en un MPD-R
o Différences
o Définitions initiales
o Définitions
o Pourquoi ?
o Qu'est-ce que c'est ?
o Qualité
o Quand ?
o Travaux de recherche
 Contact LinkedIn
 Formulaire de contact
 Bibliographie
Comment dénormaliser un
modèle de données relationnel
normalisé ?
La dénormalisation consiste à ajouter dans le modèle logique de données relationnel (MLD-R) des colonnes de tables qui ne proviennent pas de la
transformation du MCD (ou de l'analyse métier en cas de développement rapide) mais qui résultent de traitements ou calculs effectués sur les
colonnes de tables existantes. Ces éléments ne sont jamais saisis par un formulaire ; ils doivent toujours être en lecture seule.

A notre sens, 2 règles doivent impérativement être respectées lors de la création d’éléments dénormalisés :

 Ils doivent être clairement identifiés, ce qui peut être fait en recourant à un préfixe devant le nom
de colonne comme Den pour dénormalisé, Dupl pour dupliqué ou encore Red pour redondant.
Cette identification est indispensable pour signifier aux développeurs que ces éléments sont issus
de calculs et ne doivent jamais être saisis par un utilisateur.
 Ils doivent toujours refléter exactement le résultat que l’on obtiendrait en effectuant le traitement
ou le calcul.

Vous aimerez peut-être aussi