Tables de faits & dimensions :
structurer pour analyser

Avant de se lancer dans Power Query ou dans du DAX, il est essentiel de maîtriser un point clé : la structure des tables de faits et des dimensions. Ces deux types de tables définissent non seulement la logique de votre modèle, mais aussi la facilité avec laquelle vos utilisateurs pourront explorer et analyser leurs données.


1. Table de faits : là où tout se mesure

La table de faits, c’est l’endroit où l’on calcule. C’est elle qui contient les données que vous additionnez, comptez, comparez, moyenez.

Une bonne table de faits doit être :

  • A la maille la plus fine possible,
  • Composée uniquement de dates, de codes et de montants,
  • Dépourvue d’attributs métiers (noms, adresses, pays, catégories…).

👉 Ces attributs n’ont rien à faire dans des millions de lignes. 👉 Ils vivent dans les dimensions, là où ils ne sont stockés qu’une seule fois.

Les dates permettent de se relier à la table calendrier. Les codes relient la table de faits à ses dimensions. Les montants sont utilisés dans les mesures.

2. Les dimensions : vos axes d’analyse

Les dimensions servent à décrire les faits : le temps, les produits, les clients, les zones, les catégories…

Elles contiennent :

  • Un code (clé primaire),
  • Des attributs pour filtrer, regrouper et comprendre.

Exemple sur les produits :

  • Un code produit,
  • Une catégorie,
  • Une sous-catégorie.

Une fois cette organisation en place, la table de faits peut être entièrement masquée : les utilisateurs filtreront via les dimensions, et les mesures feront le reste.

3. Structure : une colonne = un seul sens

Pour les tables de faits, la règle est simple : une colonne doit toujours représenter une seule information.

❌ Exemple à éviter :

  • Colonne France
  • Colonne Allemagne
  • Colonne Italie … chacune contenant des montants.

Dans ce cas, chaque colonne a deux sens : pays + valeur → structure inutilisable dans un modèle propre.

✔️ À la place :

  • Une colonne Pays
  • Une colonne Montant
Contenu de l’article
Structure des données en entrée

4. Une seule granularité par table

Si vos données n’ont pas le même niveau de détail, ne les mélangez pas dans la même table.

Exemple :

  • Des ventes au jour
  • Un budget au mois

Ce sont deux tables de faits différentes.

💡 Astuce : pour éviter les relations plusieurs-à-plusieurs : Convertir les périodes en date. Par exemple, janvier devient une date (1er jour du mois), le budget annuel devient une date également au 1er janvier, etc. Ainsi, toutes les tables se relient proprement à la table calendrier par la date.

5. Exemple concret : étoile dégradée vs flocon propre

Dans la vraie vie, on rencontre souvent ce cas :

  • Des transactions journalières / Un budget mensuel,
  • Des ventes à la maille fine des produits / Un budget par catégorie, etc…
  • Et une volonté de tout relier pour pouvoir les comparer.

On a alors deux possibilités :

  • 👉 Un modèle en flocon,
  • 👉 Ou un modèle en étoile… mais avec des relations plusieurs-à-plusieurs.
Version 1 — Modélisation en étoile… mais relations plusieurs-à-plusieurs

Ici, tout semble “bien” visuellement (une étoile), mais :

  • Le budget n’a pas la même granularité que les factures,
  • Les mêmes dimensions sont utilisées pour filtrer les deux,
  • J’ai créé des relations plusieurs-à-plusieurs (unidirectionnelles bien entendu) pour les relier.

👉 Le modèle fonctionne, mais cela peut ne pas convenir à tous les cas de figure, notamment en cas de forte volumétrie (par exemple >10 000 valeurs distinctes sur une dimension).

Contenu de l’article
Modèle en étoile
Version 2 — Modélisation en flocon : propre, cohérente, sans M2M

En séparant davantage les tables et en introduisant la bonne granularité (ex : budgets mensuels alignés sur une date = 1er du mois, à la maille des modèles et des concessions), on obtient un modèle “en flocon” :

  • Les tables de dimension sont mieux structurées,
  • Chaque fait est filtré par la bonne dimension,
  • Toutes les relations redeviennent 1→*,
  • Aucune relation plusieurs-à-plusieurs.
Contenu de l’article
Modèle en Flocon

👉 Le résultat :

  • Modèle plus stable,
  • Filtres plus clairs,
  • Mesures plus simples,
  • Sans dégrader les performances, au contraire.
  • Attention à bien remettre les bons attributs dans les bonnes dimensions au moment de la séparation 😉

En résumé

Les tables de faits et les dimensions sont le socle d’un modèle Power BI performant et réellement orienté Self-Service BI. Une bonne séparation des rôles, des faits minimalistes, des dimensions bien construites et des granularités cohérentes simplifient tout : les relations, le DAX, les performances et l’expérience utilisateur.

Avant d’incorporer vos données, posez-vous une question simple :

C’est souvent ici que se joue la différence entre un modèle fragile… et un modèle robuste, durable et agréable à utiliser.


🗓️ Prochain article : « Power Query : un modèle propre et documenté »

Nous verrons :

  • Comment organiser vos requêtes intelligemment,
  • Comment documenter votre modèle dès Power Query,
  • Quelles bonnes pratiques appliquent les pros,
  • Et comment préparer un modèle clair, stable et facile à maintenir.

🔗 Retrouvez la série facilement via le tag : SelfServiceBI

Sommaire complet de la série

This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.