Etape 3 : Identification des dimensions

Une fois que vous avez déterminé le grain du modèle, vous devez identifier les dimensions correspondantes. Vous pouvez créer des colonnes, des hiérarchies et des cas pour générer un schéma en flocon.
Les métadonnées suivantes sont collectées lorsque vous identifiez des tables de dimensions :
Pour définir complètement les dimensions du modèle dimensionnel, procédez comme suit :
  1. Identifiez les dimensions correspondant au grain du modèle.
  2. Identifiez les colonnes dimensionnelles et les hiérarchies des dimensions.
  3. Si vous créez des dimensions d'heure et de date, définissez leur granularité.
  4. Identifiez les dimensions à variation lente et leur mode de traitement.
  5. Identifiez les dimensions à placer dans un schéma en flocon.

Identification des dimensions

Identifiez les dimensions correspondant au grain du modèle.

Les tables de dimensions contiennent des colonnes qui décrivent les enregistrements de fait de la table de faits. Certaines de ces colonnes fournissent des informations de description. D'autres colonnes indiquent comment les données de la table de faits sont récapitulées pour fournir des informations utiles. Les tables de dimensions contiennent des hiérarchies qui permettent de récapituler les données. Les tables de dimensions sont des tables de consultation plus petites et dénormalisées qui contiennent des colonnes descriptives que vous référencez lorsque vous définissez des requêtes.

Pour plus d'informations sur les tables de dimensions, voir Tables et entités de dimensions.

Pour identifier des dimensions, procédez comme suit :
  1. Utilisez la définition du grain pour identifier les dimensions possibles.
  2. Répertoriez toutes les dimensions associées à ce grain. Définissez le niveau de détail à inclure dans cette dimension.
  3. Créez des clés de substitution pour les clés primaires des dimensions. Pour plus d'informations sur les clés de substitution, voir Clés de substitution.

Identification des dimensions partagées

Identifiez les dimensions partagées disponibles au lieu de recréer des dimensions. Déterminez si une dimension utilisée figure dans l'entrepôt de données de l'entreprise ou dans le modèle dimensionnel. Pour plus d'informations sur les dimensions partagées, voir Dimensions partagées.
Pour identifier une dimension partagée, procédez comme suit :
  1. Déterminez si une dimension existe. Si la dimension existe, vous devez l'utiliser. Dans ce cas, vous ne devez pas identifier les attributs dimensionnels de cette dimension. Partagez une dimension avec une dimension existante même si la dimension partagée contient uniquement un sous-ensemble d'attributs de la dimension principale.
  2. Si la dimension n'existe pas, créez une dimension utilisée dans l'ensemble de l'entreprise. Si le modèle dimensionnel requiert une dimension qui n'existe pas, concevez une nouvelle dimension. Lorsque vous concevez cette dimension, collaborez avec les experts pour déterminer comment ils envisagent de l'utiliser.

Identification des colonnes dimensionnelles et des hiérarchies

Après avoir identifié les dimensions, remplissez-les de colonnes. Utilisez les colonnes de description pour définir les critères de description pour les requêtes.

Lorsque vous concevez des dimensions, prenez en considération les éléments suivants :
Conserver la clé système source
Utilisez une entrée distincte dans la table de dimensions pour conserver la clé du système source naturelle de l'entité utilisée dans le système source.
Utiliser des clés de substitution
Utilisez une clé de substitution pour la clé primaire d'une dimension. Vous n'analysez pas la clé de substitution. Pour plus d'informations sur les clés de substitution, voir Clés de substitution.
Créer des colonnes de description uniques dans le modèle

Les colonnes d'une dimension reflètent les zones d'intérêt potentielles que vous pouvez utiliser pour cumuler des données, créer des contraintes et signaler des ruptures.

Créez des colonnes descriptives et faciles à comprendre.

Définissez des colonnes qui peuvent contenir une valeur NULL lorsqu'une colonne ne s'applique à un élément spécifique ou que sa valeur est inconnue.

Définissez des noms de colonne uniques au sein du modèle. Si des noms en double figurent dans des tables de dimensions différentes, créez une distinction. Par exemple, si vous disposez de plusieurs colonnes nommées Code du type d'adresse, renommez une colonne Code du type d'adresse du bénéficiaire et une autre colonne Code du type d'adresse Premium.

Documentez correctement toutes les colonnes.

Traitement des codes
Si vous utilisez des codes dans la dimension, fournissez la documentation du code. Par exemple, si vous identifiez des filiales à l'aide d'un code représentant un nom de filiale, incluez le code et le nom.

Une fois que vous avez défini les colonnes, vous pouvez définir les hiérarchies de la dimension. Une hiérarchie est une série de relations "plusieurs à un" définie en cascade. Elle contient différents niveaux qui correspondent chacun à un attribut de dimension. Pour plus d'informations sur les hiérarchies, voir Hiérarchies.

Identification de la granularité des dimensions de date et d'heure

Identifiez la granularité des dimensions de date et d'heure. Les dimensions de date et d'heure permettent de déterminer la granularité du modèle dimensionnel global et le niveau des informations stockées dans le modèle. Si vous définissez un grain incorrect dans la dimension de date ou d'heure, vous risquez d'omettre des dimensions importantes. Par exemple, si vous concevez un modèle dimensionnel pour un système de gestion des commandes et définissez le grain Trimestre pour une dimension de date, vous risquez de ne pas avoir accès à de nombreuses autres dimensions (telles que les dimensions Heure et Employé). Vous pouvez inclure ces autres dimensions si le modèle définit le grain de la dimension Date au niveau du jour.
Dimension de date
Comme tous les modèles dimensionnels sont basés sur des unités de temps, l'ensemble des magasins de données possèdent une dimension de date. Par exemple, vous souhaitez connaître les performances de votre entreprise sur une période donnée. Un modèle dimensionnel peut inclure plusieurs dimensions de date.
La dimension de date ne comporte généralement pas de système source OLTP connecté à la dimension. Vous pouvez développer la dimension de date avant de concevoir le modèle dimensionnel. Pour créer une dimension de date, procédez comme suit :
  1. Identifiez toutes les colonnes dont vous avez besoin.
  2. Utilisez des instructions SQL pour remplir la table de dimensions des colonnes, par exemple Date, Jour, Mois et Année. Vous pouvez être amené à entrer manuellement les données pour des colonnes spéciales. Par exemple, si vous effectuez le suivi des jours non travaillés (comme les jours fériés), vous devez entrer manuellement Noël ou Jour de l'an. Vous devez également entrer manuellement des dates, telles que la date, le mois, le trimestre et les années.
Les données de date sont souvent stockées dans une dimension de date distincte (au lieu d'une colonne Date d'une table de faits) pour deux raisons :
  • Il y a plusieurs attributs de date que les fonctions de date SQL ne prennent pas en charge. Ces fonctions comprennent les périodes fiscales, les jours fériés, les saisons, les jours de la semaine, les week-ends et les événements nationaux. Lorsque vous créez une dimension de date, l'entreprise peut examiner les indicateurs de performances de son activité via plusieurs attributs fiscaux et attributs de date. Les indicateurs de performances ne sont pas visibles si vous utilisez une colonne de date ou d'heure SQL au sein de la table de faits.
  • Il est beaucoup plus facile de déplacer les colonnes d'une table de date que d'utiliser des fonctions SQL complexes pour créer la logique des rapports.
Dimension d'heure
Vous pouvez traiter l'heure dans un modèle dimensionnel de deux manières :
  • Heure du jour en tant que dimension distincte
  • Heure du jour en tant que fait
Vous devez traiter les données d'heure dans une table de dimensions et ne pas les définir en tant que fait dans une table de faits. Vous devez créer une dimension d'heure si vous prenez en charge le cumul de périodes sous forme de regroupement récapitulatifs pour la génération de rapports et l'analyse. Par exemple, créez une dimension d'heure pour les regroupements récapitulatifs suivants :
  • Heures
  • Regroupement d'horaires propres à l'activité (matins des jours de la semaine, équipes du soir ou soirées)
Vous devez également créer une dimension d'heure si vous souhaitez représenter plusieurs hiérarchies pour l'heure que vous mesurez. Par exemple, créez différentes hiérarchies pour l'heure standard et l'heure militaire.
Toutefois, si vous ne cumulez pas ou ne filtrez pas de groupes de l'heure de jour, exprimez l'heure sous la forme d'un fait au sein de la table de faits. Dans ce cas, l'heure est traitée comme un fait numérique simple dans le type de données Timestamp.
Remarque : La définition de l'heure sous forme de fait au sein de la table de faits rend difficile le processus de reporting et de récapitulatif si vous devez analysez des données stockées sur une période donnée. Vous pouvez facilement récapituler des données et créer les rapports associés si vous créez une dimension d'heure distincte.

Identification des dimensions à variation lente

Vous devez identifier les dimensions à variation lente (SCD) et déterminer comment vous devez traiter ce type de données.

Une dimension à variation lente (SCD) est une dimension dont les attributs d'enregistrement connaissent une variation lente sur une période donnée. Par exemple, vous pouvez être amené à suivre les mutations du personnel au sein de la société.

Le plan de travail prend en charge les types de dimension à variation lente suivants :
Type 0
Aucune modification n'est apportée à la dimension.
Type 1
De nouvelles données remplacent les anciennes données. Les modifications d'historique ne font pas l'objet d'un suivi.
Type 2
Cette méthode crée deux entrées distinctes. L'enregistrement d'origine et le nouvel enregistrement sont tous deux disponibles dans la table. La nouvelle ligne dispose de sa propre clé primaire (clé de substitution).
Type 4
Des tables distinctes sont créées pour stocker une partie ou l'ensemble des données d'historique. Une seule table contient les données en cours. En cas de mises à jour, les anciennes données sont déplacées dans une table d'historique.
Type 6
Les types 1, 2 et 3 (stockage des données dans des colonnes distinctes de la même table) sont combinés. En général, les anciennes données sont déplacées dans des enregistrements et des colonnes distincts et les nouvelles données sont placées dans les enregistrements d'origine.

Identification des cas pour des dimensions en flocon

Vous pouvez créer une conception de schéma en flocon si vous normalisez et développez les tables de dimensions dans un schéma en étoile. Une table de dimensions est placée dans un schéma en flocon lorsque les attributs de faible cardinalité de la dimension sont supprimés pour séparer les tables normalisées et que celles-ci sont à nouveau jointes pour former la table de dimensions d'origine.

Remarque : Il est déconseillé d'utiliser un schéma en flocon dans l'environnement du modèle dimensionnel. Le schéma en flocon rend le modèle dimensionnel plus difficile à comprendre. Il risque également d'altérer les performances car il est nécessaire de joindre davantage de tables.
Il n'y a que deux cas où vous pouvez utiliser une dimension en flocon au sein d'un modèle dimensionnel :
  • Les tables de dimensions contiennent au moins deux ensembles d'attributs qui définissent des informations à des niveaux différents.
  • Vous complétez les ensembles d'attributs de la même table de dimensions via différents systèmes source.
Ne placez pas les hiérarchies d'une table de dimensions dans plusieurs tables distinctes en utilisant un schéma en flocon. Les hiérarchies doivent faire uniquement partie de la table de dimensions. Ne créez pas de hiérarchies dans un schéma en flocon. Plusieurs hiérarchies peuvent faire partie de la même dimension si celle-ci a été conçue au niveau de détail le plus faible.

Si les hiérarchies sont réparties entre des tables distinctes, les performances sont altérées car des jointures supplémentaires sont nécessaires. Dans certaines situations, vous pouvez placer les hiérarchies d'une table principale dans un schéma en flocon. Lorsque vous utilisez un agrégat de la table de faits, le schéma en flocon doit s'appliquer uniquement aux dimensions dotées de hiérarchies pour éviter les jointures de tables de dimensions volumineuses. Par exemple, si vous possédez des informations de marque que vous souhaitez séparer d'une table de dimensions Produit, créez une dimension Marque dans un schéma en flocon avec une seule ligne pour chaque marque, en utilisant moins de lignes que la table de dimensions Produit.

Remarque : Si vous utilisez trop de tables dans un schéma en flocon, la conception risque de devenir trop complexe. La modélisation dimensionnelle a pour objectif de créer un modèle simple et compréhensible. Si vous disposez de plus de tables, vous devez créer davantage de jointures. Les performances sont altérées lorsque vous créez des jointures supplémentaires.

Commentaires en retour