class: mainpage name: accueil # # Dimension à évolution lente ### Business Intelligence --- layout:true .footer[ # Dimension à évolution lente - Business Intelligence (26/09/2018) ## IMT Atlantique - http://formations.imt-atlantique.fr/bi/ - [Laurent Brisson](http://www.laurent-brisson.fr) et Sylvie Huchet .logo[] ] --- .header[ # Dimension à évolution lente : Contexte ] ## Tous les attributs de dimension ne sont pas immuables - Valeur incorrecte qui doit être modifiée - Valeur qui peut changer au cours du temps ## Comment gérer ces modifications ? - Des faits font déjà référence aux données à modifier - De nouveaux faits vont être ajoutés après modification ## 3 solutions possibles pour chacun des attributs susceptibles d'évoluer - Évolution de type 1 - Écrasement de la valeur - Évolution de type 2 - Sauvegarde de chaque modification - Évolution de type 3 - Sauvegarde de la dernière modification ## Les solutions choisies dépendent des besoins des utilisateurs ??? - Les données présentes dans les tables de dimension proviennent du monde opérationnel. Certaines sont susceptibles de changer au cours du temps. --- .header[ # Dimension à évolution lente - Type 1 : Concept ] ## Évolution de type 1 : Écrasement de la valeur .left-column50[
] .right-column50[
] .left-column50[
.small[Avant modification]
] .right-column50[
.small[Après modification]
] .row[.x-small[Source des schémas : Adamson, Christopher. Star Schema. Osborne/McGraw-Hill, 2010] ] ??? --- .header[ # Dimension à évolution lente - Type 1 : Concept ] ## Aucune historisation - A chaque modification, la valeur de l'attribut de dimension est écrasée ## 2 Cas d'utilisation - Correction d'un attribut de dimension - Aucun besoin d'historique, seules les dernières valeurs d'attribut importent ## Contraintes - S'assurer auprès des utilisateurs du non besoin d'historisation - Recalculer tous les agrégats basés sur la valeur de l'attribut modifié (anciens faits) ??? --- .header[ # Dimension à évolution lente - Type 2 : Concept ] ## Évolution de type 2 : Ajout d'une nouvelle ligne à chaque modification .left-column50[
] .right-column50[
] .left-column50[
.small[Avant modification]
] .right-column50[
.small[Après modification]
] .row[.x-small[Source des schémas : Adamson, Christopher. Star Schema. Osborne/McGraw-Hill, 2010] ] ??? --- .header[ # Dimension à évolution lente - Type 2 : Concept ] ## Historisation de toutes les modifications - A chaque modification, une nouvelle ligne est ajoutée avec la nouvelle valeur ## Cas d'utilisation - Des analyses requièrent l'état des dimensions au moment des faits ## Contraintes - Utiliser une clef artificielle ou de substitution (doit de toutes façons être le cas) - S'assurer que la dimension ne va pas croître de manière démesurée ??? --- .header[ # Dimension à évolution lente - Type 3 : Concept ] ## Évolution de type 3 : Ajout d'une colonne pour sauvegarder la valeur précédente .left-column50[
] .right-column50[
] .left-column50[
.small[Avant modification]
] .right-column50[
.small[Après modification]
] .row[.x-small[Source des schémas : Adamson, Christopher. Star Schema. Osborne/McGraw-Hill, 2010] ] ??? --- .header[ # Dimension à évolution lente - Type 3 : Concept ] ## Sauvegarde de la valeur précédente uniquement - A chaque modification, la valeur courante est sauvegardée dans un attribut supplémentaire, puis est écrasée par la nouvelle valeur ## Cas d'utilisation - Nécessité de comparer des faits selon l'état de la dimension avant et après modification (réalité alternée) ## Contraintes - Un couple d'attributs est nécessaire par attribut à évolution lente de type 3 - Recalculer tous les agrégats basés sur la valeur de l'attribut modifié ??? - Cas d'utilisation : Par exemple, analyser les faits comme si il n'y avait pas eu de modification - Inconvénients : Ne permet pas de distinguer les faits enregistrés avant ou après la modification --- .header[ # Dimension à évolution lente - Changement hybride : Concept ] ## Sauvegarde de l'historique et de la valeur courante - Au moins deux solutions techniques possibles (à creuser) ## Cas d'utilisation - Des analyses requièrent l'état des dimensions au moment des faits tout en pouvant associer tous les faits avec la nouvelle valeur ??? --- .header[ # Dimension à évolution lente - Approche BEAM✲ ] .small[ .left-column50[ - Changements de type 1 : Current Value (CV) - Changements de type 2 : Historic Value (HV) ] .right-column50[ - Changements de type 3 : Previous Value (PV) - Changements hybrides : CV/HV ] ]
.row[.x-small[Source des tableaux : Corr, Laurence, and Jim Stagnitto. Agile Data Warehouse Design: Collaborative Dimensional Modeling] ] ??? --- .header[ # Dimension à évolution lente : Terminologie et références ] ## Approfondir les concepts suivants .small[ FR | EN | [ADWD] | [SS] -- | -- | -- | -- Dimension à évolution lente | Slowly changing dimension | 84-93 | 44-46, 171 Évolution de type1 (CV) | Type 1 changes | 84-88 | 46-48, 171 Évolution de type2 (HV)| Type 2 changes | 86-92 | 48-51 Évolution de type3 (PV)| Type 3 changes | 88, 188-189 | 180-186 Évolution hybrides (CV/HV)| Hybrid changes | 88, 186-188 | 186-192 ] .x-small[ [ADWD] Corr, Laurence, and Jim Stagnitto. Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema.
[SS] Adamson, Christopher. Star Schema. Osborne/McGraw-Hill, 2010. ]