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ʼunentrepô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ʼunED
• 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, 1
99
,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,

problématique de lʼOLAP
exploitables, multidimensionnelles, consolidées

 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ʼEDest 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ʼunentrepôt  analyser les données dʼunED 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 Données Granularité Détail Résumées, agrégé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
dʼaide à la décision efficaces Nb de tuples accédés Dizaines Millions
Des traitements semi-automatiques visant à interroger, visualiser et synthétiser les Métrique Débit de Temps de réponse
données, traitements définis et mis en œuvre par les décideurs transactions
Utilisateurs Utilisateur Agent Analyste/décideur
On-Line :signifie que le processus se fait en ligne, l'utilisateur doit avoir la réponse d
e
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ʼandernier?

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ʼunecatégorie d


e
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 ?
Supporter des opérations “tableur” sur des BD de plusieurs Go
SELECT vendeur, mois, CSUM(resultat,vendeur,mois) as cumul
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


écrous est 1999 50 pièces vis
est
clous
clous est 1997 100 ouest
écrous
vis ouest 1998 50 régions
sud
… … … …
années 1999 nord
écrous est total 220
… … … …
1998
écrous total total 390
… … … …
1997
total total total 1200

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

OLAP - Bernard ESPINASSE 19 OLAP - Bernard ESPINASSE 20


pièces vis
est
clous

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

années 1999 nord

1998

1997
OLAP
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ʼunED
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ʼunde ses 3 axes passant par le centre
effectuer à un cube une rotation autour dʼunde 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. vis Le cube a
pièces est

Switch ou permutation : clous


ouest
pivote autour
écrous
régions
consiste à inter-changer la position des membres dʼune dimension. sud
de
années nord lʼaxe/dimension
Split ou division : 1999

régions
consiste à présenter chaque tranche du cube et de passer dʼune présentation 1998

tridimensionnelle dʼuncube à sa présentation sous la forme dʼunensemble de tables


sa généralisation permet de découper un hypercube de dimension 4 en cubes.
1997

Nest ou lʼemboîtement :
imbrication des membres à partir du cube.
Permet de grouper sur une même représentation bi-dimensionnelle toutes les
informations (mesures et membres) dʼuncube quelque soit le nombre de ses
dimensions. la visualisation résultante est souvent 2D :
Push ou lʼenfoncement :
consiste à combiner les membres dʼunedimension 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ʼunensemble de tables.
vis
pièces est pièces vis
clous est
clous
écrous ouest ouest
écrous régions
régions
sud
sud
années années 1999 nord
1999 nord

1998
1998

1997

1997

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 cette est Push ou lʼenfoncement: consiste à combiner les membres dʼune dimension aux mesures du
quʼelle permet de grouper sur une même représentation bi-dimensionnelle toutes les cube, i.e. de faire passer des membres comme contenu de cellules.
informations (mesures et membres) dʼuncube quelque soit le nombre de ses dimensions.
nest(pièces, région) : push(année) :

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

années 1999 nord années 1999 nord

1998 1998

1997 1997

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 d
e
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
comment sont calculés les valeurs du niveau supérieur à partir de celles du niveau
agrégation
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 vis
est
c lo us
o ue s t
Soit : é c r o us
régions
s ud
années
pièce s vi s 1999 no rd
est
pièces vis clous
est
clous o u e st
é c r o us 1998
ouest régions
écrous régions sud
sud 1997
tout_tem ps nord
années 1999 nord
t o u t _ t e mp s

1998

1997

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ʼunrésultat en affinant une dimension ou en ajoutant une dimension
UNION Select pièces, ALL, ALL, Sum(quantité)
From VENTES opération coûteuse dʼoùson intégration dans le système
Group-By pièces ;
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
sud projection clous

une dimension du cube : années 1999 nord écrous ouest


régions
sud

1998 tout_temps nord

dimension 3 3 1997
dimension 3 3
2
2
1 1

3 3
dimension 2 dimension 2
2 2 πpiece, region :
1 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 (annees = 1998 ou années = 1999)
est
clous
ouest
écrous
régions
sud =
années
1999 nord
pièces
clous
sud régions
écrous
1998
nord

1997 années
1999

1998

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