La découverte d'un véritable schéma avec plusieurs notions avancées.
Pré-requis pour réaliser cette activité

Activité(s):
- Modélisation dimensionnelle - Partie 1

Concept(s) à connaître :
- Modélisation dimensionnelle : Notions de base

Introduction

Préambule

Dans cette deuxième partie nous allons nous intéresser aux fonctions associées aux pesticides. Si nous observons un extrait de la dimension pesticide présentée en partie 1 (image ci-dessous), nous pouvons nous rendre compte d’un problème au niveau de la description de la fonction d’un pesticide. Si nous prenons l’exemple du Dinitrocrésol, ce pesticide est utilisé pour ses fonctions insecticide, acaricide, fongicide et herbicide comme l’indique l’acronyme IAFH. Cette structure de données n’est pas satisfaisant car nous aimerions, par exemple, pouvoir simplement filtrer nos données sur les insecticides (sans avoir à traiter la chaîne de caractère IAFH).

Extrait de la dimension Pesticide
Extrait de la dimension Pesticide

Schéma dimensionnel

Nous allons, dans cette activité, travailler sur une version finale du schéma dimensionnel. Par rapport au schéma vu dans la en partie 1, celui-ci possède des annotations, des dimensions dégénérées et une table passerelle.

Schéma dimensionnel
Schéma dimensionnel de la base de données dimensionnelle des pesticides dans les eaux souterraines

Annotations

Les annotations présentent sur ce schéma reprennent les bonnes pratiques présentées dans Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema. Laurence Corr and Jim Stagnitto. DecisionOne Press, 2011 (voir Appendice B). Vous trouverez un grand nombre de schéma dimensionnel sans ces annotations, mais nous conseillons de prendre le temps de les écrire afin de simplifier la lecture aux experts.

Nous n’allons pas ici détailler toutes ces annotations, mais donner quelques informations pour les rendre moins obscures :

  • La table de faits possède l’annotation PS pour Periodic Snapshotou table de faits instantané périodique. Cela signifie que chaque ligne de la table caractérise un événement périodique dans le temps. Il existe d’autres types de tables de faits comme vous pouvez le découvrir sur la page traitant des notions avancées pour les faits. Si les tous les prélèvements de pesticides (et non simplement des moyennes annuelles) étaient insérés dans une table de faits, celle-ci serait une table de faits de transactions avec l’annotation TF pour Transaction Fact Table. Cela signifie que chaque ligne de la table caractérise un événement discret dans le temps.
  • Les dimensions possèdent des annotations. Ici, CV pour Current value est une modalité spécifique pour l’évolution des dimensions. Vous pouvez en apprendre plus sur la page traitant des notions avancées sur les dimensions. Quant à la notation MV pour Multi-valued elle indique la présence d’une table passerelle utilisée pour gérer une relation plusieurs à plusieurs entre attributs. Nous allons y revenir ensuite.
  • Les mesures de la table de faits possèdent des annotations. Ici NA signifie que les mesures sont non-additives. Il existe également l’acronyme FA pour Full Additive et SA pour Semi Addtive. Vous pouvez en découvrir plus sur la page traitant des notions de base en modélisation dimensionnelle.

Dimensions dégénérées

Dans le cas où une dimension ne possède aucun attribut, nous pouvons supprimer la table de dimension et la remplacer par un attribut dans la table de faits. Pour en apprendre plus sur les dimensions dégénérées, lisez la page traitant des notions de base en modélisation dimensionnelle.

Ici, par rapport au schéma initial, nous avons donc supprimé la table de dimension Année qui ne contenait rien d’autre que l’année. Par ailleurs, une information utile qui était absente de la précédente version était l’information si une concentration en pesticide dépasse la norme ou non. L’information est accessible en faisant une comparaison avec la valeur de la norme, mais pour faciliter les filtres nous avons fait ici le choix de créer une dimension dégénérée avec l’attribut intitulé Respect de la norme.

Table passerelle

Un pesticide ayant plusieurs fonctions, une solution serait d’ajouter autant d’attributs booléens que de fonctions possibles au sein de la dimension. Nous n’allons pas retenir cette solution, car elle manque de généricité (si nous voulons ajouter de nouvelles fonctions) et complexifier l’exploitation de nos tableaux de bord (avec une quinzaine de variables booléennes plutôt qu’une seule indiquant la fonction). La solution pour gérer cette cardinalité de type “plusieurs à plusieurs” (un pesticide a plusieurs fonctions et une fonction concerne plusieurs pesticides) est d’utiliser un patron de données appelé “Table passerelle” (Bridge Table en anglais). La table dimensionnelle Groupe Fonction est donc une table passerelle dans le schéma dimensionnel de nos données.

Faits et dimensions

La granularité

Revenons sur la notion de grain qui est essentielle à maîtriser avant de débuter un projet de Business Intelligence. Pour rappel la définition :

Grain
Le grain est ce qui permet de définir le niveau de détail des informations présentes dans une ligne d’une table de faits. Il est défini par un ensemble minimal de dimensions.

Le grain est donc défini par un sous-ensemble non vide des dimensions de la table de faits. Ce n’est pas forcément systématiquement toutes les dimensions. Pour détecter les dimensions inutiles, il suffit d’en retirer une du grain et de se demander s’il est toujours possible de distinguer 2 lignes de la table de fait. Si ce n’est plus le cas, il faut garder la dimension.

À noter qu’il est absolument obligatoire que toutes les mesures de la table de faits soient au même grain, sans aucune exception. Pour vérifier, demandez-vous si telle mesure est bien définie selon [insérer ici la liste des dimensions].

La table passerelle

Si vous observez la dimension Pesticides on peut se rendre compte que chacun d’entre eux a plusieurs fonctions associées encodées en une chaîne de caractères. Étant donné qu’il n’est pas souhaitable de stocker dans un seul attribut la liste des fonctions possibles (sinon l’accès à l’information deviendrait compliqué) nous allons utiliser un patron nommé table passerelle.

Lecture Table passerelle

Le schéma dimensionnel mets en évidence que désormais :

  • un pesticide a unique groupe de fonctions (le pesticide Dinitrocrésol appartient au groupe 11)
  • un groupe de fonctions concerne plusieurs fonctions (le groupe 11 a 4 différentes fonctions)

Ainsi :

  • certaines lignes de pesticides sont associées à plusieurs lignes de la table passerelle Groupe Fonction
  • chaque ligne de la table passerelle Groupe Fonction est rattachée à une unique fonction.
Schéma dimensionnel
Schéma dimensionnel avec extraits à compléter de la base de données dimensionnelle des pesticides dans les eaux souterraines

Le schéma en étoile vs schéma en flocon

Pour rappel les notions de schéma en étoile et de schéma en flocon sont des archétypes pour distinguer les schémas non normalisés (schéma en étoile) des schémas normalisés (schéma en flocon).