Académique Documents
Professionnel Documents
Culture Documents
Hiver 2013/2014
Melanie Herschel
melanie.herschel@lri.fr
Requêtes
Jahr
• Requêtes analytiques
Entrepôt de • Bulk-Insert et SELECT
2007
2006
Region
données
2005
2003 ...
North America
2
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Donné un Modèle Multidimensionnel
Exemple d’un modèle multidimensionnel (cube et hiérarchies dimensionnelles)
Cube hiérarchies
(granularité la plus fine) dimensionnelles
Temps
Produit
2 2 ...
BlueRay
Produit année
2 2 3 3 2 ...
DVD
rs
fev
jan
Temps
ma
...
r
ma
av
3
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
4
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Exemples de Requêtes OLAP
• Navigation dans un cube
“Nombre de livres d’enfants vendu en janvier, indépendamment du lieu”
• Requêtes de ranking
“Les 10 livres les plus populaires en 2009 par pays”.
5
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Chapitre 4
Requêtes OLAP
Opérateurs OLAP
•Dans un cube
Extensions SQL
MDX
6
Hypothèses
• Nous admettons dans cette première partie du chapitre qu’il n’existe qu’un
seul cube dans l’entrepôt de données (plus précisément dans sa BD
dispositive).
7
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
• Il est également possible de naviguer vers la racine TopD d’une ou de plusieurs dimensions.
Appliquée à toutes les dimensions, cette opération résulte en un cube n’ayant plus qu’un
seul fait.
9
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Roll-Up
Exemple- Roll-up d’une seule dimension
Roll-up d’une seule dimension
Produit
(catégorie)
BlueRay 2 2 ...
DVD 2 2 3 3 2 ...
rs
fev
jan
(mois)
ma
...
r
ma
av
(type) Lieu
(ville)
...
médias Lyon
Paris
livres Stuttgart
Berlin
Temps
.
rs
fev
jan
i
ma
...
r
ma
av
(mois)
10
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Roll-Up
Exemple- Roll-up de plusieurs dimensions
Roll-up de plusieurs dimensions
Produit
(catégorie)
BlueRay 2 2 ...
rs
Produit
fev
jan
(mois)
ma
...
r
ma
av
(type) Lieu
(ville)
...
Medien Lyon
Paris
Bücher Stuttgart
Berlin
Temps
Q1
Q2
(trimestre)
11
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Roll-Up
Exemple- Roll-up vers la racine de toutes les dimensionen
Roll-up vers la racine de toutes les dimensions
Produit
(catégorie)
BlueRay 2 2 ...
Produit
rs
fev
jan
(mois)
ma
...
r
ma
av
(Produit) Lieu
(Lieu)
Produit Lieu
Temps Temps
(Temps)
12
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Roll-Up
Valeurs de Mesures
• Rappel:
• Valeur numérique
• Lors d’une opération roll-up, nous passons d’une granularité G1 des faits vers une
granularité plus grossière des faits, dénotée G2.
• La fonction définie pour les faits de granularité G2 (si celle-ci est définie) est utilisée pour
calculer la valeur de la mesure de granularité G2.
Roll-Up
Valeurs de mesures
Dérivez les valeurs des mesures du résultat de l’opération roll-up représentée ci-dessous (en utilisant les
valeurs montrées uniquement)
Produit
(catégorie)
rs
fev
jan
(mois)
ma
...
r
ma
av
(ville)
...
médias
Medien Lyon
Paris
Bücher
livres Stuttgart
Berlin
Temps
Q1
Q2
(trimestre)
14
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Drill-Down
• Drill-down est l’opération inverse de Roll-Up.
• Rend possible la navigation d’une granularité donnée vers une granularité plus fine
pour une ou plusieurs dimensions (zoom-in).
Drill-down
Soit un cube à n dimensions C = (DS, M) = ({D1, ..., Dn}, {M1, ..., Mp}) ayant les granularités G
= {l1, l2, ...,ln}, où li correspond au niveau du schéma {D1, ..., Dm, TopD; ➝} de la dimension Di,
1 ≤ li ≤ m+1.
Une opération drill-down navigue, pour un ensemble de dimensions DSDOWN ⊆ DS vers une
granularité plus fine, c.a.d.
∀ Di ∈ DSDOWN, Dj ∈ DS, i = j: li < lj
et
∀ Di ∉ DSDOWN, Dj ∈ DS, i = j: li = lj
15
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Drill-Down
Exemple - Drill-down de plusieurs dimensions
Drill-down de plusieurs dimensions
Produit
(type) Lieu
(ville)
...
Medien Lyon
Paris
Bücher Stuttgart
Berlin
Temps
Q1
Q2
(trimestre)
Produit
(catégorie)
BlueRay 2 2 ...
DVD 2 2 3 3 2 ...
Lieu
Drill-Down des dimensions CD 5 3 5 4 4 ...
(ville)
Produit et Temps: sciences 2 2 2 2 2 ...
...
(type/ trimestre / ville) enfants 2 2 3 3 2 ... Lyon
Paris
➔ (catégorie / mois / ville) romans 5 3 5 4 4 ...
Berlin
Stuttgart
Temps
.
rs
fev
jan
(mois)
ma
...
r
ma
av
16
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Récapitulatif Roll-Up / Drill-Down
• Opérateurs servant à naviguer entre différentes granularités d’une ou de
plusieurs dimensions.
• Drill-down: utilisation des mesures des faits de plus fine granularité (et qui
sont matérialisés).
Drill-Out / Split
• Lors d’un drill-out (aussi nommé split) un cube à n dimensions est
complété par k dimensions de granularité plus fine que TopD,
où k >= 1.
18
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Drill-Out / Split
Drill-out d’un cube à une dimension (catégorie) vers un cube 2D (catégorie / trimestre)
Produit Produit
Drill-out de la (catégorie)
(catégorie)
dimension temps
BlueRay 30 BlueRay 5 5 10 10
(trimestre)
DVD 40 DVD 10 15 5 10
CD 20 CD 3 3 10 4
sciences 15 sciences 5 4 3 3
enfants 20 enfants 5 5 5 5
romans 50 romans 10 20 10 10
Temps
Q1
Q2
Q4
Q3
(trimestre)
19
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Drill-In / Merge
• Opération inverse de drill-out.
• Comme pour roll-up, les données résultant d’un drill-in sont moins
détaillées que les données d’entrée de l’opération.
20
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Drill-In / Merge
Produit Produit
(catégorie) (catégorie)
BlueRay 5 5 10 10 Drill-in de la dimension BlueRay 30
CD 3 3 4 4 14
CD
sciences 5 4 3 3 15
sciences
enfants 5 5 5 5 20
enfants
romans 10 20 20 10 60
romans
Temps
Q1
Q2
Q4
Q3
(trimestre)
21
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Slice
• Permet l’obtention d’un extrait des informations représentées par un cube
en fonction des termes définis pour une dimension.
22
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Slice
Slice avec critère de sélection simple (mois = fev.)
Produit
(catégorie)
BlueRay 2 2 ...
DVD 2 2 3 3 2 ...
CD 5 3 5 4 4 ... Lieu
(ville)
sciences 2 2 2 2 2 ...
...
enfants 2 2 3 3 2 ... Lyon Produit
Paris
5 3 5 4 4 ... Stuttgart (catégorie)
romans Berlin
Temps BlueRay 2 2 ...
.
rs
fev
jan
(mois)
ma
...
r
ma
2 2 ...
av
DVD 2 3 3
CD 5 3 5 4 4 ... Lieu
(ville)
Slice(mois = fev., Temps) sciences 2 2 2 2 2 ...
...
enfants 2 2 3 3 2 ... Lyon
Paris
romans 5 3 5 4 4 ... Stuttgart
Berlin
Temps
.
rs
fev
jan
i
(mois)
ma
...
r
ma
av 23
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Slice
Slice avec critère de sélection contenant une disjonction (mois = fev. OR mois = avr)
Produit
(catégorie)
BlueRay 2 2 ...
DVD 2 2 3 3 2 ...
CD 5 3 5 4 4 ... Lieu
(ville)
sciences 2 2 2 2 2 ...
... Produit
enfants 2 2 3 3 2 ... Lyon
Paris
(catégorie)
romans 5 3 5 4 4 ... Stuttgart
Berlin BlueRay 2 2 ...
Temps
2 2 3 3 2 ...
.
rs
fev
jan
DVD
i
(mois)
ma
...
r
ma
av
CD 5 3 5 4 4 ... Lieu
(ville)
Slice(mois = fev. sciences 2 2 2 2 2 ...
...
OR mois = avr, enfants 2 2 3 3 2 ... Lyon
Paris
Temps) romans 5 3 5 4 4 ...
Berlin
Stuttgart
Temps
.
rs
fev
jan
(mois)
ma
...
r
ma
av
24
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Slice
Slice portant sur la dimension Temps, qui se compose de deux hiérarchies
Temps
Produit année bilan année
(catégorie)
trimestre_bilan trimestre
BlueRay 2 2 ...
mois
DVD 2 2 3 3 2 ...
rs
2 2 ...
fev
2 3 3
jan
(mois)
ma
...
DVD
r
ma
av
CD 5 3 5 4 4 ... Lieu
Slice( (ville)
sciences 2 2 2 2 2 ...
année= 2011 ...
AND (trimestre = Q1 enfants 2 2 3 3 2 ... Lyon
Paris
OR trimestre_bilan = Q2) romans 5 3 5 4 4 ... Stuttgart
Berlin
, Temps)
Temps
.
rs
fev
jan
i
(mois)
ma
...
r
ma
av
25
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Dice
• Application de l’opérateur slice à plusieurs dimensions
• Slice ne peut produire que des tranches du cube, du fait qu’une sélection
n’est possible que sur une dimension.
26
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Dice
Dice appliqué à deux dimensions
Produit
(catégorie)
BlueRay 2 2 ...
DVD 2 2 3 3 2 ...
CD 5 3 5 4 4 ... Lieu
(ville)
sciences 2 2 2 2 2 ...
...
enfants 2 2 3 3 2 ... Lyon Produit
Paris
romans 5 3 5 4 4 ... Stuttgart (catégorie)
Berlin
Temps BlueRay 2 2 ...
.
rs
fev
jan
(mois)
ma
...
r
ma
av
DVD 2 2 3 3 2 ...
CD 5 3 5 4 4 ... Lieu
(ville)
Slice(mois = avril, Temps) sciences 2 2 2 2 2 ...
...
AND enfants 2 2 3 3 2 ... Lyon
Paris
Slice(ville = Berlin, Lieu) romans 5 3 5 4 4 ...
Berlin
Stuttgart
Temps
.
rs
fev
jan
i
(mois)
ma
...
r
ma
av
27
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Dice
Dice appliqué à trois dimensions
Produit
(catégorie)
BlueRay 2 2 ...
DVD 2 2 3 3 2 ...
CD 5 3 5 4 4 ... Lieu
(ville)
sciences 2 2 2 2 2 ...
...
enfants 2 2 3 3 2 ... Lyon Produit
Paris
romans 5 3 5 4 4 ... Stuttgart (catégorie)
Berlin
Temps BlueRay 2 2 ...
.
rs
fev
jan
(mois)
ma
...
r
ma
av
DVD 2 2 3 3 2 ...
CD 5 3 5 4 4 ... Lieu
(ville)
sciences 2 2 2 2 2 ...
Slice(trimestre= Q1 OR month = avr., Temps)
...
AND enfants 2 2 3 3 2 ... Lyon
Slice(type = médias, Produit) Paris
5 3 5 4 4 ... Stuttgart
AND romans Berlin
Slice(ville= Berlin OR ville = Stuttgart, Lieu) Temps
.
rs
fev
jan
(mois)
ma
...
r
ma
av
28
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Chapitre 4
Requêtes OLAP
Opérateurs OLAP
•Dans un cube
Extensions SQL
MDX
29
Cubes Corrélés
• Jusqu’à présent, nous avons considéré des opérateurs appliqués à un seul
cube.
30
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Cubes Corrélés
• Des cubes corrélés se partagent une ou plusieurs dimensions
concordantes.
Dimensions concordantes
Deux dimensions D et D’ sont concordantes si, pour leurs domaines de valeurs, il´est vrai que
dom(D) ⊆ dom(D’) ou dom(D’) ⊆ dom(D).
non-concordantes
produits produits
Cubes corrélés
Cubes corrélés
Deux cubes DC = (DS, M) et DC’ = (DS’, M’) sont corrélés, si au moins une paire de
dimensions (Di, Dj), avec Di ∈ DS, Dj ∈ DS’ est concordante.
Soit CD l’ensemble de toutes les paires
{(Di, Dj) | Di ∈ DS, Dj ∈ DS’, Di concordante avec Dj}.
Produit Produit
(catégorie) (catégorie)
BlueRay 2 2 ...
DVD 2 2 3 3 2 ...
5 3 5 4 4 ... Lieu
CD
(ville) Stock
sciences 2 2 2 2 2 ... sciences
... ...
enfants 2 2 3 3 2 ... Lyon enfants Lyon
Paris Paris
romans 5 3 5 4 4 ... Stuttgart romans Stuttgart
Berlin Berlin
Temps
.b.
.
n.
.
rs
Zeit
rrsz
fev
(mois)
jan
i
Jjaan
ril
ma
...
Maai
r
...
fFeev
ma
Maä
Aapvr
av
(Monat)
m
32
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Drill-Across
• Drill-across est appliqué à plusieurs cubes corrélés.
• Il sert à combiner les mesures des faits de différents cuber corrélés pour effectuer
une analyse plus globale.
• On peut par exemple déterminer les produits les plus populaires (nombres de
ventes les plus élevés) en faisant la somme des mesures des deux cubes
corrélés (Temps, Produit, Lieu) et (Temps, Produit, Client).
• Le cube produit par une opération drill-across appliquée aux cubes DC = (DS, M)
et DC’ = (DS’, M’) consiste en
Drill-Across
Drill-across exemple 1: Ventes totales (en magasin + en ligne) de produits par période
Produit
(catégorie)
BlueRay
DVD Produit
CD Lieu (catégorie)
(ville)
sciences BlueRay
...
enfants Lyon
Paris DVD
romans Stuttgart
Berlin
CD
Temps
rs
fev
jan
i
ril
ma
...
sciences
ma
(mois)
av
enfants
Produit
(catégorie) romans
BlueRay
Temps
rs
fev
jan
i
ma
...
r
ma
av
DVD (mois)
CD
sciences
Client Calcul des mesures:
enfants Gold
Platin ventes(m,k) =
romans
Silver
Standard ∑si ∈ ville ventes(m,k,si) +
Nouveau
∑ki ∈ client ventes (m,k,ki)
Temps
rs
fev
jan
i
ma
...
r
ma
av
(mois)
34
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Drill-Across
Drill-across exemple 2: Pour quels produit le stock est toujours supérieur à 60% du nombre de ventes du même
produit?
ventes
Produit
(catégorie)
BlueRay
DVD
CD Lieu
(ville)
sciences
...
enfants Lyon
Paris
romans Stuttgart
Berlin
Temps
rs
fev
jan
i
ril
ma
...
ma
(mois)
av
Produit
(catégorie)
stock
stock
sciences
...
enfants Lyon
Paris
romans Stuttgart
Berlin
Temps
fFeevb.
jaJann.
rsz
ii
ril il
maär
mMaa
...
aAvpr
(mois)
M
35
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Opérations OLAP
• Les opérations OLAP vu jusqu’ici s’appliquent à des cubes multidimensionnels
36
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Langages Implémentant des Opérations OLAP
• En général
• Langages déclaratifs
• Deux approches
• Extensions SQL:
Requêtes portant sur des données relationnelles stockées en schéma en
étoile ou en schéma en flocon.
Chapitre 4
Requêtes OLAP
Opérateurs OLAP
•Dans un cube
Extensions SQL
MDX
38
SQL et OLAP
Exemple
Exemple d‘un schéma en étoile
Produit Produit
PID categorie type
BlueRay
1 romans livres
DVD
2 enfants livres
CD Lieu
3 sciences livres
sciences
4 CD médias ...
enfants
ParisLyon
5 DVD médias
romans Berlin Stuttgart
6 BlueRay médias
rs
Temps
fev
jan
i
ril
ma
...
ma
av
Faits
Temps PID ZTD LID #Ventes CD
ZID mois trimestre annee 1 1 1 5 30
1 Jan10 Q1 2010 2010 1 1 2 5 37
2 Fev10 Q1 2010 2010 1 1 3 5 45
... ... ... ... 1 1 4 5 20
2 1 1 2 33
Lieu 2 1 2 2 35
LID ville 2 1 3 2 40
1 Berlin 2 1 4 2 35
2 Stuttgart ... ... ... ... ...
3 Paris 1 2 1 3 22
4 Lyon ... ... ... ... ... 40
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
• Rappel de GROUP BY
• GROUP BY <att1>, <att2>, ..., <attn> forme des partitions des
données considérées par la requête en fonction des valeurs des attributs
att1 à attn.
• Si GROUP BY est utilisé, peuvent apparaitre dans la clause SELECT (i) les
attributs att1 à attn plus (ii) des valeurs agrégées d‘autres attributs.
• Agrégation avec les fonctions SUM, COUNT, AVG, MIN, MAX
Exemple d‘une requête GROUP-BY - Total du chiffre d‘affaire CD de livres par année, trimestre
et mois?
Groupement multiple
Exemple d‘une requête GROUP-BY - Total du chiffre d‘affaire CD de livres par année, trimestre et mois?
SELECT mois AS Time, SUM(CD) AS total_CD
FROM Faits F, Temps T, Produit P
WHERE P.PID = F.PID Time total_CD
AND T.TID = F.TID mois jan 2010 150
AND P.type = ‘livres’
GROUP BY mois fev 2010 300
UNION ... ...
SELECT trimestre AS Time, SUM(CD) AS total_CD dec 2010 400
FROM Faits F, Temps T, Produit P
WHERE P.PID = F.PID trimestres jan 2011 300
AND T.TID = F.TID ... ...
AND P.type = ‘livres’ Q1 2010 500
GROUP BY trimestre ... ...
UNION
Q4 2011 800
SELECT annee AS Time, SUM(CD) AS total_CD
FROM Faits F, Temps T, Produit P années 2010 2000
WHERE P.PID = F.PID 2011 2300
AND T.TID = F.TID
AND P.type = ‘livres’
GROUP BY annee
42
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Résultat désiré -Total du CD par année, Exemple 2: CD de 2010 par (i) trimestre et
trimestre et mois type de produit et (ii) par trimestre et lieu.
Groupement Multiple
44
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Grouping Sets
Grouping Sets
...
GROUP BY GROUPING SETS ((<set1_a1>, ..., <set1_am>),
(<set2_a1>, ..., <set2_an>),
...)
Groupement Multiple
Grouping Sets
SELECT trimestre,
trimestre type lieu CD
type,
Q1 2010 livres ⊥ 50 lieu,
... livres ⊥ ... SUM(CD)AS CD
Q4 2010 livres ⊥ 70 FROM Faits F,
Q1 2010 médias ⊥ 40 Temps T, Produit P, Lieu L
... médias ⊥ ... WHERE P.PID = F.PID
Q4 2010 médias ⊥ 60 AND T.TID = F.TID
Q1 2010 ⊥ Berlin 60 AND L.LID = F.LID
... ⊥ Berlin ...
AND T.annee = ‘2010’
Q4 2010 ⊥ Berlin 50
GROUP BY GROUPING SETS (
Q1 2010 ⊥ Stuttgart 20 (trimestre, type),
... ⊥ ... ... (trimestre, lieu)
)
46
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Grouping Sets
47
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Grouping Sets
➔ groupe (A, B)
48
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Grouping Sets
Spécifiez une requête SQL qui produit le résultat suivant
49
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Groupement multidimensionnel
...
GROUP BY CUBE (<a1>, ..., <an>)
• par exemple, CUBE(A, B, C) forme les groupes (A, B, C), (A, B), (A,
C), (B, C), (A), (B), (C), ( ))
• 2n groupes au total
50
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Groupement multidimensionnel
CD par (toutes les combinaisons de) trimestre, type de produit et lieu en 2010
Groupement Multiple
Groupement multidimensionnel
Ce tableur représente le nombre de DVDs vendus le premier trimestre 2010, agrégé par les
différentes combinaisons de mois et de lieu. Spécifiéz la requête SQL produisant ce résultat.
53
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Groupement hiérarchique multidimensionnel
...
GROUP BY ROLLUP (<a1>, ..., <an>)
54
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Groupement hiérarchique multidimensionnel
55
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Groupement hiérarchique multidimensionnel
• Sémantique de groupement de l‘opérateur ROLLUP
• GROUP BY ROLLUP(A1, A2, ..., An)
≣
GROUP BY
GROUPING SETS ( (A1, ..., An-1, An), (A1, ..., An-1), ...,
(A1, A2), (A1), () )
56
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Groupement Multiple
Groupement hiérarchique multidimensionnel
Spécifiez une requête SQL utilisant ROLLUP
La requête SQL calcule le nombre de ventes en année mois categorie ville ventes
décembre de produits de type médias regroupé par
2010 dec CD - 200
année, mois, catégorie et ville.
Le résultat est représenté ci-contre. 2010 dec DVD - 150
2010 dec BlueRay - 50
2010 dec - - 400
2011 dec - - 450
2010 - - - 2000
2011 - - - 3000
- - - - 5000
2010 - - Berlin 1000
2010 - - Stuttgart 300
2010 - - ... ...
2011 - - Berlin 1500
2011 - - ... ...
- - - Berlin 4000
- - - Stuttgart 2000
- - - ... ...
57
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Chapitre 4
Requêtes OLAP
Opérateurs OLAP
•Dans un cube
Extensions SQL
MDX
58
MDX
• MDX = Multidimensional Expressions:
Proposition de Microsoft “OLE DB for OLAP”
• Langage de requête s‘appliquant sur le MDDM
60
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
MDX Principe de Base et Structure
Exemple simple d‘une requête MDX (cube & dimensions voir transparent 3)
Parenthèses et SELECT
• Parenthèses en MDX
• {} - Ensemble des éléments servant à la création d‘une dimension du résultat
de la requête
• [] - Représentation d‘espaces, de caractères spéciaux et d‘interpretation non
numérique de chiffres.
• () - Sélection de tuples dans la clause WHERE
• SELECT - description des axes du cube résultat
• Chaque dimension du résultat est associé à un rôle correspondant à sa
représentation dans le tableur retourné par la requête MDX
ON COLUMNS, ON ROWS, ON PAGES, ON SECTIONS, ON CHAPTERS
• Une dimension du résultat correspond à une (sélection sur une) dimension du
MDDM sur un ou plusieurs niveaux de la hiérarchie.
{Berlin, Stuttgart} de la dimension Lieu, niveau Ville
{[1er trimestre], [2nd trimestre].CHILDREN} de la dimension
Temps, niveaux trimestre et mois.
62
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
FROM et WHERE
• FROM - Spécification du cube
• WHERE - Restriction
63
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Expressions de Collections
• Enumération de noeuds d‘une hiérarchie dimensionnelle
• ...
64
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Expressions de Collections
• Emboitage de collections avec CROSSJOIN
Expressions de Collections
66
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Expressions de Collections
67
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
• Requêtes top-k
• TOPCOUNT
• TOPRECENT
• TOPSUM
• Filtre
• FILTER
68
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Conditions de Production du Résultat
Exemple de la fonction TOPCOUNT
Totaux des ventes des cinq régions françaises ayant vendu le plus en 2010 (Hypothèse:
hiérarchie Pays-Région-Ville)
Totaux des ventes de produits de type médias des régions dont le total des ventes de 2002
est supérieur à celui de 2001. Ici, le total des ventes est retourné par trimestre de 2002.
SELECT {FILTER(France.CHILDREN,
([2002], Ventes) > ([2001], Ventes) ) } ON COLUMNS
{trimestre.MEMBERS } ON ROWS
FROM CubeVentes
WHERE ( Ventes, [2002], Produit.[médias] )
69
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Evaluation Temporelle
• PERIODSTODATE(k, d)
Tous les noeuds le la classe k jusqu'à la date d
e.g., PERIODSTODATE(trimestre, [15/11/2002]) = 1/10/2002 - 15/11/2002
• LASTPERIODS(k, d)
k derniers laps de temps précédant la date d (k et d au même niveau).
e.g., LASTPERIODS(3, [sept. 2002]) =
{[juin 2002], [juillet 2002], [août 2002]}
• PARALLELPERIOD(k, n, d)
e.g., PARALLELPERIOD([Année], 3, [sept. 2002]) = {[sept. 1999]}
70
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Autres Fonctions
• Autres fonctions
• Covariance
• Corrélation
• Moyenne glissante
• ...
71
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud
Récapitulatif
• Opérations OLAP
• Langages OLAP
72
Bases de Données OLAP | Hiver 2013/14 | Melanie Herschel | Université Paris Sud