Tutoriel3 min de lecture · Mis à jour le 29 sept. 2026
Modélisation dimensionnelle — schéma en étoile et SCD
Concevoir un entrepôt de données en étoile : grain, faits, dimensions, clés de substitution et historisation SCD type 2.
- #etl
- #sql
Les quatre décisions de Kimball
- Processus métier : quelles mesures (ventes, tickets, appels) ?
- Grain : que représente exactement une ligne de fait ? (« une ligne de commande », pas « une commande »).
- Dimensions : le contexte (client, produit, date, magasin).
- Faits : les mesures numériques additives (quantité, montant).
Le grain se décide avant tout le reste ; le mélanger est l'erreur la plus coûteuse.
Schéma en étoile
dim_date
|
dim_client — fact_ventes — dim_produit
|
dim_magasin
- Les faits référencent des clés de substitution entières (
client_sk), jamais les identifiants sources. - Les dimensions sont dénormalisées (pas de flocon sauf nécessité).
- Une dimension date générée à l'avance (jour, semaine ISO, mois, férié…) simplifie toutes les analyses.
Dimensions à évolution lente (SCD)
| Type | Comportement | Usage |
|---|---|---|
| 0 | jamais modifié | date de naissance |
| 1 | écrasement | correction d'orthographe |
| 2 | nouvelle ligne + période de validité | segment client, région |
| 3 | colonne « valeur précédente » | rare |
SCD type 2 :
-- clôturer la version courante
UPDATE dim_client SET valid_to = current_date - 1, is_current = false
WHERE client_id = :id AND is_current AND segment <> :nouveau_segment;
-- insérer la nouvelle version
INSERT INTO dim_client (client_id, nom, segment, valid_from, valid_to, is_current)
SELECT :id, :nom, :nouveau_segment, current_date, '9999-12-31', true
WHERE NOT EXISTS (SELECT 1 FROM dim_client WHERE client_id = :id AND is_current);
Les faits chargés pointent vers la version valide à la date de l'événement.
Bonnes pratiques
- Tests automatiques : unicité des clés, intégrité référentielle faits → dimensions, pas de chevauchement de périodes SCD2.
- Membre « inconnu » (
sk = -1) pour les références manquantes plutôt que des NULL. - Documenter chaque mesure (formule, filtre, unité) avec les métiers.