Vous êtes sur la page 1sur 12

Entrepôts de données et analyse en ligne 1.

Introduction et problématique de lʼOLAP


OLAP (On-Line Analytical Processing) ! Entrepôt et OLAP
! OLAP versus OLTP
(3) ! Exemple dʼanalyses dʼun entrepôt
! Problématique de lʼOPAL
Bernard ESPINASSE
Professeur à Aix-Marseille Université (AMU)
Ecole Polytechnique Universitaire de Marseille 2. Opérations élémentaires OLAP
! Catégories dʼopérations OLAP
! Opérations de restructuration : rotate, switch, split, nest, push, pull
September 2013 ! Opérations de granularité : roll-up, drill-down
! Opérations ensemblistes : slide, dice, jointure(drill-across), data cube
! Modèles et langages pour lʼOLAP
• Introduction et problématique de lʼOLAP ! Les règles de Codd pour les produits OLAP
! Problématique de la modélisation logique dʼun ED
• Opérations élémentaires OLAP

OLAP - Bernard ESPINASSE 1 OLAP - Bernard ESPINASSE 2

Ouvrages :
! Benitez-Guerrero E., C. Collet, M. Adiba, « Entrepôts de données : Synthèse et
analyse », Rapport de recherche IMAG N°IMAG-RR - 99-1017-I, 1999.
! Franco J-M., « Le Data Warehouse (Le Data Mining) ». Ed. Eyrolles, Paris,
1997. ISBN 2-212-08956-2
! Gardarin G., « Internet/intranet et bases de données », Ed. Eyrolles, 1999,
ISBN 2-212-09069-2.
! Han J., Kamber M., « Data Mining: Concepts and Techniques », Morgan
Kaufmann Publishers, 2004.
! Kimball R., M. Ross, « Entrepôts de données : guide pratique de modélisation
dimensionnelle », 2°édition, Ed. Vuibert, 2003, ISBN : 2-7117-4811-1.
!…
Cours :
! Cours de F. Bentayeb, O. Boussaid, J. Darmont, S. Rabaseda, Univ. Lyon 2
! Cours de P. Marcel, Univ. de Tours
! Cours de G. Gardarin, Univ. de Versailles
! Cours de M. Adiba et M.C. Fauvet, Univ. Grenoble
! …

OLAP - Bernard ESPINASSE 3 OLAP - Bernard ESPINASSE 4


1 – Introduction et ! un entrepôt de données (ED) contient des données nombreuses, homogènes,
exploitables, multidimensionnelles, consolidées
problématique de lʼOLAP ! comment exploiter ces données à des fins dʼanalyse ?
! traditionnellement : les requêtes OLTP sont exécutées sur les données sources
! Entrepôt et OLAP
! lʼED est mis à jour chaque nuit
! OLAP versus OLTP ! les requêtes OLAP sont exécutées sur les données de lʼED

! Exemple dʼanalyses dʼun entrepôt ! analyser les données dʼun ED cʼest :


! Problématique de lʼOPAL ! résumer
! consolider
! observer
! appliquer des formules statistiques
! synthétiser des données selon plusieurs dimensions
! …

OLAP - Bernard ESPINASSE 5 OLAP - Bernard ESPINASSE 6

OLTP (On Line Transaction Processing) :


! Les applications OLTP sont des applications opérationnelles (de production), Caractéristiques OLTP OLAP
constituées de traitements factuels concernant les produits, les ressources ou les clients Conception Orientation Transaction Analyse
de lʼentreprise Conception Entité-Relation Etoile/flocon
! Les requêtes OLTP sont exécutées sur les données sources Granularité Détail Résumées, agrégées
Données
OLAP (On Line Analytical Processing) : Nature Relationnelle Multidimentionnelle
! Les applications OLAP sont des applications dʼaide à la décision Actualisation Actualisées, Historisées,
! Elles sont constituées de traitements ensemblistes réduisant une population à une mises à jour recalculées
valeur ou un comportement. Taille 100 Mo/Go 100 Go/To
! Les requêtes OLAP sont exécutées sur lʼED Traitements Unité de travail Transaction Requête complexe
simple
Le terme OLAP désigne :
Accés Lecture/écriture Lecture
! Lʼensemble des moyens et techniques à mettre en œuvre pour réaliser des systèmes
Nb de tuples accédés Dizaines Millions
dʼaide à la décision efficaces
Métrique Débit de Temps de réponse
! Des traitements semi-automatiques visant à interroger, visualiser et synthétiser les
transactions
données, traitements définis et mis en œuvre par les décideurs
Utilisateurs Utilisateur Agent Analyste/décideur
! On-Line :signifie que le processus se fait en ligne, l'utilisateur doit avoir la réponse de opérationnel
façon quasi-instantanée Nombre dʼutilisateurs Milliers Centaines

OLAP - Bernard ESPINASSE 7 OLAP - Bernard ESPINASSE 8


Soit lʼentrepôt en schéma étoile suivant : Hiérarchies :
! ventes(codeProduit, date, vendeur, montant) (table faits)
! produits(codeProduit, modèle, couleur) (table dimension)
! vendeurs(nom, ville, département, état, pays) (table dimension)
! temps(jour, semaine, mois, trimestre, année) (table dimension)

Selon la notation de Golfarelli (1998) :

OLAP - Bernard ESPINASSE 9 OLAP - Bernard ESPINASSE 10

Analyse des ventes de divers produits Analyse des ventes de divers produits :
SELECT modele, SUM(montant)
FROM ventes, produits
Exemple de questions associées : WHERE ventes.codeProduit = produits.codeProduit
GROUP BY modele ;
! Quels sont les produits dont les ventes ont chuté lʼan dernier?

! Quelles sont les quinze meilleures ventes par magasin et par semaine
durant le premier trimestre de lʼannée 2001?

! Quelle est la tendance des chiffres dʼaffaire (CA) par magasin depuis 3
ans?

! Quelles prévisions peut-on faire sur les ventes dʼune catégorie de


produits dans les 6 mois à venir ?

OLAP - Bernard ESPINASSE 11 OLAP - Bernard ESPINASSE 12


Les ventes de vis sont plus faibles que prévu... quelles couleurs sont responsables ? Les ventes de vis sont plus faibles que prévu... quelles années sont responsables ?
SELECT couleur, SUM(montant) SELECT couleur, annees, SUM(montant)
FROM ventes, produits FROM ventes, produits, temps
WHERE ventes.codeProduit = produits.codeProduit WHERE ventes.codeProduit = produits.codeProduit
AND modele = “vis” AND ventes.date = temps.jour
GROUP BY couleur ; AND modele = “vis”
GROUP BY couleur, annees ;

OLAP - Bernard ESPINASSE 13 OLAP - Bernard ESPINASSE 14

Les ventes de vis sont plus faibles que prévu... Quels trimestres sont responsables ? Les ventes de vis sont plus faibles que prévu... Quels vendeurs sont responsables ?
SELECT couleur, trimestre, SUM(montant) SELECT vendeur, somme
FROM ventes, produits, temps FROM(
WHERE ventes.codeProduit = produits.codeProduit SELECT trimestre, vendeur, SUM(montant) as somme
AND ventes.date = temps.jour FROM ventes, produits, temps, vendeur
AND modele = “vis” WHERE ventes.codeProduit = produits.codeProduit
GROUP BY couleur, trimestre ; AND ventes.date = temps.jour
AND ventes.vendeur = vendeurs.nom
AND modele = “vis”
GROUP BY trimestre, vendeur)
WHERE trimestre = “jui-sep”;

OLAP - Bernard ESPINASSE 15 OLAP - Bernard ESPINASSE 16


Quels sont les résultats cumulés des vendeurs par mois ?
SELECT vendeur, mois, CSUM(resultat,vendeur,mois) as cumul
! Supporter des opérations “tableur” sur des BD de plusieurs Go
FROM ( (Chaudhuri et Dayal 97)
SELECT vendeur, mois, Sum(montant) as resultat
FROM ventes, produits, temps ! Besoins spécifiques :
WHERE ventes.codeProduit = produits.codeProduit
AND ventes.date = temps.jour ! langages de manipulation
AND modele = “vis” ! organisation des données
AND couleur = “rose”
GROUP BY mois, vendeurs) ! fonctions dʼagrégation
ORDER BY mois ;
! …
Quelle est lʼévolution de la moyenne des ventes pour une fenêtre de 2 jours ?
! Organisation des données proche des abstractions de lʼanalyste :
SELECT date, montant, MAVG(montant,2,date) as moy
FROM ventes, temps ! selon plusieurs dimensions
WHERE ventes.date = temps.jour
AND annee = 2001 ! selon différents niveaux de détail
ORDER BY date ;
! en ensemble
! donnée = point dans lʼespace associé à des valeurs

OLAP - Bernard ESPINASSE 17 OLAP - Bernard ESPINASSE 18

De la table … … au cube
Table Ventes : Cube Ventes :

VENTES pièces Régions Années quantités


pièces vis
écrous est 1999 50 clous
est

clous est 1997 100 écrous ouest


régions
70

50

vis ouest 1998 50 sud


50

50

… … … … années 1999 nord


60

50
60

écrous est total 220


40

60
40

… … … … 1998 60
70 40 40
écrous total total 390
… … … … 1997
0 30
10 20
total total total 1200 30
20

(pièce, région, année) ! quantité 10 10

OLAP - Bernard ESPINASSE 19 OLAP - Bernard ESPINASSE 20


pièces vis
est
clous
ouest

2 – Opérations élémentaires
écrous régions

70

50
sud

50

50
années 1999 nord

60
50

60
40
OLAP
60

40
1998 60
70 40 40
1997
0 30
10 20
30
20

10 10 ! Catégories dʼopérations OLAP


! Opérations de restructuration : rotate, switch, split, nest, push, pull
! Opérations de granularité : roll-up, drill-down
Terme Valeur
Cube Ventes ! Opérations ensemblistes : slide, dice, jointure(drill-across), data cube
Cellule ecrous, est, 1997, 100 ! Modèles et langages pour lʼOLAP
Référence ecrous, est, 1997 ! Les règles de Codd pour les produits OLAP
mesure 100
! Problématique de la modélisation logique dʼun ED
Membre/paramètre est
dimension lieu
niveau région

OLAP - Bernard ESPINASSE 21 OLAP - Bernard ESPINASSE 22

3 catégories dʼopérations élémentaires : Permettent un changement de points de vue, une réorientation selon
Restructuration : concerne la représentation, permet un changement de points de vue différentes dimensions de la vue multidimensionnelle
selon différentes dimensions : opérations liées à la structure, manipulation et visualisation du Opérations liées à la structure, la manipulation et la visualisation du cube :
cube : ! réorientation :
! Rotate/pivot ! sélection graphique
! Switch ! flexibilité du schéma
! Split, nest, push, pull ! membres complexes
Granularité : concerne un changement de niveau de détail : opérations liées au niveau de ! symétrie membres/mesures
granularité des données : ! manipulations :
! roll-up, ! bijectives
! drill-down ! relatives
Ensembliste : concerne lʼextraction et lʼOLTP classique : ! à niveau dʼinformation constant
! slice, dice Opérations de restructuration :
! selection ! rotate/pivot
! projection ! switch
! jointure (drill-across) ! split, nest, push, pull

OLAP - Bernard ESPINASSE 23 OLAP - Bernard ESPINASSE 24


Rotate ou Pivot : Rotate/pivot : effectue au cube une rotation autour dʼun de ses 3 axes passant par le centre
! effectuer à un cube une rotation autour dʼun de ses trois axes passant par le centre de 2 faces opposées, de façon à présenter un ensemble de faces différent (sélection de
de 2 faces opposées, de façon à présenter un ensemble de faces différent faces)
! une sorte de sélection de faces et non des membres. pièces vis Le cube a
est

Switch ou permutation : écrous


clous
ouest
pivote autour

70
régions
de

50
! consiste à inter-changer la position des membres dʼune dimension.

50
sud

50
années
lʼaxe/dimension

60
1999 nord
Split ou division : 50

60
régions

40
60

40
! consiste à présenter chaque tranche du cube et de passer dʼune présentation 1998
70
60
40 40
tridimensionnelle dʼun cube à sa présentation sous la forme dʼun ensemble de tables 1997 30
! sa généralisation permet de découper un hypercube de dimension 4 en cubes. 10
0
20
30 !
Nest ou lʼemboîtement : 20

! imbrication des membres à partir du cube. 10 10

! Permet de grouper sur une même représentation bi-dimensionnelle toutes les


informations (mesures et membres) dʼun cube quelque soit le nombre de ses
dimensions. la visualisation résultante est souvent 2D :

Push ou lʼenfoncement :
! consiste à combiner les membres dʼune dimension aux mesures du cube, i.e. de
faire passer des membres comme contenu de cellules.

OLAP - Bernard ESPINASSE 25 OLAP - Bernard ESPINASSE 26

Switch ou permutation : consiste à interchanger la position des membres dʼune Split ou division : consiste à présenter chaque tranche du cube et de passer de sa
dimension : présentation tridimensionnelle à sa présentation sous la forme dʼun ensemble de tables.
vis
pièces est pièces vis
clous est
clous
écrous ouest ouest
70

régions écrous régions

70
50

50
50

sud sud

50

50
50

années années 1999 nord

60
60

1999 nord 50
50

60
60

40
60
40

40
60
60
1998
40

60 70 40 40
1998
70 40 40 1997
0 30
10 20
1997
0 30 30
10 20 20

30 10
20 10

10 10
ici un split(region) du cube Ventes conduit aux 4 tables suivantes :

Ici sont interchangés les membres nord et sud de la dimension régions


la visualisation résultante est souvent 2D :

OLAP - Bernard ESPINASSE 27 OLAP - Bernard ESPINASSE 28


Nest ou lʼemboîtement: permet dʼimbriquer des membres à partir du cube. Lʼintérêt de Push ou lʼenfoncement: consiste à combiner les membres dʼune dimension aux mesures
cette est quʼelle permet de grouper sur une même représentation bi-dimensionnelle toutes du cube, i.e. de faire passer des membres comme contenu de cellules.
les informations (mesures et membres) dʼun cube quelque soit le nombre de ses dimensions.
nest(pièces, région) : push(année) :

pièces vis
pièces vis
est
clous est
clous
écrous ouest ouest
régions
70

écrous régions

70
50

50
sud
50

sud

50
50

50
années 1999 nord années 1999
60

nord

60
50 50
60

60
40

40
60 60
40

40
1998 60 1998 60
70 40 40 70 40 40

1997
0 30 1997
0 30
10 20 10 20
30 30
20 20

10 10 10
10

OLAP - Bernard ESPINASSE 29 OLAP - Bernard ESPINASSE 30

OLAP - Bernard ESPINASSE 31 OLAP - Bernard ESPINASSE 32


Granularité : Opérations de granularité :
! hiérarchisation de lʼinformation en différents niveaux de détails appelés niveaux de
granularité. ! roll-up,
! un niveau est un ensemble nommé de membres ! drill-down
! le niveau le plus bas est celui de lʼentrepôt Les opérations agissant sur la granularité dʼobservation des données caractérisent la
hiérarchie de navigation entre les différents niveaux.
Des opérations dʼagrégation successives sur ces données permettent de nouveaux
points de vue de moins en moins détaillés de lʼinformation et constituent autant de Roll-up ou forage vers le haut :
niveaux supérieurs :
! consiste à représenter les données du cube à un niveau de granularité supérieur
! navigation entre les niveaux : conformément à la hiérarchie définie sur la dimension.
! groupements ! une fonction dʼagrégation (somme, moyenne, etc) en paramètre de lʼopération indique
! agrégation comment sont calculés les valeurs du niveau supérieur à partir de celles du niveau
inférieur

! manipulations : Drill-down ou forage vers le bas :


! relatives ! consiste à représenter les données du cube à un niveau de granularité de niveau
! nécessitant des informations non contenues dans le cube de départ inférieur, donc sous une forme plus détaillée (selon la hiérarchie définie de la
dimension)

OLAP - Bernard ESPINASSE 33 OLAP - Bernard ESPINASSE 34

Roll-up ou forage vers le haut: consiste à représenter les données du cube à un niveau roll-up(annee) : Ventes 97-99
de granularité supérieur conformément à la hiérarchie définie sur la dimension. pièces
clous
vis
est

Soit : écrous ouest

70
régions

50
50
sud

50
vis années

60
pièces 1999 nord
est 50

60
pièces vis clous

20

40
est
clous ouest

160
écrous
régions 1998 60
70

60
ouest
écrous régions 40

220
70

sud
50

60

170
sud
50

1997 30

100
tout_temps 0
nord 10
50

0 20

10
années 1999
22

110
nord
60

50 30

60
60

tout_temps 20
00

60
0
22
40

60
1 11
40

10
1998 60 0 10
0
70 40 40 60 60 10 10 11
0
60 60
10 10
1997 30 10 10
0
10 20
30
20

10 10 roll-up(annees, pieces) : la visualisation est souvent 2D :

Remarque : une fonction dʼagrégation (somme, moyenne, …) en paramètre de lʼopération


indique comment sont calculés les valeurs du niveau supérieur à partir de celles du niveau
inférieur
OLAP - Bernard ESPINASSE 35 OLAP - Bernard ESPINASSE 36
lʼopération CUBE (représentation cubique généralisée du roll-up) consiste à calculer tous
les agrégats suivant tous les niveaux de toutes les dimensions :
Drill-down ou forage vers le bas : consiste à représenter les données du cube à un
niveau de granularité de niveau inférieur, donc sous une forme plus détaillée.
! Lʼunion de plusieurs group-by donne naissance à un cube :
Select ALL, ALL, ALL, Sum(quantité) ! opération réciproque de roll-up, drill-down permet dʼobtenir des détails sur la
From VENTES signification dʼun résultat en affinant une dimension ou en ajoutant une dimension
UNION Select pièces, ALL, ALL, Sum(quantité)
From VENTES
Group-By pièces ;
! opération coûteuse dʼoù son intégration dans le système
UNION
Select pièces, années, ALL, Sum(quantité) Exemple : un chiffre dʼaffaire suspect pour un produit donné :
FromVENTES
Group-Bypièces, années; ! ajouter la dimension temps : envisager lʼeffet week-end
UNION
Select pièces, années, régions, Sum(quantité) ! ajouter la dimension magasin: envisager lʼeffet géographique
From VENTES
Group-By pièces, années, régions;

! Lʼopérateur cube est une généralisation N-dimensionnelle de fonctions dʼagrégations


simples. Cʼest un opérateur relationnel :
Select pièces, années, régions, Sum(quantité Ventes)
FromVENTES
Group-By CUBE pièces, années, régions;

OLAP - Bernard ESPINASSE 37 OLAP - Bernard ESPINASSE 38

Drill-down du niveau des régions au niveau villes : Drill-down(regions) : Objet des opérations ensemblistes :
! concernent lʼextraction
! manipulations classiques
! extension à plusieurs dimensions

Opérations OLAP ensemblistes :


! slice et dice (sélection et projection)
! drill-across (jointure)

OLAP - Bernard ESPINASSE 39 OLAP - Bernard ESPINASSE 40


pièces vis
est
clous

slide : correspond à une projection selon dice : correspond à une sélection du cube : écrous ouest
régions pièces vis
est

70
projection

50
sud clous

50

20
une dimension du cube : ouest

50

160
années 1999 écrous
régions

150
nord

60
50

220
60
sud

40

170
60

50
40
60

100
1998 tout_temps
70 40 40 0
nord
22

110
10
dimension 3 3

60
3 1997 30 0
dimension 3 0
10

60
10 20
2 11
2 0

10
30
1 20 60 60
1
10 10
10 10

6
3 3
3 3
dimension 2 dimension 2
1
2
4
2
2
1
4
π piece, region :
2
1 9 1 9
1 1
2 5 2 5
7 1 7 1
1 1
3 3
dimension 1 2 2
dimension 1 2 2

3 1 3 1

OLAP - Bernard ESPINASSE 41 OLAP - Bernard ESPINASSE 42

Selection 1 Sélection 2
vente ≥ 50 (regions = nord ou regions = sud) et
(pieces = clous ou pieces = ecrous) et
pièces vis
est
(annees = 1998 ou années = 1999)
clous

écrous ouest
70

régions
=
50
50

sud
50

années
nord
pièces
60

1999
50 clous
60

sud régions
1998
60 60
écrous
70 nord
40

40

1997 années
0
10 1999
40
40

1998
20 20

OLAP - Bernard ESPINASSE 43 OLAP - Bernard ESPINASSE 44


quelle mesure pour les vis ?

! quels sont les 10 produits les plus performants ?


! calculer la moyenne glissante des ventes par région et par pièces, pour une fenêtre de 2
années
! calculer les prévisions de ventes pour les années 2000 `a 2002 avec comme hypothèse
un accroissement annuels des ventes de 10%

OLAP - Bernard ESPINASSE 45