Schéma en étoile
En bref
- Objectifs : distinguer tables de faits et tables de dimension ; organiser un modèle en étoile ; reconnaître les principaux concepts dimensionnels (clé de substitution, flocon, dimension de rôle, dimension fourre-tout).
- Prérequis : savoir charger et transformer des tables dans Power Query.
- Niveau : découverte.
Pourquoi ?
Le schéma en étoile est la façon recommandée d'organiser les données d'un modèle sémantique Power BI. Il rend le modèle plus rapide, les mesures DAX plus simples et le volet Données plus lisible pour les auteurs de rapports. La plupart des difficultés rencontrées en DAX viennent d'un modèle qui ne respecte pas cette organisation.
Notions clés
Faits et dimensions
Un schéma en étoile place au centre une table de faits, entourée de tables de dimension.

Dans l'exemple ci-dessous (en anglais), les ventes (Sales) sont les faits : quantité (Order Quantity) et montant (Sales Amount). Les autres tables sont des dimensions : produit (Product), client (Customer), etc. Toutes leurs colonnes offrent des regroupements possibles : vous pouvez ainsi afficher la somme des montants par produit, par catégorie (Category) ou par couleur (Color).

| Critère | Table de faits | Table de dimension |
| Objectif | Stocke des événements ou des observations (ventes, commandes, stocks) | Décrit les entités métier (dates, clients, produits) |
| Structure | Colonnes de clés de dimension et colonnes numériques à totaliser | Une colonne clé sans doublon et des colonnes descriptives |
| Volume | Souvent un grand nombre de lignes | En général peu de lignes |
| Usage dans le rapport | Totaliser (via des mesures) | Filtrer et regrouper |
La clé de la dimension (ProduitClé, ProduitID) se retrouve dans la table de faits et sert à créer la relation. Dans un modèle Power BI, ce n'est pas le nom de la table qui fait d'elle une dimension ou un fait, mais sa place dans la relation : la dimension est du côté « un », la table de faits du côté « plusieurs » (à un produit correspondent plusieurs ventes). Voir la page Relations.
Normalisation et dénormalisation
La normalisation consiste à stocker les données de façon à éviter les répétitions. Dans l'exemple ci-dessous, la table des lignes de commande (à gauche) est normalisée : chaque produit vendu y figure par sa clé, et ses caractéristiques sont dans la table Produit (à droite).

Une version dénormalisée des deux tables, obtenue en les liant par la colonne ProduitClé, se présente ainsi :

Un schéma en étoile est un compromis : les faits restent séparés des dimensions, mais chaque dimension est dénormalisée en une seule table. Si vos données proviennent d'une extraction « à plat », utilisez Power Query pour séparer les faits et les dimensions.
Autres schémas possibles

Concepts dimensionnels utiles dans Power BI
Mesures
Dans le vocabulaire dimensionnel, une mesure est une colonne de faits qui stocke les valeurs à totaliser. Dans Power BI, une mesure est une formule DAX qui réalise cette totalisation au moment de la requête et renvoie une valeur unique. Masquez les colonnes numériques des tables de faits et créez des mesures explicites : vous contrôlez ainsi l'agrégation (un prix unitaire ne doit jamais être additionné).
Clés de substitution
Une relation exige une colonne sans doublon du côté de la dimension. Si la dimension n'en possède pas, ajoutez une colonne d'index dans Power Query (Ajouter une colonne > Colonne d'index, fonction M Table.AddIndexColumn), puis reportez-la dans la table de faits par une fusion avant de créer la relation. La page Slowly Changing Dimension détaille la différence entre clé de substitution et clé naturelle.
Dimensions en flocon
Une dimension en flocon est un ensemble de tables normalisées pour une même entité, par exemple Catégorie, Sous-catégorie et Produit. Microsoft recommande de les fusionner en une seule table de dimension : le modèle est plus performant, le volet Données plus clair, et vous pouvez créer une hiérarchie Catégorie > Sous-catégorie > Produit, impossible entre plusieurs tables.
[Capture : vue Modèle avec trois tables Catégorie, Sous-catégorie et Produit reliées en chaîne (flocon), à côté d'une table Produit unique avec sa hiérarchie]
Dimensions de rôle actif
Une même dimension peut jouer plusieurs rôles, par exemple la table de dates pour la date de commande et la date d'expédition. Deux approches existent :
- une seule table de dates avec une relation active et des relations inactives, activées dans les mesures avec USERELATIONSHIP ;
- une table de dates par rôle (Date commande, Date expédition), chacune avec une relation active, ce qui permet de filtrer sur les deux dates en même temps.
La page Table de dates compare les deux approches et montre leur mise en œuvre.
Dimensions fourre-tout
Une dimension fourre-tout regroupe en une seule table plusieurs petites dimensions aux valeurs peu nombreuses : état de commande, sexe, groupe d'âge. Elle allège le modèle et réduit le nombre de tables exposées. On part du produit cartésien de toutes les valeurs, on ajoute une clé de substitution, puis on reporte cette clé dans la table de faits par fusion. Dans Power Query, le produit cartésien s'obtient par des jointures externes entières, puis une colonne d'index.
Dimensions dégénérées
Une dimension dégénérée est un attribut de la table de faits utilisé pour filtrer ou regrouper, comme le numéro de commande. On le laisse dans la table de faits plutôt que de créer une table à part : c'est une exception admise à la séparation entre faits et dimensions.
Tables de faits sans faits
Une table de faits sans faits ne contient que des clés de dimension, sans colonne à totaliser. Elle sert à enregistrer des événements (les connexions d'un client à un site web, que l'on compte), ou de table pont entre deux dimensions liées en plusieurs-à-plusieurs, par exemple entre commerciaux et régions. La page
Sécurité RLS et OLS en montre un usage avec une table de droits.
Exemple
Le modèle de vente du support contient une table de faits Ventes (date, clé produit, clé client, quantité, montant) et trois dimensions : Date, Produit (avec catégorie et sous-catégorie fusionnées) et Client. Chaque dimension est reliée à Ventes par une relation un-à-plusieurs, à sens unique. Les colonnes Quantité et Montant sont masquées, et les mesures Quantité vendue et CA HT les remplacent.
Pièges et bonnes pratiques
- Ne fusionnez pas toutes les données dans une seule grande table : le modèle grossit et les calculs deviennent plus complexes.
- À l'inverse, n'importez pas toutes les tables normalisées de la base source : regroupez-les par entité métier.
- Donnez des noms métier, en français, aux tables et aux colonnes visibles.
- Masquez les clés techniques une fois les relations créées.
À retenir
- Les faits se totalisent, les dimensions filtrent et regroupent.
- Une dimension est dénormalisée en une seule table, reliée aux faits par une clé unique.
- Les colonnes de faits sont masquées et remplacées par des mesures explicites.
- Flocons, dimensions de rôle et dimensions fourre-tout ont chacun une solution recommandée par Microsoft.
Pour aller plus loin
- Comprendre le schéma en étoile et son importance pour Power BI. Source (Microsoft Learn)
- Modélisation des tables de faits dans l'entrepôt Microsoft Fabric. Source (Microsoft Learn)
- Modélisation des tables de dimension dans l'entrepôt Microsoft Fabric. Source (Microsoft Learn)
- Aide sur les relations un-à-un (dimensions dégénérées). Source (Microsoft Learn)