Cas Fantastic
Cas Fantastic
Cas Fantastic
Introduction aux
data warehouses :
la modélisation en
étoile
dwh1.pdf
STÉPHANE CROZAT
I - Cours 3
II - Exercice 8
Bibliographie 26
Index 27
Contenus annexes 28
Stéphane Crozat
2
I - Cours I
Objectifs
Comprendre ce qu'est et à quoi sert un data warehouse.
Comprendre les différences entre un data warehouse et une base
de données transactionnelle.
1. Décisionnel
Définition
«
Le système d'information décisionnel est un ensemble de données organisées de
façon spécifiques, facilement accessibles et appropriées à la prise de décision [...].
La finalité d'un système décisionnel est le pilotage d'entreprise.
Les systèmes de gestion sont dédiés aux métiers de l'entreprise [...].
Les systèmes décisionnels sont dédiés au management de l'entreprise [...].
(Goglin, 2001, pp21-22) »
Synonymes : informatique décisionnelle, business intelligence, BI
2. Data warehousing
«
A data warehouse is a subject-oriented, integrated, nonvolatile, and time-variant
collection of data in support of management's decisions. The data warehouse
contains granular corporate data.
(Inmon, 2002, p31) »
Stéphane Crozat
3
Cours
Définition
Un data warehouse (DW) est une base de données construite par copie et réorganisation de
multiples sources (dont principalement le système transactionnel de l'entreprise), afin de servir
de source de données à des applications décisionnelles :
il agrège de nombreuses données de l'entreprise (intégration) ;
il mémorise les données dans le temps (historisation) ;
il les organise pour faciliter les requêtes de prise de décision (optimisation).
(Goglin, 2001, p27) [(Goglin, 2001)]
Synonymes : entrepôt de données, base de données décisionnelle
Fondamental
L'objectif du data warehouse est de permettre des requêtes sur de grands ensembles
des données, la plupart du temps sous forme d'agrégats (GROUP BY) afin d'en obtenir
une vision synthétique (propre à la prise de décision).
Remarque
Le data warehouse dédié au décisionnel est séparé du système transactionnel dédié à la
gestion quotidienne.
BD transactionnelle
Une base données classique est destinée à assumer des transactions en temps réel :
Ajout, mise à jour suppression de données
Questions sur des données identifiées ou questions statistiques
Datawarehouse
Un DW est uniquement destiné à l'exécution de questions statistiques sur des données
statiques (ou faiblement dynamiques).
Stéphane Crozat
4
Cours
Fondamental
Les deux problématiques fondamentales des DW sont l'optimisation et la
simplification : comment rester performant et lisible avec de très gros volumes de
données et des requêtes portant sur de nombreuses tables (impliquant beaucoup de
jointures) ?
On utilise massivement :
Les vues concrètes : Un data warehouse procède par copie depuis le ou les
systèmes transactionnels
La dénormalisation : Un data warehouse est hautement redondant
Fondamental
Le caractère statique du data warehouse efface les inconvénients de ces techniques
lorsqu'elles sont mobilisées dans des systèmes transactionnels.
Rappel
Dénormalisation - p.29
Vues concrètes - p.29
Stéphane Crozat
5
Cours
Exemple
P
<<dimension>> <<dimension>> S
Lieu Date
R
#CodePostal #Timestamp T
Département Heure
D Région JourDeSemaine
Pays JourDeAnnée S M
<<fait>> Semaine
CP Achat Mois
Trimestre H JdS JdA A
Quantité Semestre
Prix Année
fkLieu TS
fkDate
fkProduit
fkClient P
<<dimension>> <<dimension>>
Produit Client
R
Px T #Référence #CodeClient
Prix Age
Type Genre D
Ref CodePostal
Département
Région A G CP
Pays
CC
Exemple de modèle dimensionnel en étoile
Définition : ETL
L'ETL (Extraction Transformation Loading) est le processus de copie des données depuis les
tables des systèmes transactionnels vers les tables du modèle en étoile du data warehouse.
Stéphane Crozat
6
Cours
Exemple
<<dimension>> <<dimension>>
Ville
Département Lieu Date
Remarque
Les tables du modèle dimensionnel peuvent être vues comme des vues concrètes sur le
systèmes transactionnel, à la nuance que des transformations (correction d'erreur,
extrapolation...) peuvent avoir été apportées dans le processus ETL.
Complément
https://stph.scenari-community.org/dwh/1
1 - https://stph.scenari-community.org/dwh/
Stéphane Crozat
7
II - Exercice II
Cet exercice constitue une simulation de modélisation dimensionnelle basée sur une étude de
cas.
Rappel
La modélisation en étoile
Fondamental
Un modèle dimensionnel est le résultat :
d'une analyse des besoins : ce que je souhaite étudier.
d'une analyse des données disponibles : ce que je peux étudier.
Stéphane Crozat
8
Exercice
suggestion de
données nécessaires
Analyse des besoins Analyse des données
suggestion de
requêtes possibles
Négociation
Utilité / Qualité
Modélisation du
datawarehouse
Modélisation des
datamarts
Remarque
Il est généralement intéressant de paralléliser les tâches d'analyse des besoins et d'analyse
des données.
En particulier il est inutile d'aller trop loin dans l'expression de besoins que l'on sait a priori
impossibles à satisfaire pour cause d'absence de donnée ou d'absence de donnée exploitable.
Rappel : Informations
Il est conseillé de conserver certains champs d'information dans le modèle dimensionnel,
même s'ils ne seront pas exploités pour les calculs ou les agrégats.
Cela permettra par exemple d'identifier des enregistrements, comme les désignations de
produits.
On pourra noter en italique ces champs dans le modèle dimensionnel.
2. Présentation du cas
Stéphane Crozat
9
Exercice
La direction de l'entreprise souhaite faire une étude large sur les ventes de l'année passée afin
de prendre des orientations stratégiques nouvelles : ouverture de nouveaux magasins,
fermeture ou transfert de magasins mal implantés, extension territoriale à de nouveaux
départements français, réorganisation des directions, réorientation du marketing,
élargissement ou réduction du catalogue, etc.
Fondamental
La question posée est donc : quels sont les facteurs sur lesquels l'on pourrait jouer
pour augmenter les ventes ?
Elle vous charge dans ce cadre de mettre en place une solution logicielle permettant d'intégrer
les données pertinentes et de pouvoir les interroger efficacement sous des angles divers.
Notons que bien entendu, la direction éclairée de l'entreprise ne compte pas se fier à ces seuls
facteurs de ventes pour prendre ses décisions, mais bien privilégier les facteurs sociaux et
territoriaux, en dialoguant avec ses salariés et ses clients, pour maintenir sa mission culturelle
et son rôle d'entreprise citoyenne. Votre posture d'ingénieur est bien entendu de se préoccuper
de ces dimensions fondamentales, même si elles seront largement ignorées dans le cadre de
cet exercice à vocation essentiellement technique. Elle pourront néanmoins être brièvement
abordées en marge de vos rapports d'analyse.
Attention : Installation
Le cas repose sur une installation spécifique, nous utiliserons les termes génériques
suivantes :
oracle.univ.fr le nom d'un serveur Linux hébergeant une instance Oracle
prof le nom d'un schéma Oracle géré par l'enseignant
etuXXX le nom d'une série de schémas Oracle disponibles pour les étudiants
prof le nom d'un compte Linux géré par l'enseignant sur oracle.univ.fr
profdir le chemin du compte de prof sur le serveur Linux
etuXXX le nom d'une série de comptes Linux disponibles pour les étudiants
www.univ.fr/fantastic le nom d'un site Web géré par l'enseignant
Stéphane Crozat
10
Exercice
Ces données sont disponibles sous la forme d'un fichier CSV dans un répertoire du
serveur oracle.univ.fr : profdir/data
La structure du fichier est : Numéro de ticket, date de ticket, produit, magasin (comme
c'est rappelé dans la documentation HTML associée)
Méthode
Inspecter les données pour chaque source :
1. Se connecter à la base Oracle avec SQL Developer et inspecter le schéma de la table
Oracle.
2. Ouvrir un terminal et se connecter en ssh au serveur.
Utiliser la commande Unix more pour regarder les premières lignes du fichier Fantastic.
3. Récupérer le fichier CSV departementsInsee2003.txt et l'ouvrir avec un éditeur de
texte.
4. Récupérer le fichier ODS et l'ouvrir avec un traitement de texte.
Documentation
Relevé des ventes de livres Fantastic pour l'année 2015
1. Ticket number
2. Date
3. ISBN
4. Store
Commande 1
1 "142282000001";2015-10-10;"769";"M143"
2 "0"; ;"9782841724680";"M119"
3 "082229000003";2015-08-18;"9782266186315";"83"
4 "082229000003";2015-08-18;"9782266186315";"M83"
5 "082229000003";2015-08-18;"9782266186315";"M83"
6 "028093000004";2015-04-04;"9780765341600";"M29"
7 "115072000005";2015-03-14;"9782290348789";"M116"
8 "040187000006";2015-07-07;"9782702141045";"M41"
Stéphane Crozat
11
Exercice
9 "031002000007";2015-01-03;"552";"M32"
10 "055114000008";2015-04-25;"9782207301999";"M56"
Commande 2
1 wc -l Fantastic
1 512018
ii Fichier "departementsInsee2003.txt"
Documentation
Liste des départements français, 2003
1. Department Départements français métropolitains
2. DptName Nom du département
3. Population Population du département en 2003
Commande 1
1 "01";"Ain";"529378"
2 "02";"Aisne";"552320"
3 "03";"Allier";"357110"
4 "04";"Alpes-de-Haute-Provence";"144809"
5 "05";"Hautes-Alpes";"126636"
6 "06";"Alpes-Maritimes";"1022710"
7 "07";"Ardèche";"294522"
8 "08";"Ardennes";"299166"
9 "09";"Ariège";"142834"
10 "10";"Aube";"301388"
Commande 2
1 wc -l departementsInsee2003.txt
1 95
Documentation
Rayonnage : Le responsable des ventes de chaque département décide de l'organisation des
rayonnages des magasins de son département. Il existe 3 types de rayonnage : par Auteur
(A), par Année (Y), par Éditeur (E)
Stéphane Crozat
12
Exercice
Commande 1
1 DESCRIBE catalogue
Commande 2
Commande 3
1 1443
Stéphane Crozat
13
Exercice
Objectifs
Savoir faire une étude des données existantes
Méthode
Pour chaque source de données identifiée on proposera une synthèse avec les informations
suivantes :
Nom, origine précise, nombre de lignes de la source
Nom, type et description des colonnes
Qualité
- 0 : données inexploitables
- 1 : données peu exploitables (traitements incertains)
- 2 : données exploitables après traitements
- 3 : données exploitables sans traitement
Utilité
- 0 : données sans intérêt
- 1 : données utiles pour la documentation uniquement
- 2 : données utiles a priori
- 3 : données utiles avec certitude
Commentaires.
Exemple
...
Tableau 1 Table Oracle oracle.utc.fr/schema.table [1000 lignes]
Stéphane Crozat
14
Exercice
Méthode
Afin d'avoir une vision globale de l'ensemble des données, il est conseillé de rétro-concevoir :
une représentation relationnelle des données telles qu'elles existent
une représentation relationnelle des données idéalisées (telles qu'elles existeraient si
elles étaient normalisées dans une même BD)
une représentation conceptuelle en UML
[1h]
Afin de réaliser votre travail, l'entreprise vous met à disposition les données suivantes.
Dans le contexte de cet exercice, les données vous sont livrées a priori, notez que dans un
contexte réel, vous aurez la plupart du temps à rechercher vous même les données qui
peuvent exister.
Données disponibles
Question 1
[Solution n°1 p 21]
Établissez le modèle relationnel sous-jacent aux données présentes.
Indice :
Pour initier une connexion ssh : ssh user@serveur
Question 2
Étudiez les données dont vous disposez et proposez une synthèse des données disponibles
pour chaque source.
Indice :
Pour compter les lignes d'un fichier texte sous Linux, on peut utiliser la commande wc
-l
Question 3
[Solution n°2 p 21]
Afin de clarifier les données et leur organisation, rétro-concevez un modèle relationnel
normalisé en troisième forme normale unifiant toutes les données grâce à l'identification de
clés primaires et l'expression de clé étrangères.
Question 4
Rétro-concevez le modèle conceptuel en UML correspondant au modèle relationnel normalisé
(un modèle UML peut être plus facile à utiliser ensuite).
Objectifs
Savoir formaliser une étude de besoins sous forme de requêtes
multidimensionnelles
Stéphane Crozat
15
Exercice
a) Requête décisionnelle
Fondamental
Les faits sont des grandeurs que l'on cherche à mesurer (prix, quantité...)
Les dimensions sont des axes d'analyse (date, lieu, produit, personne...)
Syntaxe
1 quantité de faits
2 / dimension1
3 / dimension2
4 ...
Exemple
"Quelle a été la quantité de produits vendus en fonction des départements et des mois de
l'année."
b) Rapport
Définition : Rapport
La réponse à une requête décisionnelle est un rapport, généralement sous une forme tabulaire
ou graphique.
Synonyme : État
Exemple
01 02 03
J F M A M J J A S O N D J F M A M J J A S O N D J F M A M J J A S O N D
04 05 06
J F M A M J J A S O N D J F M A M J J A S O N D J F M A M J J A S O N D
07 08 09
J F M A M J J A S O N D J F M A M J J A S O N D J F M A M J J A S O N D
Exemple de rapport
Méthode
Les besoins des utilisateurs s'expriment en général plus facilement sous la forme d'exemples
de rapports recherchés.
Stéphane Crozat
16
Exercice
c) Hiérarchie
Définition : Hiérarchie
Une hiérarchie est un ensemble de paramètres d'étude de granularité croissante appartenant à
une même dimension au sein d'un modèle décisionnel.
Exemple
Remarque
Une même dimension peut contenir plusieurs hiérarchies.
[30 min]
À partir de l'étude des besoins sommaire effectuée par un de vos collègues, et en fonction des
données disponibles, exprimer les requêtes cibles de votre système.
Le contexte de l'exercice ne permet pas de dialoguer réellement avec des utilisateurs, en
situation réelle il faudra développer cette phase de recueil des besoins des
utilisateurs. Vous pourrez amendez l'indicateur d'utilité des données en fonction de cette
étude.
Question 1
[Solution n°3 p 21]
«
La direction marketing est en charge de l’implantation des magasins dans les
départements et de l'organisation des rayonnages (type de rangement et présence
de rayons spécifiques pour les best-sellers). Elle cherche à savoir si l'organisation
du rayonnage des magasins a une influence sur les volumes ventes, et si cela
varie en fonction des jours de la semaine ou de certaines périodes de l'année. Elle
»
voudrait également savoir si certains magasins ou départements sont plus
dynamiques que d'autres.
Question 2
[Solution n°4 p 22]
«
La direction éditoriale se demande si certains livres se vendent mieux à certaines
dates et/ou dans certains magasins ou départements. Elle aimerait également
savoir si certains auteurs ou éditeurs se vendent mieux, et s'il existe un lien entre
»
l'ancienneté des livres et les ventes. Elle se demande aussi si certaines périodes
sont plus propices que d'autres à l'écoulement des livres les plus anciens.
Stéphane Crozat
17
Exercice
7. Modélisation en étoile
«
A row in a fact table corresponds to a measurement. A measurement is a row in a
»
fact table. All the measurements in a fact table must be the same grain. (Kimball,
Ross, 2008, p.17)
« »
Fact tables express the many-to-many relationships between dimensions in
dimensional models.(Kimball, Ross, 2008, p.19)
Remarque
La table des faits est (dans la plupart des cas) la table la plus volumineuse (avec le plus grand
nombre de lignes) du modèle.
Exemple
« »
The most useful facts are numeric and additive. (Kimball, Ross, 2008, p.17)
«
Preferably you should develop dimensional models for the most atomic
information captured by a business process. Atomic data is the most detailed
»
information collected; such data cannot be subdivided further. (Kimball, Ross,
2008, p.34)
Stéphane Crozat
18
Exercice
« »
Dimension tables are the entry points into the fact table. [...] The dimension
implement the user interface to the data warehouse. (Kimball, Ross, 2008, p.20)
Exemple
Conseil : Intelligibilité
« »
The best attributes are textual and discrete. Attributes should consist of real
words rather than cryptic abbreviations. (Kimball, Ross, 2008, p.20)
Question 1
[Solution n°5 p 22]
Proposez une modélisation dimensionnelle en étoile pour chaque contexte d'usage (directions
marketing et éditoriale) :
1. identifiez la table des faits
2. identifiez les dimensions en intégrant les vues exprimées (utilisez le rapport
qualité/utilité pour décider des données que vous souhaitez conserver)
Question 2
[Solution n°6 p 23]
Intégrer vos deux sous-modèles pour proposer le modèle de votre data warehouse.
Stéphane Crozat
19
Exercice
Vous pourrez augmenter vos dimensions de données disponibles bien que non identifiées a
priori lors de l'analyse des besoins.
Question 3
[Solution n°7 p 23]
Établissez les métadonnées du modèle dimensionnel : décrivez chaque données (type précis,
description...) ; identifiez la clé primaire de chaque dimension, ainsi que les informations
descriptives.
Question 4
[Solution n°8 p 24]
Proposez la représentation logique finale de votre modèle dimensionnel, en affichant :
la table des faits et les dimensions
l'ensemble des attributs
les clés primaires et étrangères
les types de données
les hiérarchies
Stéphane Crozat
20
Solution des
exercices
catalogue(#isbn,titre,fkauteur=>auteur,langue=>langue,parution,editeur=>editeur,g
enre)
5 data(num,magasin=>magasin,date,isbn=>catalogue)
6 magasin(#magasin, dpt=>dpt,rayonnage,ray_nom,rayon_bs, ray_recent)
7 dpt(#dpt,nom,pop)
1 Quantite
2 / rayonnage
3 / rayon_bs
4 / rayon_recent
1 Quantite
2 / semaine
3 / mois, trimestre
4 / jds
5 / rayonnage
6 / rayon_bs
1 Quantite
2 / magasin, dpt
1 Quantite
2 / date (semaine)
3 / date (mois, trismestre)
Stéphane Crozat
21
Solution des exercices
4 / date (jds)
5 / magasin (rayonnage)
6 / magasin (rayon_bs)
7 / magasin (recent)
1 Quantite
2 / magasin (dpt)
1 Quantite
2 / produit
3 / magasin, departement
4 / date, semaine
5 / date, mois, trismestre
1 Quantite
2 / auteur
3 / editeur
1 Quantite
2 / jds
3 / jds, semaine
4 / parution
1 Quantite
2 / produit
3 / magasin (departement)
4 / date (semaine)
5 / date (mois, trismestre)
1 Quantite
2 / produit (auteur)
3 / produit (editeur)
1 Quantite
2 / date (jds)
3 / date (semaine)
4 / produit (parution)
Rayonnage
Ventes Magasin
Semaine Date
Rayon_bs
Rayon_recent
JourDeSemaine Mois
Trimestre
Vue direction marketing
Stéphane Crozat
22
Solution des exercices
Auteur Éditeur
Parution
Produit
Departement
Ventes Magasin
Semaine Date
JourDeSemaine
Vue direction éditoriale
Produit
Parution
Rayonnage
Departement
Ventes Magasin
Semaine Rayon_bs
Date
Rayon_recent
JourDeSemaine Mois
Trimestre
Vue intégrée
Stéphane Crozat
23
Solution des exercices
Date Tri
Date (pk) : date
JDS : [Lu,Ma,Me...] Sem
Lan Produit JDA : [1..365] Moi
Age ISBN(pk) : char(13) Mois : [1..12] JDS JDA
Langue : char(2) Trimestre : [1..4]
Auteur : char(25) Semaine : [1..52]
I Editeur : char(25) Dat
Age : int(2)
Edi
Aut
Ventes
fkDate
fkProduit
fkMagasin
Magasin Rec BS
Num(pk) : char(4)P Dpt
Rayon : [A,E,Y]
BS : boolean Ray
Recent : boolean Num
Dpt : char(2)
Stéphane Crozat
24
Signification des
abréviations
- BD Base de Données
- BI Business Intelligence
- DW Data Warehouse
Stéphane Crozat
25
Bibliographie
[(Goglin, 2001)] Goglin J.-F. (2001, 1998). La construction du datawarehouse : du datamart au dataweb. Hermes,
2ème édition.
[(Inmon, 2002)] Inmon W.-H. (2002, 1990). Building the data warehouse. Wiley Publishing, 3rd edition.
[(Kimbal, Ross, 2003)] Kimball R., Ross M. (2003). Entrepôts de données : guide pratique de modélisation
dimensionnelle. Vuibert.
[(Kimball, Ross, 2008)] Kimball R., Ross M. (2008, 2002). The Data Warehouse Toolkit: The Complete Guide to
Dimensional Modeling. Wiley Publishing, second edition.
[(Kimball et al., 2008)] Kimball R., Ross M., Thornthwaite W., Mundy J., Becker B. (2008, 1998). The Data
Warehouse Lifecycle Toolkit. Wiley Publishing, second edition.
Stéphane Crozat
26
Index
Dénormalisation p.Erreur : source de Normalisation p.Erreur : source de la Vue p.Erreur : source de la référence non
la référence non trouvée référence non trouvée trouvée
Redondance. . p.Erreur : source de la
référence non trouvée
Stéphane Crozat
27
Contenus annexes
datamart1
datawarehouse
datamart2
Stéphane Crozat
28
Contenus annexes
- Dénormalisation
Rappel
La normalisation est le processus qui permet d'optimiser un modèle logique afin de le rendre
non redondant. Ce processus conduit à la fragmentation des données dans plusieurs tables.
Définition : Dénormalisation
Processus consistant à regrouper plusieurs tables liées par des références, en une seule table,
en réalisant statiquement les opérations de jointure adéquates.
L'objectif de la dénormalisation est d'améliorer les performances de la BD en recherche sur
les tables considérées, en implémentant les jointures plutôt qu'en les calculant.
- Vues concrètes
Un moyen de traiter le problème des requêtes dont les temps de calcul sont très longs et les
fréquences de mise à jour faible est l'utilisation de vues concrètes.
Stéphane Crozat
29
Contenus annexes
Introduction
Oracle 9i propose une extension au LDD SQL pour créer explicitement des vues matérialisées
plutôt que la gestion manuelle classique consistant à créer une table et à l'alimenter
manuellement avec une requête de type INSERT.
Rappel
Une vue matérialisée est un stockage statique (dans une table) d'un résultat de requête. Il
permet donc d'anticiper des requêtes complexes en pré-calculant tout ou partie du résultat.
Vues concrètes - p.29
1 EXECUTE dbms_mview.refresh('nom_vue');
Attention
Oracle ne pourra pas toujours inférer automatiquement que des vues matérialisées
sont utilisables à la place des tables originales. Il est donc nécessaire dans ce cas de
réécrire soi-même les requêtes concernées. En pratique c'est souvent le cas si les
vues sont complexes.
Remarque
Une vue matérialisée peut être indexée ou partitionnée comme toute table Oracle.
Stéphane Crozat
30
Contenus annexes
- Modélisation en flocon
Définition
Un modèle en flocon est un modèle pour lequel chaque dimension est représentée avec
plusieurs tables. Il est donc plus normalisé (moins redondant) qu'un modèle en étoile.
Attention
Les représentation en flocon sont déconseillées en général (Kimball, Ross, 2008,
p.56) [(Kimball, Ross, 2008)]:
Le modèle en flocon est plus complexe et son appréhension par l'utilisateur
difficile
Les performance en requête sont diminuées par les jointures
Le gain en espace disque est faible (les dimensions sont peu volumineuses
relativement aux faits)
Méthode
La normalisation partielle est préconisée lorsqu'il y a des répétitions très nombreuses sur un
grand nombre de colonnes (Kimball, Ross, 2008, p.153) [(Kimball, Ross, 2008)].
Exemple de cas pertinent de représentation en flocon d'une dimension (Kimball, Ross, 2008,
p.153)
Stéphane Crozat
31