Dimension à évolution lente
Une dimension à évolution lente (slowly changing dimension ; SCD) est, en informatique décisionnelle (business intelligence), une dimension pouvant subir des changements de description des membres.
Description
Comme l'indique leur nom, les dimensions à évolution lente sont des dimensions dans lesquelles les données ont tendance à changer au fil du temps, soit occasionnellement, soit de façon continue, en impliquant soit un seul enregistrement, soit la table en entier. Ces changements de descriptions des membres ont différentes origines :
- Un client peut changer d’adresse, se marier (et donc changer de nom) ;
- Un produit peut changer de nom, de formulation (« Raider » devient « Twix » ; « Yaourt à la vanille » devient « saveur Vanille ») ;
- Une entreprise peut changer son organisation commerciale (secteurs) ou sa nomenclature de produits.
Gestion des dimensions à évolution lente
Suivant l'enseignement de Ralph Kimball[1] il est possible de gérer cette situation en choisissant entre ces solutions :
- SCD 1 : Écrasement de l’ancienne valeur / remplacer
- SCD 2 : Création d'une nouvelle ligne
- SCD 3 : Création d'une nouvelle colonne
- SCD 4 : Valeur d’origine / valeur courante
- SCD 6 : hybride
Il existe aussi des solutions hybrides. Selon la nature du changement, il convient de choisir quel type de SCD utiliser, dans certains cas, combiner plusieurs techniques est plus efficace. Il est dans tous les cas essentiel d'avoir les clés de substitution dans les tables de dimension, pour appliquer ces techniques. Dans certains cas, la transition n’est pas immédiate : il reste pendant un certain temps d'anciens produits en rayon, il est alors conseillé de les traiter comme deux membres différents.
SCD 1
Cette solution est la plus simple à mettre en œuvre, car elle ne nécessite ni modélisation particulière, ni besoin d'ajouter de nouveaux enregistrements dans la table. Elle consiste à mettre à jour les données, en écrasant l'ancienne version.
Cette solution est privilégiée dans les cas où il n'est pas important de maintenir l'information historique, par exemple pour corriger des fautes d'orthographe.
SCD 2
Il s'agit d'ajouter une ligne avec un nouvel ID pour la nouvelle valeur, et deux colonnes date de début et de fin d'utilisation.
SCD 3
Il s'agit d'ajouter une colonne à la table de dimension pour chaque colonne dont on souhaite garder une trace des changements, afin de stocker l'historique des modifications. Généralement, les colonnes ajoutées contiennent des informations de début de validité (BeginDate) et de fin de validité.
SCD 4
SCD 6 : Hybride
Combine les SCD de type 1, 2 et 3 (d'où le choix du numéro 6 qui est l'addition de ces trois SCD).
Notes et références
Bibliographie
- (en) Lawrence Corr et Jim Stagnitto, Agile Data Warehouse Design : Collaborative Dimensional Modeling, from Whiteboard to Star Schema, DecisionOne Press, , 328 p. (ISBN 978-0-9568172-0-4)
- Emmanuel Ferragu, Modélisation des systèmes d'information décisionnels techniques de modélisation conceptuelle et relationnelle des entrepôts de données, Paris, Vuibert, (ISBN 978-2-311-01243-9 et 2-311-01243-6, OCLC 862964163)
- Ralph Kimball, The Data Warehouse Toolkit, Wiley, (ISBN 978-0-471-15337-5)