Académique Documents
Professionnel Documents
Culture Documents
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.
1 – Introduction et problématique de l’OLAP
§… § Entrepôt et OLAP
Cours : § OLAP versus OLTP
§ Cours de F. Bentayeb, O. Boussaid, J. Darmont, S. Rabaseda, Univ. Lyon 2
§ Cours de P. Marcel, Univ. de Tours § Exemple d’analyses d’un entrepôt
§ Cours de G. Gardarin, Univ. de Versailles
§ Problématique de l’OPAL
§ Cours de M. Adiba et M.C. Fauvet, Univ. Grenoble
§ …
VENTES
Montant
dimensions
measures fact
ð Analyse des ventes de divers produits : ð Les ventes de vis sont plus faibles que prévu... quelles couleurs sont-elles
SELECT modele, SUM(montant) responsables ?
FROM ventes, produits
WHERE ventes.codeProduit = produits.codeProduit SELECT couleur, SUM(montant)
GROUP BY modele ; FROM ventes, produits
WHERE ventes.codeProduit = produits.codeProduit
AND modele = “vis”
GROUP BY couleur ;
ð Les ventes de vis sont plus faibles que prévu... Quels vendeurs sont-ils ð Quels sont les résultats cumulés des vendeurs par mois ?
responsables ? SELECT vendeur, mois, CSUM(resultat,vendeur,mois) as cumul
FROM (
SELECT vendeur, somme
FROM( SELECT vendeur, mois, Sum(montant) as resultat
SELECT trimestre, vendeur, SUM(montant) as somme FROM ventes, produits, temps
FROM ventes, produits, temps, vendeur WHERE ventes.codeProduit = produits.codeProduit
WHERE ventes.codeProduit = produits.codeProduit AND ventes.date = temps.jour
AND ventes.date = temps.jour AND modele = “vis”
AND ventes.vendeur = vendeurs.nom AND couleur = “rose”
AND modele = “vis” GROUP BY mois, vendeurs)
GROUP BY trimestre, vendeur) ORDER BY mois ;
WHERE trimestre = “jui-sep”;
ð Quelle est l’évolution de la moyenne des ventes pour une fenêtre de 2 jours ?
SELECT date, montant, MAVG(montant,2,date) as moy
FROM ventes, temps
WHERE ventes.date = temps.jour
AND annee = 2001
ORDER BY date ;
70
50
vis ouest 1998 50 sud
50
§ fonctions d’agrégation
50
… … … … années 1999 nord
60
50
60
écrous est total 220
§ …
40
60
40
… … … … 1998 60
70 40 40
§ Organisation des données proche des abstractions de l’analyste : écrous total total 390
… … … … 1997
0 30
10
§ selon plusieurs dimensions total total total 1200
20
30
20
§ selon différents niveaux de détail
(pièce, région, année) ® quantité 10 10
§ en ensemble
§ donnée = point dans l’espace associé à des valeurs
pièces vis
est
clous
écrous ouest
régions
70
50
sud
50
50
années 1999 nord
60
50
60
40
60
40
1998 60
70 40 40
1997
0 30
10 20
30
20
10 10
Terme Valeur
Cube Ventes
Cellule ecrous, est, 1997, 100
Référence ecrous, est, 1997
mesure 100
Membre/paramètre est
dimension lieu
niveau région
70
pièces vis régions
50
est
clous
pivote autour
50
sud
ouest
50
écrous années
70
régions
60
nord
de
50
1999
50
50
sud
60
40
50
années
l’axe/dimension 60
40
60
1999 nord
50 1998 60
60
70
régions 40 40
40
60
40
1998 60
70 40 40
1997
0 30
10 20
1997
0 30 30
10 20 20
30 !
20 10
10
10 10
Split ou division : consiste à présenter chaque tranche du cube et de passer de sa Nest ou l’emboîtement: permet d’imbriquer des membres à partir du cube. L’intérêt de
présentation tridimensionnelle à sa présentation sous la forme d’un ensemble de tables. cette est qu’elle permet de grouper sur une même représentation bi-dimensionnelle toutes
pièces vis
les informations (mesures et membres) d’un cube quelque soit le nombre de ses dimensions.
est
clous
écrous ouest
régions
nest(pièces, région) :
70
50
sud
50
50
50
60
40
60
40
écrous ouest
1997 30 régions
70
0
10
50
20 sud
50
30
50
20 années 1999 nord
60
50
60
10 10
40
60
40
1998 60
70 40 40
10 10
écrous ouest
régions Des opérations d’agrégation successives sur ces données permettent de
70
50
sud
50
50
constituent autant de niveaux supérieurs :
60
40
60
40
1998 60
70 40 40
§ navigation entre les niveaux :
1997
0 30
10
30
20
§ groupements
20
10 10 § agrégation
§ manipulations :
§ relatives
§ nécessitant des informations non contenues dans le cube de départ
Opérations de granularité : Roll-up ou forage vers le haut: consiste à représenter les données du cube à un niveau
de granularité supérieur conformément à la hiérarchie définie sur la dimension.
§ roll-up,
Soit :
§ drill-down pièces vis
est
clous
Les opérations agissant sur la granularité d’observation des données caractérisent la écrous ouest
régions
70
50
sud
50
hiérarchie de navigation entre les différents niveaux.
50
années 1999 nord
60
50
60
40
60
Roll-up ou forage vers le haut :
40
1998 60
70 40 40
30
conformément à la hiérarchie définie sur la dimension. 20
10 10
§ 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
inférieur
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 (selon la hiérarchie définie de la
dimension)
70
régions
§ L’union de plusieurs group-by donne naissance à un cube :
50
50
sud
50
vis années
60
pièces est 1999
50
nord
Select ALL, ALL, ALL, Sum(quantité)
60
clous
20
40
ouest
From VENTES
160
écrous
régions 1998 60
70
60
40
220 sud
UNION Select pièces, ALL, ALL, Sum(quantité)
60
170
1997 30
100
tout_temps 0
0 nord 10 20 From VENTES
10
22
110
30
Group-By pièces ;
60
0 tout_temps 20
60
0
10 11 22
10
0 10
0
UNION
60 60 10 10 11
0
60
10 10
10 10
60
Select pièces, années, ALL, Sum(quantité)
FromVENTES
Group-Bypièces, années;
roll-up(annees, pieces) : la visualisation est souvent 2D : UNION
Select pièces, années, régions, Sum(quantité)
From VENTES
Group-By pièces, années, régions;
Drill-down ou forage vers le bas : consiste à représenter les données du Drill-down du niveau des régions au niveau villes : Drill-down(regions) :
cube à un niveau de granularité de niveau inférieur, donc sous une forme
plus détaillée.
§ manipulations classiques
dimension 3
dimension 3 3
3
§ extension à plusieurs dimensions 1
2
1
2
6
3 3
1
3 3
6
dimension
dimension 2
Opérations OLAP ensemblistes :
4
2 1 1
2 2
4 4 4 2
2
§ slice et dice (sélection et projection) 1
1 9 1
1 9
2 1 1 2 5
§ drill-across (jointure) 1
7 1
3
1
7 1
3
dimension 9 9 dimension 1 2 2
2 2
1
1 3 1
3
pièces vis
est
clous
écrous ouest
régions pièces vis
est Selection 1 Sélection 2
70
projection
50
sud clous
50
20
ouest
vente ≥ 50 (regions = nord ou regions = sud) et
50
160
nord
60
50
220
60
sud
40
60
50
40
60
100
1998 tout_temps
70 40
nord
40 20
110
10
2
pièces vis (annees = 1998 ou années = 1999)
60
1997
0 30 0 est
10
60
10 20 clous
11
0
10
30
60 60 écrous ouest
70
20 régions
50
50
10 10 sud
10 10
50
années
nord
pièces
60
1999
50 clous
60
sud régions
60 60
écrous
π piece, region :
1998
70 nord
40
40
1997 années
0
10 1999
40
40
1998
20 20
§ 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 à 2002 avec
comme hypothèse un accroissement annuels des ventes de 10% …
§…
2 langages possibles :
1. SQL étendu (Extensions de SQL-3 / SQL-99 pour OLAP) :
• Nouvelles fonctions SQL d’agrégation: Rank, N_tile, …
• Nouvelles fonctions de la clause GROUP BY :
§ ROLLUP equivalent to “control breaks”
§ CUBE equivalent to “cross tabulation”
§ GROUPING SETS equivalent to multiple GROUP BYs
• Fenêtre glissante :
§ WINDOWS/OVER/PARTITION, …
2. MDX (Multi Dimensional eXpression) :
• langage de requêtes OLAP
• inventé par Mosha Pasumansky au sein de Microsoft
• présenté en 1997 comme volet de la spécification OLE DB for
OLAP (ODBO)
• version commerciale Microsoft OLAP Services 7.0 en 1998
• dernière version de la spécification OLE DB for OLAP en 1999