Chapitre 2 Interrogation de Représentations Multidimensionnelles
1. Cours « Entrepôts de Données »
2ème LIG, parcours EB et BI
Chapitre 2 :
Interrogation de Représentations
Multidimensionnelles
Ministère de l’Enseignement Supérieur
Université de Sfax
Institut Supérieur d’Administration des Affaires
Dr. Mohamed Mkaouar
2021-2022
2. Plan
1. Introduction
2. Exemple d’un Cube OLAP
3. Les Opérateurs OLAP : Permutation, Rotation, Slice,
Dice, Drill-up, Drill-down, Drill-in et Drill-out
4. Représentation Graphique des Cubes OLAP
5. Le langage MDX (Multidimensional expression)
03/02/2022 2
3. 1. Introduction (1/4)
Les systèmes décisionnels construits par l’utilisation d’Entrepôts de
Données et de Magasins de Données sont basés sur l’utilisation de
représentations multidimensionnelles (des structures à n dimensions).
Ces systèmes sont construits pour pouvoir exécuter des requêtes OLAP
(On-Line Analytical Processing), permettent d’effectuer des analyses,
d’une manière simple.
D’une manière générale, sans système OLTP (On-Line Transactional
Processing), une organisation ne peut pas fonctionner, par contre sans
système OLAP l’organisation peut fonctionner.
03/02/2022 3
4. 1. Introduction (2/4)
Exemples de requêtes OLAP :
➢ Nombre de livres d’enfants vendus en Janvier, sans considérer le lieu.
➢ Nombre de CD vendu par type (musique, jeux, …), par trimestre et
par ville.
➢ Chiffre d’affaires par mois, par produit et par client.
➢ Les 10 livres les plus populaires en 2020 par pays.
➢ Vente totale par magasin et par produit.
➢ Etc.
03/02/2022 4
5. 1. Introduction (3/4)
L’exécution des requêtes OLAP est partiellement possible sur les sources
de données (BD, Fichiers, Pages Web) des systèmes OLTP, mais ceci
pose de nombreux problèmes.
C’est pour cela que l’ont défini des structures spécifiques (structures
multidimensionnelles) pour simplifier l’exécution des requêtes OLAP et
éliminer tous les problèmes que l’ont peut rencontrés.
Les structures multidimensionnelles utilisées sont appelées cubes OLAP.
03/02/2022 5
6. 1. Introduction (4/4)
Les requêtes OLAP sont ainsi exécutées sur des cubes OLAP.
Un Cube OLAP est une structure qui affiche une synthèse de valeurs (des
sommes, des nombres, des moyens, …) selon plusieurs axes.
Une fois cette structure est affichée, il est possible d’appliquer plusieurs
opérateurs, appelés aussi Opérateurs OLAP, exprimant diverses requêtes
OLAP.
On note huit opérateurs OLAP: Permutation, Rotation , Slice, Dice,
Drill-up, Drill-down, Drill-in et Drill-out
03/02/2022 6
7. 2. Exemple d’un Cube OLAP (1/3)
03/02/2022 7
C1 est un Cube OLAP de 3 axes, aux granularités les plus fines.
Il montre le chiffre d’affaires par Ville, Mois et Produit
Temps ; Mois
Géographie ; Ville
Sfax
Toulouse
Tunis
Janvier
Février
Mars
Produit 3
30 21 69
42 60 15
38 51 55
30 21 69
42 60 15
38 51 55
30 21 69
42 60 15
38 51 55
Produit 2
Produit 1
C1
8. 2. Exemple d’un Cube OLAP (2/3)
03/02/2022 8
Dans le Cube C1 :
❑ Les différentes valeurs affichées par le cube correspondent à des
valeurs de la mesure Chiffre d’affaires ; chaque valeur
correspond à un chiffre d’affaires pour une ville donnée, un
mois donné et un produit donné.
❑ Les différentes valeurs affichées sur les axes correspondent à
des membres des différents paramètres ; Sfax, Toulouse et
Tunis correspondes à des membres du paramètre Ville.
9. 2. Exemple d’un Cube OLAP (3/3)
03/02/2022 9
Hiérarchies des axes
Ville
Pays
Géographie
Mois
Trimestre
Année
Temps
Produit
Gamme
Produit
La hiérarchie des trois axes (Produit, Temps et Géographie) de ce
cube est comme suit :
Avec la prise en compte de cette hiérarchie, il est possible d’afficher
des valeurs par (Produits ou Gamme de Produits), par (Mois, Trimestre
ou Année), par (Ville ou Pays).
10. 3. L’opérateur de Permutation
03/02/2022 10
C2 : partant de C1 et en appliquant une Permutation entre
les membres ‘Produit 1’ et ‘Produit 3’.
Une Permutation permet de changer les positions de deux Tranches T1 et T2
d’un cube ; l’emplacement de T1 prend celui de T2 et T2 prend celui de T1.
Temps ; Mois
Géographie ; Ville
Sfax
Toulouse
Tunis
Janvier
Février
Mars
Produit 1
30 21 69
42 60 15
38 51 55
30 21 69
42 60 15
38 51 55
16 32 53
22 48 35
83 72 61
Produit 2
Produit 3
C2
11. 3. L’opérateur de Rotation
03/02/2022 11
C3 : Une Rotation horizontale à gauche de C1.
{La dimension Produit devient en face, avec Géographie}
Une Rotation permet de préciser le couple de dimensions en face, en faisant montrer
une face cachée.
Produit ; Produit
Géographie ; Ville
Sfax
Toulouse
Tunis
Produit 1
Produit 2
Produit 3
Janvier
30 21 69
42 60 15
38 51 55
30 21 69
42 60 15
38 51 55
69 23 99
15 44 18
55 33 90
Février
Mars
C3
12. 3. L’opérateur de Rotation
03/02/2022 12
C4 : Une Rotation verticale en haut de C1.
{La dimension Produit devient en face, avec Temps}
Temps ; Mois
Produit ; Produit
Produit 1
Produit 2
Produit 3
Janvier
Février
Mars
Sfax
30 21 69
42 60 15
38 51 55
30 21 69
42 60 15
38 51 55
19 29 72
45 60 13
30 21 69
Toulouse
Tunis
C4
13. 3. L’opérateur Slice
(Extrait selon un critère de sélection portant sur une seule dimension)
Un Slice permet l’obtention d’un extrait des informations représentées par un cube,
selon un critère de sélection portant sur les membres d’une seule dimension.
03/02/2022 13
Slice (Produit = ‘P2’ OR Produit = ‘P3’, Produit)
Temps ; Mois
Produit ; Produit
Produit 2
Produit 3
Janvier
Février
Mars
Sfax
30 21 69
42 60 15
30 21 69
42 60 15
19 29 72
45 60 13
Toulouse
Tunis
C4 C5
C5
14. 3. L’opérateur Dice
(Extrait selon un critère de sélection portant sur +ieurs dimensions)
Un Dice permet l’obtention d’un extrait des informations représentées par un cube,
selon un critère de sélection portant sur les membres de plusieurs dimensions.
03/02/2022 14
Dice (Mois = ‘Janvier’ OR Mois = ‘Février’, Temps) AND (Produit = ‘P2’ OR Produit = ‘P3’, Produit)
Temps ; Mois
Produit ; Produit
Produit 2
Produit 3
Janvier
Février
Sfax
30 21
42 60
30 21
42 60
19 29
45 60
Toulouse
Tunis
C4 C6
C6
15. 3. Les Opérateurs Drill-up et Drill-down
(naviguer entre les membres)
Un Drill-up (zoom out) procède à sommer les valeurs de mesures affichées pour des
membres, en montrant des valeurs pour des membres de granularité plus grandes.
03/02/2022 15
Un Drill-down (zoom in) procède à détailler les valeurs de mesures affichées pour des
membres, en montrant des valeurs pour des membres de granularité plus fines.
Drill-down (Gamme/Mois/Ville) vers (Produit/Mois/Ville)
Drill-up (Produit/Mois/Ville) vers (Gamme/Mois/Ville)
Temps ; Mois
Produit ; Produit
Gamme 2
Gamme 1
Janvier
Février
Mars
Sfax
30 21 69
42 60 15
30 21 69
42 60 15
74 89 85
30 21 69
Toulouse
Tunis
C4
C7
C7
C4
C7
16. 3. Les Opérateurs Drill-in et Drill-out
(Suppression/Ajout d’axes)
Un Drill-out est l’opérateur inverse ; il procède à ajouter k axes pour un cube de n axes ; le
résultat est un cube à (n + k) axes.
16
Un Drill-in procède à supprimer k axes pour un cube à n axes ; le résultat est un cube à (n –
k) axes.
Drill-out (Produit/Temps) vers (Géographie/Temps/Produit)
Drill-in (Géographie/Temps/Produit) vers (Produit/Temps)
Temps ; Mois
Produit ; Produit
Produit 2
Produit 3
Janvier
Février
30
30
81 99
79 182
C8
C6 C8
C6
C8
03/02/2022
17. 4. Représentation Graphique des Cubes OLAP (1/3)
Lorsque le Cube est proposé sur trois axes, il est possible de
l’afficher en 3D, malgré le fait que les outils actuels ne supportent
pas encore un tel affichage.
Avec n axes (supérieur à 3), l’affichage en nD n’est pas possible.
Actuellement, nous utilisons un affichage Tabulaire pouvant
supporter plusieurs axes.
03/02/2022 17
18. 4. Représentation Graphique des Cubes OLAP (2/3)
03/02/2022 18
Représentation Tabulaire d’un Cube OLAP de 3 axes (Âge, Secteur,
Titre) affichant la somme des salaires par Secteur, Titre et Âge.
19. 4. Représentation Graphique des Cubes OLAP (3/3)
03/02/2022 19
Représentation Tabulaire d’un Cube OLAP de 4 axes (Secteur, Titre,
Âge et Salaires) affichant le nombre de salariés selon ces 4 axes.
20. 5. Le Langage MDX
(Multidimensional Expression) (1/5)
Les Cubes OLAP sont interrogés avec un langage proche de SQL, appelé MDX
(Multidimensional Expression).
MDX est un langage Microsoft permettant la représentation et la manipulation des
données multidimensionnelles. C’est une norme de facto importante; utilisé dans les
produits Microsoft et la plupart des autres produits (fournisseurs et open source).
C’est un langage fastidieux et complexe (avec une syntaxe très riche et complexe).
Dans la pratique, on n’utilise pas MDX directement, mais plutôt à travers des
manipulations graphiques.
Les outils utilisés sont des implémentations graphiques de MDX, comme Microsoft
Excel, PivotTable, Pivot4J, ...
03/02/2022 20
21. 5. Le Langage MDX
(Multidimensional Expression) (2/5)
03/02/2022 21
SQL MDX
Résultat Une Table Un Cube ou une Table
Théorie Algèbre Relationnelle Algèbre Matricielle
Clause SELECT Liste de colonnes Liste de Mesures et de Membres
avec des combinaisons (CrossJoin)
Clause FROM Liste de tables concernées (ou
expression conjointe)
Nom du cube source (Un seul Cube
supporté)
Clause WHERE Conditions sur les colonnes
limitant le nombre de lignes
retournées
Conditions sur les paramètres d’axes
limitant le nombre de membres
retournés.
Le Tableau suivant présente une brève comparaison entre SQL et MDX
22. 5. Le Langage MDX
(Multidimensional Expression) (3/5)
Exemple 1 : Les montants et quantités des ventes pour les deux années
2003 et 2004.
SELECT {[Mesures].[Montant], [Mesures].[Quantité]} ON COLUMNS
{[Temps].[2003], [Temps].[2004]} ON ROWS
FROM [Cube_Vente]
03/02/2022 22
23. 5. Le Langage MDX
(Multidimensional Expression) (4/5)
Exemple 2 : Les montants et quantités des commandes réalisées et les montants et
quantités des commandes annulées pour les deux années 2003 et 2004 et concernant le
produit ‘Produit 1’.
SELECT CrossJoin ({[EtatCommandes].[réalisées] , [EtatCommandes].[annulées]},
{[Mesures].[Montant], [Mesures].[Quantité]} ) ON COLUMNS
{[Temps].[2003], [Temps].[2004]} ON ROWS
FROM [Cube_Vente]
WHERE ([Produit].[Produit 1])
03/02/2022 23
24. 5. Le Langage MDX
(Multidimensional Expression) (5/5)
Exemple 3 : Les quantités commandées (réalisées et
annulées) des années 2003, 2004 et 2005 pour les
produits ‘Classic Cars’, ‘Motorcycles’, ‘Planes’,
‘Ships’, ‘Trucks and Buses’ et ‘Vintage Cars’. Pour la
lisibilité, nous affichons les années en colonnes.
SELECT CrossJoin ( {[EtatCommandes].[Tout Etat]},
{[Temps].[2003], [Temps].[2004], [Temps].[2005]} )
ON COLUMNS
{[Produit].[Classic Cars], [Produit].[Motorcycles],
[Produit].[Planes], [Produit].[Ships],
[Produit].[Trucks and Buses], [Produit].[Vintage
Cars]} ON ROWS
FROM [Cube_Vente]
03/02/2022 24
/* Si on ne précise pas une mesure, la mesure par défaut est utilisée (ici c’est la Quantité) */
25. Principales Références
➢ Mkaouar Mohamed, Vers la prise en compte méthodique des faits temporels
dans les bases de données : spécification et manipulation, Thèse de Doctorat
en Informatique, Faculté des Sciences de Tunis, mars 2012.
➢ Michael Mannino, Data Warehouse Concepts, Design, and Data Integration,
Cours Coursera https://www.coursera.org/learn/dwdesign
03/02/2022 25