Les ntrepôts de onnées (Data Warehouses) La Modélisation 1 Les$Faits La$défini-on$ Unfaitestlapluspe-teinforma-onanalysable.C'estuneinforma-onqui con-entlesdonnéesobservables(les$faits)quel'onpossèdesurunsujetet quel'onveutétudier,selondiversaxesd'analyse(les$dimensions). Les«faits»dansunentrepôtdedonnées,sontnormalementnumériques, puisqued'ordrequan-ta-f.ilpeuts'agirdumontant-en-argent-des-ventes,du nombre-d'unités-vendues-d'un-produit,etc. 2
Les$Faits$$(suite) La$défini-on$(suite)$ Lesfaitsreprésententdesassocia-onsdontl'existenced'uneoccurrencedépenddel'existence desoccurrencescorrespondantesparmilesdescripteursdimensionnels. C'estGàGdire, la ''table'' de faits con-ent l'ensemble des mesures correspondant aux informa-onsdel'ac-vitéàanalyser. Mais$certaines$tables$de$faits$peuvent$ne$contenir$aucun$a;ribut$et$représentent$des$liaisons$ entre$tables$dimensionnelles. Touslesélémentsquipointentsurlatabledefaitssontliésàuneséman-queexprimablepar unephrase.parconséquent,la''table''defaitsestlamatérialisa-ond'uneassocia-onentren en-tés. 3 Les$Faits$(suite) Structure$de$base$d'une$''table''$de$faits$$ Une''table''defaitsdevraitavoirlastructuresuivante: Date%cal.%(FK) Clef%étrangères%vers%les%dimensions Dimensions%dégénérées Mesures% Id%Dim 1 %(FK) Id%Dim 2 %(FK) Id%Dim n %(FK) Code%Dim%Dég%1%(DD) Code%Dim%Dég%2%(DD) Code%Dim%Dég%m%(DD) Mesure%1 Mesure%2 Mesure%n 4
Les$Faits$(suite) Caractéris-ques$d'une$''table''$des$faits$ Une''table''defaitscon-entlesvaleursnumériquesdecequ'ondésiremesurer Une''table''defaitscon-entlesclésassociéesauxdimensions.Ils'agitdeclésétrangèresvers lesdimensions Engénéralune''table''defaitscon-entunpe-tnombredecolonnes Une''table''defaitscon-entplusd'enregistrementsqu'une''table''dedimension Lesinforma-onsdansune''table''defaitssontcaractérisées: " Ellessontnumériquesetsontu-liséespourfairedesSUM,-AVG... " Lesdonnéesdoiventêtreaddi-vesousemiGaddi-ves Lesmesures(Mes 1,-Mes 2 - -Mes n )doiventréféreretavoirunliendirectaveclesclésdesdimensions(date-cal,-id- Dim 1,-- Id-Dim 2-,-...,-Id-Dim n- )danslamêmetable. 5 Les$Faits$(suite) Exemple$d'une$''table''$de$faits$ VENTES$ Id_Cde Id_Client Id_Vendeur Id_Produit Id_Date Id_Ville 5 Quantité Prix5Total 5 Clef$ (clés étrangères vers les dimensions) Mesures$ 6
Dimension La$défini-on$ # Unedimensionestune''table''quireprésenteunaxe$d'analyse$selonlequelonveut étudier des données observables (les$ faits) qui, soumises à une analyse mul-dimensionnelle, donnent aux u-lisateurs des renseignements nécessaires à la prise dedécision. # Onappelledonc''dimension''unaxed'analyse.Ilpeuts'agirdesClientsoudesProduits d'une entreprise, d'une Période de temps comme un exercice financier, des ac-vités menéesauseind'unesociété,etc. 7 Dimension$$(suite) Structure de base d'une dimension Une dimension devrait avoir la structure suivante : Clé(de(substitution((Surrogate(key) Clé(primaire((PK) Clé(d'affaire((natural(key(ou(buisness( key)((peut_être(composée(de(plusieurs( attributs Clé(naturelle((NK) Attributs(de(la(dimension Attribut 1 (((.(.(. Attribut n Clés(spéciales(pour(la(gestion(de( l'historique(de(la(dimension Date(effective Date(de(retrait Indicateur(effectif 8
Dimension$$(suite) Caractéris-ques$d'une$dimension$ # Une"table''dedimensioncon-entledétailsurlesfaits # Une''table''dedimensioncon-entlesinforma-onsdescrip-vesdesvaleursnumériquesdelatable desfaits # Vuquelesdonnéesdansla''table''dedimensionsontnormalisées,ellecon-entunplusgrand nombredecolonnes # Une''table''dedimensioncon-entengénéralbeaucoupmoinsd'enregistrementsqu'une''table'' desfaits # LesaSributsd'une''table''dedimensionsontsouventu-liséscomme«Tête-de-lignes»et«Tête-decolonne»dansunrapportourésultatderequête. 9 Dimension$D$composantes Composante$1:surrogate-key--ouclédesubs-tu-on Composantes$2$:aSributs Composantes$3$:clésspéciales 10
Dimension$ $composantes$(suite) Composante$1$:$surrogate$key$$ou$clé$de$subs-tu-on$ $Exemple Dim.%PRODUIT Id#Produit Nom#Produit Description#Produit Sous3catégorie Famille#Produit Description#Catégorie Surrogate$Clef$ (clé de substitution ) Clef$naturelle$ (clé artificielle)$ PRODUIT Code_Produit Désignation Description33 Prix3unitaire. Prix#unitaire - Table d'une BD de production - Table d'une BD multidimensionnelle 11 Dimension$ $composantes$(suite) Composante$1$:$surrogate$key$$ou$clé$de$subs-tu-on$ $La$Défini-on$ Uneclédesubs-tu-on(Surrogate-key)estuneclénonsignifica-veu-liséeafindesubs-tuerla clénaturelle(business-key)quiprovientdessystèmesopéra-onnels. Laclénaturelleest,engénéral,composéedeplusieurscolonnes. Dansunsystèmeopéra-onnel,onu-liseunecléar-ficielleafind'iden-fierd'unefaçonuniqueun élémentdel'en-té:(client_idpourl'en-téclient,emp_idpourl'en-téemployé). Laclédesubs-tu-onnedoitpasêtreconfondueaveclacléar-ficielleaSribuéeparlessystèmes opéra-onnels. Laclédesubs-tu-onestalorsu-liséedansunentrepôtdedonnéespourremplaceretcompléter lacléar-ficielledusystèmeopéra-onnelafinderendreunélémentuniquedansladimension. 12
Dimension$ $composantes$(suite) Composante$1$:$surrogate$key$$ou$clé$de$subs-tu-on$ Les$Fonc-onnalités$$ # Remplacer$ la$ clé$ ar-ficielle$ ou$ naturelle$:$effec-vement une clé de subs-tu-on remplacelacléar-ficielleentermed'u-lisa-on,cen'estpluslaclénaturellequiserau-liséepour fairelesjointuresaveclestablesdefaitsetlesautrestablesdedimension. # Compléter$l'informa-on$:$Laclédesubs-tu-onn'aaucunsensentermed'affaire,elleest u-liséedansl'edseulement La clé ar-ficielle ou naturelle dans la dimension est toujours nécessaire pour pouvoir faire la correspondanceentrel'élémentdedimension(unclientparexemple)dansl'edetl'élémentdela tabledesclientsdanslesystèmeopéra-onnel. 13 Dimension$ $composantes$(suite) Composante$1$:$surrogate$key$$ou$clé$de$subs-tu-on$ Les$avantages$ $$$ # Performance : Accélère l'accès aux données du moment ou l'on va u-liser un index numériquevuqueletypededonnéesdelaclédesubs-tu-onestnumérique. # Indépendance$du$système$source:Onnepeutgaran-rquelacléd'affairenechangepas danslessystèmessources. # Historique$ des$ changements$ et$ granularité$ infinie: Si l'on désire garder l'historique des changementsdeladimensionseloncertainscritères,ondoitgérerlaclédesubs-tu-on.onse retrouve facilement avec plusieurs enregistrements de la même clé d'affaire dans la dimension. 14
Dimension$ $composantes$(suite) Composantes$2$$$:$$$a;ributs$$ Enplusdelaclédesubs-tu-onoudelaclénaturelle,d'autresaSributssontajoutésàladimension. CesaSributssontdescrip-fsetreprésentel'informa-onu-lesurladimension(Le-salaire-d'unemployé,-l'adresse-d'un-client...) Dim.%PRODUIT Surrogate$Clef$ (clé de substitution ) Id#Produit Nom#Produit Description#Produit A;ributs$ (descripteurs ) Sous3catégorie Famille#Produit Description#Catégorie Prix#unitaire 15 Dimension$ $composantes$(suite) Composantes$3$$$:$$$clés$spéciales$$ Date$effec-ve:Dateàlaquellel'enregistrementàétécréé,depréférencedanslesystèmed'enregistrements (Systemofrecords). Date$retrait:Dateàlaquellel'enregistrementaétére-rédusystèmed'enregistrements. Indicateur$effec-f:Engénéralest'O'sil'enregistrementesttoujoursac-f(Dateretraitestnulle),'N'sinon. Dim.%PRODUIT Id#Produit Nom#Produit Description#Produit Sous3catégorie Famille#Produit Description#Catégorie Prix#unitaire date#effective Date#retrait Indicateur#effectif 16 Surrogate$Clef$ (clé de substitution ) A;ributs$$(descripteurs ) Clés$spéciales
Différents$types$de$dimensions$ Dimension$dégénérée$(Degenerate/dimension)$$ Ladimension$dégénérée$estuneclédedimensiondansla''table''defaitsquiestengénéral sansasribut. Exemple:N -de-bon-de-cde,n -d'interruppon-de-service... Vu qu'il s'agit d'une seule clé de dimension, nous évitons alors de créer une ''table'' de dimension,cequifaitquecese''table''dedimensionadégénérédansla''table''desfaits:c'est pourceseraisonquecesecléestappelée«dimensiondégénérée» 17 Différents$types$de$dimensions$ Dimension$dégénérée$(Degenerate/dimension)$$ La dimension$ dégénérée$ est une clé de dimension dans la ''table'' de faits qui est en généralsansasribut. Exemple:No-de-bon-de-Cde,No-d'interrupPon-de-service... 18
Différents$types$de$dimensions$(suite) Junk$dimension$ Ladimensiondegenre«Junk/dimension/»estunedimensionquicon-enttoutessortede flags,statuts,codesquinefontpar-ed'aucunedimensionrégulière. Dansledomainedeladistribu-ondel'énergie,uneinterrup-ondeservicepeutêtrede type«basse-tension»ou«moyenne-tension». Cegenredecodeestdoncstockédansunetablespécialeappelée «Junk-dimension». 19 Différents$types$de$dimensions$(suite) Dimension$à$évolu-on$lente$(SCD/:/Slowly/Changing/Dimension)$ Unedimensionpeutsubirdeschangementsdedescrip-ondesmembres Unclientpeutchangerd'adresse,semarier,... Unproduitpeutchangerdenoms,deformula-ons; exemple:«tree's»en«m&m»;«raider»en«twix»;«yaourt-à-la-vanille»en«yaourt-saveur- Vanille» CeSesitua-onpeutGêtregéréeenchoisissantentre3solu-ons: Écrasementdel'anciennevaleur Versionnement Valeurd'origine/valeurcourante - Remarque-:-Danscertaincaslatransi-onn'estpasimmédiate:ilrestependantuncertaintemps desanciensproduitsenrayon.ilestalorsconseillédelestraitercommedeuxmembres différents. 20
Différents$types$de$dimensions$(suite) Dimension$à$évolu-on$rapide$(RCD/:/Rapid/Changing/Dimension)$ Unedimension$à$changement$rapideestunedimensionquisubitdeschangementstrèsfréquents desasributsdontonveutpréserverl'historique. Solution: isoler les attributs qui changent rapidement Exemple:Sil'onveutpréserverl'historiquedeschangementsd'adressedansladimension «Clients»dansunpaysoù70%delapopula-ondéménageunefoisparannée(le1 ier juilletpar exempleaucanada), Ladimension«Clients»devientdanscecasunedimensionàévolu-onrapide(RCD) 21 Différents$types$de$dimensions$(suite) Dimension$à$évolu-on$rapide$(RCD/:/Rapid/Changing/Dimension)$ 22
Différents$types$de$dimensions$(suite) Dimension$causale$(Causal/dimension)$ Ils'agitd'unedimensionquiprovoquedesfaits. Exemple:ladimension«Promo=on»peutengénéralprovoquerdesventes Autre exemple dans le domaine de la distribu-on de l'énergie la dimension «CondiPonclimaPque»peutprovoquerdes«InterrupPons-de-service».Ladimension«CondiPon-climaPque» estdoncune$dimension$causale. 23 Différents$types$de$dimensions$(suite) Dimension$conforme$(Conformed/dimension)$ Unedimension$conformeoupartagéeestunedimensionu-liséeparlesfaitsdeplusieurs datamarts. Exemple:ladimension«Produit»estu-liséepardifférentsdatamarts«Finance»,«Marke-ng» 24
Différents$types$de$dimensions$(suite) Mini$dimension$ $ Danstoutentrepôtdedonnées,ilexisteaumoinsunegrandedimension,quecesoitenterme d'enregistrementsoud'asributs. - Exemple:Ladimension«Clients»peutcontenirdesmillionsd'enregistrements.Leplussouvent, ongèrel'évolu-onlente(voirmêmel'évolu-onrapide)surcegenrededimensionce quiaugmenteencoreplusleurstailles. Unmoyenderéduirelatailledecegenrededimensionestsoitderecouriràlatechniquede «flocondeneige»siladimensionesthiérarchique,soitdecréerunemini$dimension,quicon-ent touslesasributssurlesquelsongèrel'évolu-onlente. 25 Différents$types$de$dimensions$(suite) Mini$dimension$ $ Exemple:Ladimension«Clients»d'unsystèmededistribu-ond'énergiecon-entplusieursmillions d'enregistrements,dontlesasributssont: $ IDclient(Iden-fiantduclient,surrogatekey) $ Codeduclient(Lacléd'affaireduclient,provenantdusystèmesource) $ Nomduclient. $ Adresseduclient. $ Transformateurassocié.(transformateurélectriquequialimenteleclient) $ Codeincidence(coded'incidenceduclient:MapourMajeur,MopourMoyen,Mipourmineur,GepourGrande Entrepris) $ 26
Différents$types$de$dimensions$(suite) Mini$dimension$ Supposonsquepourdesbesoinsd'affaires,lesu-lisateursdécidentdepréserverl'historiquedes changementsdesasributssuivants:«transformateur-associé»et«code-d'incidence». Nouscréonsdoncuneminidimensionquicon-entlescolonnessuivantes: $ IDSCDClient $ Transformateurassocié $ Coded'incidence Etdansladimension«Clients»,nousajoutonsunenouvelleclédedimension«ID-SCD-client»pour fairelelienentreladimension«clients»etlaminigdimension «SCD-Client» - Remarque:ladimension«Clients»con-nuedecontenirtouslesaSributsmêmeceuxsurlesquelsnous géronsl'évolu-onlente. 27 La$Modélisa-on$Mul-dimensionnelle La$modélisa-on$en$3FN$Vs$La$Modélisa-on$mul-dimensionnelle$: Dimension(TEMPS Dimension(MAGASIN ID#Temps ID#Magasin Description Description FAITS Année Ville ID#Magasin Provincr ID#Prrpoduit ID#Temps#(Date#Cde) ID#Client ID#Client#Demog Dimension(Démogrphie(Client Dimension(PRODUIT ID#Prrpoduit NomProduit TypeProduit DescProduit ID#Categorie DescCategorie Ventes Profits ID#Clien#Demog Id#Client Date Attributs#client Dimension(CLIENT ID#Client Nom 28
La$Modélisa-on$Mul-dimensionnelle " Lemodèlemul-dimensionneln'adhèrepaslarègledela3FN,enapla-ssanttouslesniveauxdela dimension. Dansnotreexemple,la''table''«Produit»estapla-eetlesniveauxTypeProduit,IdCategoriesont avectouslesasributsdanslamême''table''dedimension«produit». " Ilviolelarègledelale2FNdanslatabledesfaits. LacolonneId-Temps-(Date-Cde)-faitpar-edelacommandeetestreprisedanslatabledesfaits. " IlnesuitpaslarègledeBCFN(Boyce[Codd-normal-form)enpermeSantlaredondancedes données. Toutcommedanslatable«Client»etlaminidimension«Démographie-client». 29 La$Modélisa-on$Mul-dimensionnelle " Ilexiste3formesdemodèlesmul-dimensionnels: 1. Lemodèleenétoile(Star-schema) 2. Lemodèleenflocondeneige(Snowflake-schema) 3. Lemodèleenconstella-on(Fac`lake-schema) 30
Le$modèle$en$étoile$ PRODUIT COMMANDE N Cde Date Cde Code produit Nom Produit Description Produit TABLE DE FAITS Catégorie CLIENT N Client Nom Client Adresse Client Ville VENDEUR Code vendeur Nom Vendeur Ville Vendeur Quota N Cde N Client Code vendeur Code produit Clef date Nom Ville Quantité Prix total Description catégorie Prix unitaire DATE Clef date Date Mois Année VILLE Nom Ville Région Pays 31 Le$modèle$en$étoile$ % Une''table''$de$faits$:iden-fiantsdestablesdedimension;uneouplusieursmesures % Plusieurstables$de$dimension:descripteursdesdimensions Unegranularitédéfinieparlesiden-fiantsdanslatabledesfaits. Avantages/://// Facilitédenaviga-on Performances:nombredejointureslimité;ges-ondesdonnéescreuses. Ges-ondesagrégats Fiabilitédesrésultats Inconvénients/:/ Touteslesdimensionsneconcernentpaslesmesures Redondancesdanslesdimensions Alimenta-oncomplexe. 32
Propriétés$des$mesures$ Addi-vité:somme sur toutes les dimensions Quantités vendues, chiffre d affaire Peut être le résultat d un calcul Bénéfice = montant vente coût SemiDaddi-vité:somme sur certaines dimensions Solde d un compte bancaire Pas de sens d additionner les dates car cela représente des instantanés d un niveau Σ sur les comptes: on connaît ce que nous possédons en banque Non$addi-f$: fait non additionnable quelque soit la dimension Prix unitaire: l addition sur n importe quelle dimension donne un nombre dépourvu de sens 33 Exemples$de$modèles$mul-dimensionnels$$$ $Dans$la$grande$distribu-on$: Quelques''tables''defaits:détailléesetvolumineuses ''Tables''dedimensions: Classiques:Produit,--Fournisseur,--Temps,--Etablissement-(structuregéographique,fonc-onnelle)... Stratégiques:Client,-PromoPons, - Remarque-:Obtenirleplusd'enregistrementspossibles. $Dans$le$secteur$des$banques$: ''Tables''desfaits:nombreuses,dédiéesàchaqueproduit,peudétailléesetpeuvolumineuses. ''Tables''dedimensions: Classiques:Produit,--Temps,--Etablissement-(structuregéographique,fonc-onnelle)... Stratégiques:Client,... Remarque-:-Obtenirleplusdedonnées(champs)possibles. 34
Le modèle en flocons de neige Le modèle de l' ED doit être simple à comprendre. On peut augmenter sa lisibilité en regroupant certaines dimensions. On définit ainsi des hiérarchies. Celles-ci peuvent être géographiques ou organisationnelles. Exemple : Commune, Département, Région, Pays, Continent Client Commune Département Region Pays Continent Pepone Lyon 1 Rhône Rhône-Alpes France Europe Testut Lyon 2 Rhône Rhône-Alpes France Europe Soinin Lyon 3 Rhône Rhône-Alpes France Europe Vepont Paris 1 Paris Ile-de-France France Europe Martin Paris 2 Paris Ile-de-France France Europe Elvert Versailles Yvelines Ile-de-France France Europe 35 Le modèle en flocons de neige PRODUIT COMMANDE Code produit N Cde Nom Produit Date Cde PRODUIT Description Produit CATEGORIE COMMANDE TABLE DE FAITS Code produit Catégorie Catégorie N Cde N Cde Nom Produit Description catégorie Desc. Cat Date Cde Desc. Produit CLIENT N Client Prix unitaire TABLE DE FAITS Catégorie N Client Code vendeur N Cde Prix unitaire CLIENTNom Client N Client Code produit DATE N Client Adresse ClientCode vendeur Clef date Clef date ANNEE Nom Client Ville Code produit Nom Ville DATE Date MOIS Année Adresse Client Clef date Clef date Mois Quantité Mois Ville Nom Ville Date Année VENDEUR Prix total Année Quantité Mois VENDEUR Code vendeurprix total Code vendeur Nom Vendeur VILLE Nom Vendeur VILLE REGION PAYS Ville Vendeur Nom Ville Ville Vendeur Nom Ville Région Pays Quota Quota Région Région Pays Pays Pays 36
Le modèle en flocons de neige Id#Marque Id#Famille MARQUE Id#Produit Nom#Produit Id#Cde Description#Produit Famille Date#Cde ANNEE Sous9catégorie Id#Année Famille#Produit Description#Catégorie SEMESTRE Prix#unitaire ###Id#Semestre COMMANDE SOUS4CATEGORIE SEMAINE MOIS PRODUIT Id#Semaine Id#Mois VENTES CATEGORIE DATE Id#Cde Id#Sous9catégorie Id#Client JOUR Id#Vendeur Id#Sous9catégorie Id#Produit ##Id#Mois Id#Date Id#Client CLIENT Id#Ville Nom#Client VILLE DEPARTEMENT Adresse#Client Quantité MAGASIN Ville#Client Prix+total ###Id#Département VENDEUR Id#Ville## Id#Magasin ZONEGEO. Id#Vendeur## Ville#Mag. Id#Zone#géo. Ville#Vendeur#### Département#Mag. Quota# Zone#géographique Région#Mag. Pays#Mag. 37 Le$modèle$en$flocons$de$neige$ Schéma en arbre d'attributs ANNEE COMMANDE Famille MARQUE SEMESTRE VENTES Id#Cde Id#Client PRODUIT SEMAINE MOIS DATE Id#Vendeur SOUS7CATEGORIE CATEGORIE Id#Produit Id#Date CLIENT Id#Ville VILLE DEPARTEMENT REGION PAYS JOUR MAGASIN Quantité Prix+total VENDEUR ZONEGEO. 38
Le$modèle$en$flocons$de$neige$ Modèle en flocons de neige = Modèle en étoile + normalisation des dimension Lorsque les tables sont trop volumineuses Avantages : réduction du volume permettre des analyse par pallier (drill down) sur la dimension hiérarchisée Inconvénients : navigation difficile nombreuses jointures 39 Les$hiérarchies$ Les différents types d'hiérarchies " Les hiérarchies strictes et simples 40
Les$hiérarchies$ Les différents types d'hiérarchies " Les hiérarchies multiples alternatives 41 Les$hiérarchies$ Les différents types d'hiérarchies " Les hiérarchies multiples parallèles 42
Les hiérarchies Les différents types d'hiérarchies " Les hiérarchies multiples parallèles 43 Les$hiérarchies$ Les différents types d'hiérarchies " Les hiérarchies multiples parallèles Etat$ Propaga-on$virus$du$Nil$ Ville$ Territoire$ Pays$ occidental Province$ 44
$Représenta-on$$des$données$mul-dimensionnelles$ & Les diagramme UML de SOLAP Dim.%ANNEE Id#Année Dim.%SEMESTRE Id#Semestre Dim.%MOIS Id#Mois Dim.%PAYS Id#Pays Dim.%MARQUE Dim.%CATEGORIE Dim.%REGION Dim.%ZONE%GEO. Id#Marque Id#Région Id#Région Id#Zone#géo. Dim.%Famille Dim.%SOUS:CATEGORIE Dim.%DEPARTEMENT Dim.%VILLE Dim.%JOUR Id#Famille Id#Sous;catégorie Id#Département Id#Ville Id#Jour VENTES Id#Cde Id#Client Dim.%PRODUIT Dim%DATE Id#Vendeur Id#Produit Dim.%MAGASIN Id#Date Id#Produit Nom#Produit Id#Magasin Dim.%CLIENT Jour Id#Date Description#Produit Ville#Mag. Id#Client Semaine Id#Ville Sous;catégorie Département#Mag. Nom#Client Dim.%VENDEUR Dim.%COMMANDE Mois Famille#Produit Zone#géographique Adresse#Client Id#Vendeur Id#Cde Semestre Quantité Description#Catégorie Région#Mag. Ville#Client Ville#Vendeur Date#Cde Année Prix+total Prix#unitaire Pays#Mag. Quota 45 Lemodèle$en$constella-on$(FactDflaked)$ " La modélisation en constellation consiste à fusionner plusieurs modèles en étoile qui peuvent utiliser des dimensions communes. " Un modèle en constellation comprend donc plusieurs tables de faits et des tables de dimensions communes ou non à ces tables de faits. 46
Lemodèle$en$constella-on$(FactDflaked)$ Dim.%ANNEE Id#Année Dim.%PRODUCTION Dim.%USINE Id#Production Id#Usine Id#Produit Dim.%SEMESTRE Id#Date Id#Semestre Dim.%COMMANDE Id#Usine Dim.%SEMAINE Id#Cde # Id#Semaine Date#Cde Qté$produite Dim.%MOIS Dim.%PRODUIT Id#Mois Dim%DATE Id#Produit Id#Date Nom#Produit Dim.%Famille Dim.%MARQUE Jour Description#Produit Id#Famille Id#Marque Dim.%JOUR Semaine VENTES Sous=catégorie Id#Jour Mois Id#Cde Famille#Produit Semestre Id#Client Description#Catégorie Dim.%SOUS9CATEGORIE Dim.%CATEGORIE Année Id#Vendeur Prix#unitaire Id#Sous=catégorie Id#Région Id#Produit Id#Date Dim.%CLIENT Id#Ville Dim.%REGION Dim.%PAYS Id#Client Id#Région Id#Pays Nom#Client Quantité Dim.%DEPARTEMENT Adresse#Client Prix$total Id#Département Ville#Client Dim.%MAGASIN Id#Magasin Ville#Mag. Dim.%VILLE Dim.%ZONE%GEO. Dim.%VENDEUR Département#Mag. Id#Ville Id#Zone#géo. Id#Vendeur Zone#géographique Ville#Vendeur Région#Mag. Quota Pays#Mag. 47 Es-mer$le$volume$du$DW$$ Calculer ou estimer le nombre d'enregistrements Prendre en compte : # La ''table'' de faits # Les dimensions significatives # Les agrégats # Les index # Saisonnalité des ventes # Croissance du CA, des encours, du nombre de points de ventes 48
Exemples Grandes distribution : CA annuel : 80 000 M$ Prix moyen d'un article d'un ticket : 5$ Nbre d'articles vendus pour un an : 80 * 10 9 / 5 = 16 * 10 9 Volume du DW : 16*10 9 *3 ans * 24 octets = 1,54 To (1,54*10 12 = 1 540 Go ) Téléphonie : Nbre d'appels quotidiens : 100 millions Historique : 3 ans * 365 jours= 1 095 jours Volume du DW : 100 millions * 1 095 jours * 24 octets = 3,94 To Cartes de crédit : Nbre de clients : 50 millions Nbre moyen mensuel de transactions : 30 Volume : 50 millions * 26 mois * 30 transactions * 24 octets = 1,73 To 49 Modélisa-on$logique$ou$Représenta-on$des$données$ Les données sont perçues à travers plusieurs dimensions. Elles sont qualifiées de multidimensionnelles, indépendamment de leur support (tables relationnelles ou tableaux multidimensionnels) Produit Region Ventes Clous Est 50 Clous Ouest 60 Clous Centre 100 Vis Est 40 Vis Ouest 70 Vis Centre 80 Boulons Est 90 Boulons Ouest 120 Boulons Centre 140 Nettoyeurs Est 20 Nettoyeurs Ouest 10 Nettoyeurs Centre 30 Est Ouest Centre Clous, 50 60 100 Vis 40 70 80 Boulons 90 120 140 N ettoyeurs 20 10 30 Représentation des données dans un tableau multidimensionnel Représentation des données dans une table relationnelle 50
Les$requêtes$décisionnelles$ On peut calculer divers totaux. Quelle est le total des ventes dans la région Est? # Tables relationnelles : on peut traiter quelques centaines de tuples par seconde. # Tableau multidimensionnel : on peut rajouter en lignes et en colonnes plus de 10000 valeurs par seconde. Pour accélérer les temps de réponses, il est préférable de pré-calculer des sous totaux. 51 Les$requêtes$décisionnelles$ Produit Region Ventes Clous Est 50 Clous Ouest 60 Clous Centre 100 Clous Total 210 Vis Est 40 Vis Ouest 70 Vis Centre 80 Vis Total 190 Boulons Est 90 Boulons Ouest 120 Boulons Centre 140 Boulons Total 350 Nettoyeurs Est 20 Nettoyeurs Ouest 10 Nettoyeurs Centre 30 Nettoyeurs Total 60 Total Est 200 Total Ouest 260 Total Centre 350 Total Total 810 Pour le calcul de ces totaux : 28 accès en lecture et 8 accès en écriture. Est Ouest Centre Total Clous 50 60 100 210 Vis 40 70 80 190 Boulons 90 120 140 350 Nettoyeurs 20 10 30 60 Total 200 260 350 810 OLAP consolide entre 20 000 et 30 000 cellules/s Un SGBDR lit 200 enregist/s et en écrit environ 20/s. 52
Les$requêtes$décisionnelles$ La valeur ALL remplace une colonne ou une valeur d'agrégats. Magasin Date Rayon CA Ventes Mag1 1/2/96 010 3500 Mag1 6/2/96 010 2500 Mag1 10/2/96 010 2900 Mag1 ALL 010 8900 Mag2 S'il y a N attributs concourant à la construction du cube, il y aura : 2 N -1 agrégations Soit C 1, C 2,,C N les cardianlités des N attributs, le cube aura : (C i +1) enregistrements Dans la tables VENTES si on a 2*3*3 = 18 enregist. dans le cube on aura 3*4*4* = 48 enregist. 53 Les$différentes$approches$d'OLAP$ L'approche relationnelle (ROLAP) (MicroStrategy MS ; Informix's Metacube MC, Information Advantage IA) L'ensemble des données est stocké dans une BDR. Les données sont sous forme d'enregistrements (tuples). VENTES (Magasin, Rayon, Date, CA Ventes, Nb Client) Select Magasin, Date, Sum(CA Ventes) From VENTES Group By Magasin, Date Opérateurs d'agrégation : cube, rollup. ' J.Gray, A. Bosworth, A. Leyman, H. Pirahesh, Data Cube : A relationnal Aggregation Operator Generalizing Group-By, Cross- Tab, and Sub-Total, in Data Mining and Knowledge Discovery Journal, 1(1), 1997] 54
Les$requêtes$décisionnelles$ L'union de plusieurs group-by donne naissance à un cube : Select ALL, ALL, ALL, Sum(CA Ventes) From VENTES UNION Select Magasin, ALL, ALL, Sum(CA Ventes) From VENTES Group-By Magasin ; UNION Select Magasin, Date, ALL, Sum(CA Ventes) From VENTES Group-By Magasin, Date ; UNION Select Magasin, Date, Rayon, Sum(CA Ventes) From VENTES Group-By Magasin, Date, Rayon ; L'opérateur cube est une généralisation N-dimensionnelle de fonctions d'agrégations simples. C'est un opérateur relationnel. Select Magasin, date, Rayon, Sum(CA Ventes) From VENTES Group-By Cube Magasin, Date, Rayon ; 55 Les$différentes$approches$d'OLAP$ L'approche multidimensionnelle (MOLAP) Arbor Software : hyperion (Codd & co ), Express Oracle, LightShip (de Pilot) Il s'agit de stocker les données dans des tableaux multidimensionnels. Ces tableaux peuvent être éparses. On y stocke dans les cellules les mesures (valeurs à observer), les données représentant les dimensions sont les coordonnées de ces valeurs : f = (d 1, d 2,, d n, m 1, m 2,, m p ) [Zhao Yihong, Deshpande Prasad M., Naughton Jeffrey F., «An Array-Based Algorithm for Simultaneous Multidimensional Aggregates», in SIGMOD Record n 26, Vol 2, 1997.] 56
Les$différentes$approches$d'OLAP$ BD éparse # Plus on a de dimensions plus on a de cellules. Seulement une partie des produits peut être vendue ( des cellules sans valeur : données éparses. Exemple : On dispose de 100 000 données (eq. tuples) 4 dimensions ayant une cardinalité de 30 modalités chacune: 30 * 30 * 30 * 30 = 810 000 cellules (dont 710 000 vides : 12,3% seulement sont pleines) # Une BD est considérée comme éparse si elle a moins de 40% de ses cellules peuplées. # Techniques de compression des données 57 Les$différentes$approches$d'OLAP$ L'approche hybride (HOLAP) Approche relationnelle : 30% du temps est consacré aux I/O Approche multidimensionnelle : 20% (70% calculs et 10% décompression) La 3 voie préconisée consiste à utiliser les tables comme structure permanente de stockage des données et les tableaux comme structure des requêtes. La démarche consisterait en 3 étapes : 1. Charger les données d'une table vers un tableau. 2. Calculer le cube de ce tableau selon les méthodes initialement présentées. 3. Stocker les résultats (données agrégées) dans un table. 1 Pays 5 Régions 500 Villes BDM 50 000 Clients BDR 58
Les$différentes$structures$mul-dimensionnelles$ " Les magasins de données (data marts) & Simples magasins de données (Data Marts), on y stockera des données portant sur une seule des activités de l'entreprise & Ceux sont en quelque sorte des vues métier & Exemple : Data Mart Comptabilité, Data Mart RH,... & Ces mini ED peuvent alors être considérés comme des espaces d'analyse, du fait que les données sont bien moins nombreuses et surtout qu'elles sont thématiques et modélisées en multidimensionnel & Ils peuvent également servir de bases de construction à des cubes de données 59 Entrepôts,$Magasins$et$Cubes$de$données$ MD Magasins de données Data Mining MD Entrepôt$ de$ données$ MD MD MD Cube Cube Cube Cubes de données Analyses statistiques MD OLAP Reporting 60