Cette page présente le processus de modélisation dimensionnelle en utilisant l'approche BEAM✲. Ce n'est pas une introduction à la modélisation dimensionnelle ainsi il est essentiel de connaître les différents Design Patterns donnés en pré-requis avant de mettre en oeuvre cette démarche.
Toutes les références de cette page renvoient à l’ouvrage suivant :
Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema de Lawrence Corr
Note :
Les deux sections ci-dessous sur l’approche BEAM✲ constituent un memento permettant de se positionner à tout moment dans la démarche et ne se substituent pas à la lecture du livre.
Étapes principales du processus de modélisation BEAM✲
NIVEAU CONCEPTUEL (conceptual data model / business model / modèle métier)
DÉFINITION DU PREMIER ÉVÉNEMENT (chapitre 2)
- Déterminer un événement (Sujet - verbe - objet) (page 33).
- Définir l’événement à l’aide d’une table BEAM✲, en spécifiant chacun de ses détails (pages 35-56).
DÉFINITION DES DIMENSIONS DU PREMIER ÉVÉNEMENT (chapitre 3)
- Pour chacun des détails de l’événement, autres que les mesures, définir la dimension correspondante à l’aide d’une table BEAM✲ (pages 62-93).
DÉFINITION DE LA MATRICE D’ÉVÉNEMENTS (chapitre 4)
- Définir la matrice d’événements (pages 102-119).
DÉFINITION DE TOUS LES ÉVÉNEMENTS DE LA RELEASE A VENIR (chapitres 4, 2 et 3)
- Déterminer, en fonction de l’importance des événements présents dans la matrice d’événements, les événements qui seront pris en charge dans la release suivante (page 120).
- Définir dans le détail, par des tables BEAM✲, chacun de ces événements, ainsi que leurs dimensions respectives non encore définies (pages 120 et 122, et chapitres 2 et 3).
NIVEAU LOGIQUE (logical data model / modèle logique)
PROFILAGE DES DONNÉES (chapitre 5)
- Faire du profilage de données pour chacun des événements et chacune des dimensions (page 135).
DÉFINITION DES MODÈLES DIMENSIONNELS LOGIQUES ET DES SCHÉMAS EN ÉTOILE (chapitre 5)
- Transformer les modèles métiers des dimensions en modèles logiques (page 141).
- A partir des différents modèles métiers d’événements, créer les modèles logiques (tables de faits) correspondants (page 152).
- Définir les différents schémas en étoile (page 154).
Étapes détaillées du processus de modélisation BEAM✲
NIVEAU CONCEPTUEL (conceptual data model / business model / modèle métier)
DÉFINITION DU PREMIER ÉVÉNEMENT (chapitre 2)
- Déterminer un événement (Sujet - verbe - objet) (page 33).
- Le sujet et l’objet correspondent aux détails Who et What des 7 Ws de la méthode BEAM✲ : Who, What, When, Where, hoW many, Why et hoW.
- Créer une table BEAM✲ pour cet événement avec les 2 premières colonnes, Who (sujet) et What (objet) (page 35).
- Identifier le détail When et l’ajouter à la table comme 3ème colonne (page 37).
- Utiliser la Première ligne du tableau pour indiquer le type des détails (pour l’instant [Who], [What] et [When]), et par la suite pour indiquer les différentes caractéristiques des détails (page 36).
- Définir des histoires avec les 3 détails Who, What et Where, correspondant aux 5 thèmes différents suivants : Typique, Différent, Répétition, Manquant et Groupe (page 39).
- Déterminer le plus possible de détails relatifs à cet événement, dans l’ordre indiqué ci-dessous.
Pour chaque détail, l’ajouter comme colonne à la table BEAM✲ et compléter les types et les différentes histoires (si un détail est en fait un détail relatif à un autre détail déjà présent, le placer au dessus du tableau, au dessus du détail déjà présent (page 47)) :
- Identifier d’éventuels autres détails de type When (page 43).
- Identifier d’éventuels autres détails de type Who (page 45).
- Identifier d’éventuels autres détails de type What (page 46).
- Identifier des détails de types Where (page 46).
- Identifier des détails de type hoW many (page 50).
- Identifier des détails de type Why (page 52).
- Identifier des détails de type hoW (page 53).
- Indiquer la complétude du tableau BEAM✲ par un double trait après la denière colonne (page 56).
- Déterminer les détails obligatoires (MD) (page 41).
- Déterminer la granularité de l’événement (GD) (page 54).
- Donner un nom à l’événement. Le nom est à indiquer au dessus du tableau, en haut à gauche (page 55).
- Déterminer le type de l’événement en fonctions des détails de type When (discret, récurrent, évolutif)
- L’indiquer derrière le nom de l’événement ([DE], [RE] ou [EE]) (page 56).
- Donner un exemple d’histoire prenant en compte tous les détails pour bien définir l’événement (page 56).
- Écrire l’histoire sous le tableau.
DÉFINITION DES DIMENSIONS DU PREMIER ÉVÉNEMENT (chapitre 3)
- Définir chacune des dimensions de l’événement.
Pour chacun des détails de type autre que hoW many, et en commençant par la dimension Who ou What :
- Créer une table BEAM✲ (page 62).
- Recopier la colonne du détail de l’événement comme première colonne de la dimension, devenant le 1er attribut de la dimension (page 62).
- Supprimer les lignes correspondant aux doublons (il doit ne rester que les lignes correspondant aux thèmes Typique, Différent, Manquant et Groupe) (page 62).
- Renommer l’attribut avec un nom approprié (page 62).
- Définir la clef naturelle (business key) de la dimension et l’ajouter comme colonne à la table BEAM✲ en complétant les exemples (page 63).
- Ajouter autant d’attributs que nécessaire (page 64).
Pour chaque attribut :
- Ajouter une colonne à la table BEAM✲ pour le nouvel attribut.
- Donner des exemples.
- Identifier les éventuels attributs exclusifs (page 70).
- Identifier les éventuelles hiérarchies (page 73).
- Pour chaque hiérarchie, créer un graphe de hiérarchie (page 77).
- Ajouter une nouvelle ligne d’exemple ‘Changement’, pour mettre en évidence l’historique des attributs (page 84).
- Définir l’historique de chaque attribut (page 84).
- Si la dimension ne possède, en final, qu’un seul attribut, supprimer sa table BEAM✲ car il s’agit d’une dimension dégénérée (page 61).
- Créer une table BEAM✲ (page 62).
DÉFINITION DE LA MATRICE D’ÉVÉNEMENTS (chapitre 4)
- Définir la matrice d’événements (page 102) :
- Créer une matrice d’événements avec une seule ligne, pour l’événement qui vient d’être défini, et autant de colonnes que l’événement possède de -dimensions, les dimensions étant classées en fonction de eur type (les différents Ws) (page 106).
- Devant les dimensions, ajouter 3 colonnes pour indiquer le nombre de dimensions que comporte l’événement et pour gérer l’importance et l’estimationen terme de charge de l’événement .
- Pour l’événement présent, cocher les dimensions et renseigner les 3 premières colonnes.
- Identifier le plus d’événements possibles dans le temps imparti (page 107).
Pour chaque événement :
- L’ajouter dans la matrice d’événements, en le plaçant dans l’ordre chronologique du ou des process.
- Ajouter les dimensions nécessaires à l’événement non encore présentes.
- Cocher les dimensions nécessaires à l’événement et renseigner les 3 premières colonnes.
DÉFINITION DE TOUS LES ÉVÉNEMENTS DE LA RELEASE A VENIR (chapitres 4, 2 et 3)
- Déterminer, en fonction de l’importance des événements présents dans la matrice d’événements, les événements qui seront pris en charge dans la release suivante (page 120).
- Définir dans le détail, par des tables BEAM✲, chacun de ces événements, ainsi que leurs dimensions respectives non encore définies (page 120, page 122 et - chapitres 2 et 3).
NIVEAU LOGIQUE (logical data model / modèle logique)
PROFILAGE DES DONNÉES (chapitre 5)
- Faire du profilage de données pour chacun des événements et chacune des dimensions (page 135).
DÉFINITION DES MODÈLES DIMENSIONNELS LOGIQUES ET DES SCHÉMAS EN ÉTOILE (chapitre 5)
- Transformer les modèles métiers des dimensions en modèles logiques (page 141).
- Pour chaque dimension, modifier sa Table BEAM✲ (page 149):
- Ajouter en tête de table une colonne pour la clef artificielle (surrogate key) de la dimension.
- Ajouter en fin de table, des colonnes d’administration pour les ETL.
- A partir des différents modèles métiers d’événements, créer les modèles logiques (tables de faits) correspondants (page 152).
- Pour chaque événement (Table BEAM✲ d’événement) :
- Dupliquer la table BEAM✲ d’événement dans une table BEAM✲ de faits
- Modifier la table BEAM✲ de faits :
- Pour chaque ligne d’histoire, remplacer les valeurs des détails Who, What, When, Where et Why par les clefs artificielles des dimensions.
- Remplacer le nom de l’événement par le nom de la table de faits.
- Remplacer le type de l’événement (discret [DE], Récurant [RE], évolutif [EE]) par le type de la table de faits (table de faits de transaction [TF], instantané périodique [PS] et instantané récapitulatif [AS]).
- Indiquer les détails qui correspondent des dimensions dégénérées.
- Préciser le type de chacun des faits (additif, non additif, semi-additif).
- Définir les différents schémas en étoile (page 154).
- Pour chaque table de faits :
- Dessiner le schéma en étoile.
- Pour chaque table de faits :