Ecole Supérieure des Sciences et de la Technologie A.
U : 2020-2021
de Hammam Sousse Niveau : LI2
Département Electronique et Informatique Matière : Entrepôts de Données
Enseignant : SAGAR Samya
Séries d’exercices
Modélisation et implémentation de DWH
Opérations OLAP
Correction
Exercice 1 : Schéma étoile, en flocon, Cube
Une entreprise de restauration rapide souhaite mettre en place un système d’information
décisionnel sous la forme d’un data mart (un mini entrepôt de données) dans le but d’analyser
ses ventes. Le principe est de mesurer les ventes grâce aux quantités vendues et aux bénéfices,
en fonction des ventes réalisées par jour, dans un restaurant donné, pour un aliment donné.
L’objectif est de pouvoir analyser les ventes par jour, par semaine, par mois et par année. Les
restaurants peuvent être regroupés en fonction de leur ville et de leur pays.
1. Quel est le fait à observer ?
Table de fait : Ventes
2. Quels sont les axes d’analyse, et le.s mesure.s ?
Les dimensions : - jour – Restaurant – Aliment.
Les mesures : Quantité et Bénéfices.
3. Concevoir le modèle en étoile de ce data mart.
Modèle en étoile :
4. Modifier ce modèle en un modèle en flocon de neige pour modéliser explicitement les
hiérarchies des dimensions représentant le temps et la localisation géographique des
restaurants.
Les hiérarchies :
1
Le modèle en flocon :
5. On souhaite à présent mesurer le nombre de commandes qui est donné par jour et par
restaurant. Etendre le modèle précédent afin de prendre en compte cet aspect.
Modèle de constellation de faits : avec une nouvelle table de fait (Ventes-Jour) et
nouvelle mesure (Nombre commandes) :
6. Définir le cube de données, avec ses dimensions et indicateurs, correspondant au schéma
en étoile (question3.) ci-dessus ; en proposant une ou plusieurs représentations
graphiques ; indiquer les hiérarchies possibles.
Visualisation Data Cube :
2
LOG660 - Base de données de haute performance
Chapitre 19: Entrepôts de données
Exercices:
QUESTION 1
a) Donnez 3 différences entre une BD transactionnelle (OLTP) et un entrepôt de
données (OLAP).
b) Décrivez le schéma en étoile que l’on retrouve dans les entrepôts de données.
Exercice 2 :Exemple de OLAP
schéma en étoile
Précisez le rôle des différents types de tables dans un tel schéma.
Opérations
(Commande de produits)
c) Expliquez la différence entre les clauses CUBE et ROLLUP.
Identifiez un groupe d’attributs formant une hiérarchie dimensionnelle dans la table de
dimension suivanteTables
d) Identifiez
: de groupe
un dimension:
d’attributs formant une hiérarchie dimensionnelle dans la table
de dimension suivante :
DateCommande Produit ClientExpédiéÀ
idDate (PK) idProduit (PK) idClient (PK)
date description nomFamille
jourDeSemaine SKU prénom
jourDuMois marque sexe
jourDeAnnée sousCatégorie dateNaissance
jourDansMoisFiscal catégorie dateAbonnement
jourDansAnnéeFiscale département forfaitAbonnement
congéFérié poids adresseRue
jourDeTravail taille adresseVille
semaineDuMois couleur adresseProvince
... ... ...
1. Comment Comment
serait modélisée
serait modélisée cette cette hiérarchie dansunun
hiérarchie dans schéma
schéma normalisé
normalisé ? ?
Une hiérarchie dimensionnelle est formée d’attributs ayant des relations 1 à plusieurs entre
e) À quoi sert la pré-agrégation des faits et comment peut-on implémenter cette
eux. On pourrait avoir
stratégie dans lalehiérarchie
Département de génie logiciel etsuivante
contexte des BD des TI ©:R. Godin,
relationnelles ? C. Desrosiers - Hiver 2011 25
catégorie à sousCatégorie
f) Décrivez à idProduit
brièvement l'architecture bus de magasins de données pour les entrepôts
de données. Quel type de modélisation est normalement employé pour les
qui se traduitmagasins
comme une catégorie
de données ? contient plusieurs sous-catégories, chacune d’elle
renfermantg) plusieurs produits.
Dans quelle(s) On l’architecture
situation(s) pourrait également
d’entrepôts de définir
donnéesdes hiérarchies
fédérés est-elle comportant
recommandée
d’autres attributs, par exemple ? :
h) Nommez deux avantages de la modélisation dimensionnelle par rapport au modèle
département à catégorie
entités-relations,
à sousCatégorie
dans le contexte analytique ?
à marque à idProduit
Faites attention au àpoint
i) Illustrez suivant.
l’aide d’un exempleUne certaine
chacune marqueOLAP
des opérations peutsuivantes
vendre des produits de
: slice,
rotate, roll-up, et drill-down.
différentes (sous) catégories. Donc, si on considère ces attributs de manière indépendante,
la relation entre ceux-ci est de type plusieurs à plusieurs. Dans la hiérarchie ci-dessus, il
faut plutôt considérer l’attribut marque comme étant un sous- élément de sousCatégorie. Si
on imagine la hiérarchie comme une arborescence de répertoires, l’attribut marque dans
cette hiérarchie correspondrait au répertoire suivant :
/[département]/[catégorie]/[sousCatégorie]/[marque]
3
2. Illustrez à l’aide d’un exemple chacune des opérations OLAP suivantes : slice, rotate,
roll-up, et drill-down.
Prenons l’exemple de la modélisation des ventes avec trois dimensions : Date, Client et
Produit. Supposons la requête analytique suivante qui calcule le total des ventes de chaque
produit par année :
SELECT Produit.code, Date.année, SUM(Ventes.montant) as
total FROM Produit, Date, Ventes
WHERE Produit.id = Ventes.idProduit AND
Date.id = Ventes.idDate
GROUP BY Produit.code, Date.année
L’opération slice consiste à restreindre pour une certaine dimension les valeurs sur
lesquelles est calculée l’agrégation. Par exemple, on peut limiter les produits à une certaine
catégorie :
SELECT Produit.code, Date.année, SUM(Ventes.montant) AS
total
FROM Produit, Date, Ventes
WHERE Produit.id = Ventes.idProduit AND Date.id =
Ventes.idDate AND Produit.catégorie = ‘ordinateur’
GROUP BY Produit.code, Date.année
Un roll-up sert à changer le niveau de détail pour une des dimensions d’analyse, allant d’un
niveau plus détaillé vers un niveau moins détaillé. Par exemple, on peut analyser les ventes
selon la catégorie de produits au lieu d’analyser par produit :
SELECT Produit.catégorie, Date.année, SUM(Ventes.montant) as
total FROM Produit, Date, Ventes WHERE Produit.id =
Ventes.idProduit AND Date.id = Ventes.idDate
GROUP BY Produit.catégorie, Date.année
Le drill-down est l’opération inverse, par exemple si on passe de catégorie à code.
Enfin, le rotate consiste à changer une ou plusieurs dimensions d’analyses. Par exemple,
on pourrait changer la dimension Date pour Client (niveau ville dans l’exemple):
SELECT Produit.code, Client.ville, SUM(Ventes.montant) as
total
FROM Produit, Client, Ventes
WHERE Produit.id = Ventes.idProduit AND
Client.id = Ventes.idClient
GROUP BY Produit.code, Client.ville