Hiver 2013/2014
Melanie Herschel
melanie.herschel@lri.fr
Universit Paris Sud, Groupe Bases de Donnes, LRI
UPDATE
SET
WHERE
AND
Order
amount = amount + 1
OrderID = 1
BookID = 204
Jahr
Requtes analytiques
Entrept de Bulk-Insert et SELECT
donnes
Requtes typiques (drill down, slice, dice, ...)
Techniques doptimisation de requtes spcialises
2007
2006
Region
2005
2004
...
North America
Asia
Europe
2003
2002
Books CDs DVDs ...
Produktgruppe
2
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
hirarchies
dimensionnelles
Cube
(granularit la plus fine)
Temps
Produit
BlueRay
...
...
...
...
ma
jan
romans
...
av
enfants
...
rs
sciences
...
ma
CD
fev
.
DVD
Lieu
...
Berlin
Lyon
Paris
Stuttgart
Produit
anne
type
trimestre
Lieu
catgorie
mois
ville
Temps
3
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
4
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
5
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Chapitre 4
Requtes OLAP
Oprateurs OLAP
Dans un cube
Sur plusieurs cubes
Extensions SQL
MDX
Hypothses
Nous admettons dans cette premire partie du chapitre quil nexiste quun
seul cube dans lentrept de donnes (plus prcisment dans sa BD
dispositive).
Pour une reprsentation simplifie, nous montrons uniquement des cubes
trois dimensions maximum. Les concepts prsents sappliquent nanmoins
des cubes de dimensionnalit quelle conque.
Pour une reprsentation simplifie, nous nutilisons quune seule mesure. En
gnral, un nombre de mesures plus lev peut exister.
7
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Roll-Up
Dfinition
Roll-Up (aussi: consolidate)
Soit un cube n dimensions C = (DS, M) = ({D1, ..., Dn}, {M1, ..., Mp}) ayant pour granularit des
dimensions G = {l1, l2, ...,ln}, o le niveau li du schma {D1, ..., Dm, TopD; } appartient la dimension
Di,1 li m+1.
Une opration roll-up (nomme galement consolidate) navigue dun ensemble DSup DS vers une
granularit plus grossire, c.a.d.
Di DSup, Dj DS, i = j, j < m + 1: lj < li m+1
et
Di DSup, Dj DS, i = j: li = lj
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Roll-Up
Exemple- Roll-up dune seule dimension
Roll-up dune seule dimension
Produit
(catgorie)
2
...
...
CD
...
...
...
...
...
ma
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Produit
(type)
Lieu
(ville)
...
mdias
Lyon
Paris
Stuttgart
Berlin
...
r
av
ma
livres
jan
.
romans
av
r
enfants
jan
sciences
fev
.
ma
rs
DVD
fev
.
ma
rs
BlueRay
Temps
(mois)
10
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Roll-Up
Exemple- Roll-up de plusieurs dimensions
Roll-up de plusieurs dimensions
Produit
(catgorie)
BlueRay
...
...
CD
...
...
...
...
...
jan
.
romans
ma
enfants
av
sciences
fev
.
ma
rs
DVD
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Produit
(type)
Lieu
(ville)
...
Medien
Lyon
Paris
Stuttgart
Berlin
Q2
Q1
Bcher
Temps
(trimestre)
11
Bases de Donnes 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
(catgorie)
BlueRay
...
...
CD
...
...
...
...
...
ma
av
r
romans
ma
enfants
jan
sciences
rs
fev
.
DVD
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Produit
(Produit)
Produit
Lieu
(Lieu)
Lieu
Temps
Temps
(Temps)
12
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Roll-Up
Valeurs de Mesures
Rappel:
Une mesure appartient un fait, et ce fait possde une certaine granularit.
Deux proprits dune mesure:
Valeur numrique
Fonction pouvant driver la mesure partir dautres mesures.
Lors dune opration roll-up, nous passons dune granularit G1 des faits vers une
granularit plus grossire des faits, dnote G2.
La fonction dfinie pour les faits de granularit G2 (si celle-ci est dfinie) est utilise pour
calculer la valeur de la mesure de granularit G2.
Cependant, il faut prendre en compte la proprit de ladditivit de la mesure (additive,
semi-additive ou non-additive).
Dans le cas dune mesure semi-additive ou non-additive, il se peut que la valeur de la
mesure ne soit calculable qu partir des mesures des donnes plus fine granularit
(de toutes les dimensions).
13
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Roll-Up
Valeurs de mesures
Drivez les valeurs des mesures du rsultat de lopration roll-up reprsente ci-dessous (en utilisant les
valeurs montres uniquement)
Produit
(catgorie)
2
...
...
CD
...
...
...
...
...
ma
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Produit
(type)
Lieu
(ville)
...
mdias
Medien
Lyon
Paris
Stuttgart
Berlin
Bcher
livres
Q1
romans
av
r
enfants
jan
sciences
fev
.
ma
rs
DVD
Q2
BlueRay
Temps
(trimestre)
14
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-Down
Drill-down est lopration inverse de Roll-Up.
Rend possible la navigation dune granularit donne vers une granularit plus fine
pour une ou plusieurs dimensions (zoom-in).
Par exemple de (type / trimestre / ville) vers (catgorie / mois / ville).
Drill-down
Soit un cube n dimensions C = (DS, M) = ({D1, ..., Dn}, {M1, ..., Mp}) ayant les granularits G
= {l1, l2, ...,ln}, o li correspond au niveau du schma {D1, ..., Dm, TopD; } de la dimension Di,
1 li m+1.
Une opration 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 Donnes 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
Stuttgart
Berlin
Produit
(catgorie)
BlueRay
...
...
CD
...
...
...
...
enfants
jan
romans
...
sciences
DVD
fev
.
ma
rs
ma
Temps
(trimestre)
av
r
Q2
Q1
Bcher
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
16
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-Out / Split
Lors dun drill-out (aussi nomm split) un cube n dimensions est
complt par k dimensions de granularit plus fine que TopD,
o k >= 1.
Le rsultat est un cube (n+k) dimensions
Comme drill-down, drill-out navigue vers des donnes plus
dtailles.
Contrairement drill-down, le dtail nest pas augment par
laugmentation de la granularit dune dimension existante, mais par
lajout de nouvelles informations dune nouvelle dimension.
18
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-Out / Split
Drill-out dun cube une dimension (catgorie) vers un cube 2D (catgorie / trimestre)
Produit
(catgorie)
BlueRay
10
10
DVD
10
15
10
CD
10
enfants
romans
10
20
10
10
DVD
40
CD
20
sciences
15
sciences
enfants
20
romans
50
Q1
30
Q4
BlueRay
Q3
Drill-out de la
dimension temps
(trimestre)
Q2
Produit
(catgorie)
Temps
(trimestre)
19
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-In / Merge
Opration inverse de drill-out.
Un drill-in (nomm galement merge) efface k dimensions dun
cube n-dimensionnel, o k < n.
Le rsultat est un cube (n-k) dimensions.
Comme pour roll-up, les donnes rsultant dun drill-in sont moins
dtailles que les donnes dentre de lopration.
Contrairement au roll-up, le degr de dtail nest pas rduit par
rduction de la granularit, mais par l'limination de dimensions.
20
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-In / Merge
Produit
(catgorie)
DVD
10
15
10
CD
sciences
enfants
romans
10
20
20
10
Q4
10
Q3
10
Q2
Q1
Drill-in de la dimension
Temps
BlueRay
30
DVD
40
CD
14
sciences
15
enfants
20
romans
60
Temps
(trimestre)
21
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Slice
Permet lobtention dun extrait des informations reprsentes par un cube
en fonction des termes dfinis pour une dimension.
Le paramtre de loprateur slice est un critre de slection (range query,
point query) portant sur une dimension.
Critre de slection avec AND, OR et NOT.
Par exemple (mois > fev.) AND (mois <= nov.) AND (mois NOT avr)
Critre de slection sur un ou plusieurs niveaux dune mme dimension
Par exemple pays = DE AND code_postal= 10179
Notation Slice(p, D): slectionne les tranches le long de la dimension D,
qui satisfont le critre de slection p.
22
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Slice
Slice avec critre de slection simple (mois = fev.)
Produit
(catgorie)
...
CD
...
sciences
...
...
...
jan
romans
av
enfants
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Produit
(catgorie)
BlueRay
...
DVD
...
CD
...
sciences
...
...
...
enfants
jan
romans
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
...
...
ma
i
fev
.
ma
rs
DVD
...
ma
i
av
fev
.
ma
rs
BlueRay
Temps
(mois)
23
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Slice
Slice avec critre de slection contenant une disjonction (mois = fev. OR mois = avr)
Produit
(catgorie)
...
CD
...
sciences
...
...
...
...
ma
jan
.
romans
av
enfants
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Produit
(catgorie)
BlueRay
...
DVD
...
CD
...
sciences
...
...
...
enfants
romans
jan
.
Slice(mois = fev.
OR mois = avr,
Temps)
Lieu
(ville)
...
fev
.
ma
rs
DVD
ma
...
av
fev
.
ma
rs
BlueRay
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
24
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Slice
Slice portant sur la dimension Temps, qui se compose de deux hirarchies
Temps
Produit
(catgorie)
...
CD
...
sciences
...
...
...
jan
romans
av
enfants
trimestre
mois
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Slice(
Produit
(catgorie)
BlueRay
...
DVD
...
CD
...
sciences
...
...
...
enfants
romans
jan
anne= 2011
AND (trimestre = Q1
OR trimestre_bilan = Q2)
, Temps)
jours
...
...
ma
i
fev
.
ma
rs
DVD
trimestre_bilan
...
ma
i
av
anne
fev
.
ma
rs
BlueRay
anne bilan
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
25
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Dice
Application de loprateur slice plusieurs dimensions
Par exemple slice(mois = jan, Temps) AND slice(ville = Berlin, Lieu)
Slice ne peut produire que des tranches du cube, du fait quune slection
nest possible que sur une dimension.
Dice peut produire des sous-cubes arbitraires.
26
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Dice
Dice appliqu deux dimensions
Produit
(catgorie)
...
CD
...
sciences
...
...
...
jan
romans
av
enfants
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Produit
(catgorie)
Temps
(mois)
BlueRay
...
DVD
...
CD
...
sciences
...
...
...
enfants
jan
romans
...
...
ma
i
fev
.
ma
rs
DVD
...
ma
i
av
fev
.
ma
rs
BlueRay
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
27
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Dice
Dice appliqu trois dimensions
Produit
(catgorie)
...
CD
...
sciences
...
...
...
...
ma
jan
.
romans
av
enfants
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Produit
(catgorie)
BlueRay
...
DVD
...
CD
...
sciences
...
...
...
enfants
romans
...
ma
fev
.
ma
rs
DVD
...
av
fev
.
ma
rs
jan
.
BlueRay
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
28
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Chapitre 4
Requtes OLAP
Oprateurs OLAP
Dans un cube
Sur plusieurs cubes
Extensions SQL
MDX
29
Cubes Corrls
Jusqu prsent, nous avons considr des oprateurs appliqus un seul
cube.
Dans un DW sont typiquement stocks plusieurs cubes, par exemple:
Un cube ayant les dimensions (Temps, Produit, Lieu) stockant le nombre
de ventes par priode, produit et magasin;
Un cube ayant les dimensions (Temps, Produit, Client) stockant le nombre
de ventes en ligne par client et par priode.
Pourquoi pas un cube (Temps, Produit, Lieu, Client)?
30
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Cubes Corrls
Des cubes corrls se partagent une ou plusieurs dimensions
concordantes.
Dimensions concordantes
Deux dimensions D et D sont concordantes si, pour leurs domaines de valeurs, ilest vrai que
dom(D) dom(D) ou dom(D) dom(D).
Exemples de dimensions concordantes et non-concordantes
concordantes
produits
produits
livres
livres
mdias
enfants romans
mdias
CD
CD
produits
livres
mdias
DVD
non-concordantes
produits
produits
livres
livres
mdias
enfants romans
CD
sciences
DVD
mdias
romans
CD
DVD
31
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Cubes corrls
Cubes corrls
Deux cubes DC = (DS, M) et DC = (DS, M) sont corrls, si au moins une paire de
dimensions (Di, Dj), avec Di DS, Dj DS est concordante.
Soit CD lensemble de toutes les paires
{(Di, Dj) | Di DS, Dj DS, Di concordante avec Dj}.
Exemple de deux cubes corrls ayant CD = {(Produit, Produit), (Temps, Temps)}
Produit
(catgorie)
Produit
(catgorie)
...
...
...
sciences
...
...
...
...
ma
av
r
romans
jan
enfants
.
fev
.
ma
rs
DVD
CD
Lieu
(ville)
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
Stock
sciences
...
enfants
Lyon
Paris
Stuttgart
Berlin
romans
fFeev
.b.
Ma
m
rrsz
Aapvr
ril
m
Maai
i
...
Jjaan
n.
BlueRay
Zeit
(Monat)
32
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-Across
Drill-across est appliqu plusieurs cubes corrls.
Il sert combiner les mesures des faits de diffrents cuber corrls pour effectuer
une analyse plus globale.
Hypothse: la combinaison des mesures est raisonnable!
On peut par exemple dterminer les produits les plus populaires (nombres de
ventes les plus levs) en faisant la somme des mesures des deux cubes
corrls (Temps, Produit, Lieu) et (Temps, Produit, Client).
Le cube produit par une opration drill-across applique aux cubes DC = (DS, M)
et DC = (DS, M) consiste en
Lensemble des dimensions concordantes avec le moins de dtails
{Di | (Di, Dj) CD AND Di Dj} (voir transparent 32 pour la dfinition de CD)
Lensemble des mesures M M ou des mesures drives.
33
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-Across
Drill-across exemple 1: Ventes totales (en magasin + en ligne) de produits par priode
Produit
(catgorie)
BlueRay
DVD
Lieu
(ville)
CD
sciences
BlueRay
...
enfants
Lyon
Paris
Stuttgart
Berlin
jan
fev
ma
rs
av
ril
ma
i
...
romans
Produit
(catgorie)
DVD
CD
Temps
(mois)
sciences
enfants
Produit
(catgorie)
CD
Client
sciences
Platin
enfants
Gold
Silver
Standard
Nouveau
av
r
ma
i
...
fev
ma
rs
jan
romans
Temps
(mois)
ma
i
...
rs
av
r
DVD
ma
jan
BlueRay
fev
romans
Temps
(mois)
34
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Drill-Across
Drill-across exemple 2: Pour quels produit le stock est toujours suprieur 60% du nombre de ventes du mme
produit?
ventes
Produit
(catgorie)
BlueRay
DVD
Lieu
(ville)
CD
sciences
...
enfants
Lyon
Paris
Stuttgart
Berlin
Produit
(catgorie)
jan
fev
ma
rs
av
ril
ma
i
...
romans
Temps
(mois)
stock
stock
sciences
enfants
jaJann.
fFeevb.
M
mar
rsz
aAvpr
ril il
mMaa
ii
...
romans
...
Lyon
Paris
Stuttgart
Berlin
Temps
(mois)
35
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Oprations OLAP
Les oprations OLAP vu jusquici sappliquent des cubes multidimensionnels
Navigation dans une hirarchie: roll-up, drill-down
Extension / rduction de la dimensionnalit: split / merge
Slection: slice, dice
Combinaison de deux cubes: drill-across
Dautres requtes analytique appartenant aux oprations OLAP:
Calcul de moyenne glissante
Analyse portant sur des sries chronologiques
Comparaison relative de valeurs
36
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Chapitre 4
Requtes OLAP
Oprateurs OLAP
Dans un cube
Sur plusieurs cubes
Extensions SQL
MDX
38
SQL et OLAP
Traduction dun modle multidimensionnel en un schma en toile ou en
flocon
Oprations avec SQL-92
Slice / dice: jointures et slections
drill-down: jointures et projections
Agrgation dun niveau: GROUP BY
Extensions OLAP de SQL
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Exemple
Exemple dun schma en toile
Produit
Produit
type
romans
livres
enfants
livres
sciences
livres
CD
mdias
DVD
mdias
BlueRay
mdias
BlueRay
DVD
CD
enfants
romans
Faits
Temps
ZID mois
trimestre annee
PID
ZTD
LID
#Ventes
CD
30
Jan10 Q1 2010
2010
37
Fev10 Q1 2010
2010
45
...
20
33
... ...
...
Lieu
Lieu
sciences
jan
fev
ma
rs
av
ril
ma
i
...
PID categorie
35
LID
ville
40
Berlin
35
Stuttgart
...
...
...
...
...
Paris
22
Lyon
...
...
...
...
...
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
...
ParisLyon
Berlin Stuttgart
Temps
40
Groupement Multiple
Rappel de GROUP BY
GROUP BY <att1>, <att2>, ..., <attn> forme des partitions des
donnes considres par la requte 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 agrges dautres attributs.
Agrgation avec les fonctions SUM, COUNT, AVG, MIN, MAX
Exemple dune requte GROUP-BY - Total du chiffre daffaire CD de livres par anne, trimestre
et mois?
SELECT
FROM
WHERE
AND
AND
GROUP BY
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement multiple
Exemple dune requte GROUP-BY - Total du chiffre daffaire CD de livres par anne, trimestre et mois?
SELECT
FROM
WHERE
AND
AND
GROUP BY
UNION
SELECT
FROM
WHERE
AND
AND
GROUP BY
UNION
SELECT
FROM
WHERE
AND
AND
GROUP BY
mois
trimestres
annes
Time
total_CD
jan 2010
150
fev 2010
300
...
...
dec 2010
400
jan 2011
300
...
...
Q1 2010
500
...
...
Q4 2011
800
2010
2000
2011
2300
42
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Rsultat dsir -Total du CD par anne,
trimestre et mois
CD
trimestre type
2010
Q1
jan
150
Q1 2010
livres
50
2010
Q1
fev
300
...
livres
...
2010
Q1
mars
50
Q4 2010
livres
70
...
...
...
...
Q1 2010
mdias
40
2011
Q1
jan
300
...
mdias
...
...
...
...
...
Q4 2010
mdias
60
2010
Q1
...
...
2011
Q4
lieu
CD
500
Q1 2010
Berlin
60
...
...
...
Berlin
...
800
Q4 2010
Berlin
50
2010
2000
Q1 2010
Stuttgart 20
2011
2300
...
...
...
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Extensions SQL supportant le groupement multiple en une seule
requte:
GROUPING SETS - Spcification explicite des combinaisons
dattributs de groupement
CUBE - groupement multidimensionnel
Gnre toutes les combinaisons possibles des attributs spcifis
en paramtres
ROLLUP - groupement hirarchique et multidimensionnel
Combinaisons de ces clauses avec les clauses SQL connues
(GROUP BY, HAVING, CASE, ...)
44
Bases de Donnes 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>),
...)
45
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Grouping Sets
Exemple 2: CD de 2010 par (i) trimestre et
type de produit et (ii) par trimestre et lieu.
trimestre type
lieu
CD
SELECT
trimestre,
type,
lieu,
SUM(CD)AS CD
FROM
Faits F,
Temps T, Produit P, Lieu L
Q1 2010
livres
50
...
livres
...
Q4 2010
livres
70
Q1 2010
mdias
40
...
mdias
...
WHERE
P.PID = F.PID
Q4 2010
mdias
60
AND
T.TID = F.TID
Q1 2010
Berlin
60
AND
L.LID = F.LID
...
Berlin
...
AND
T.annee = 2010
Q4 2010
Berlin
50
Q1 2010
Stuttgart 20
...
...
...
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Grouping Sets
Exemple 2 avec identification des attributs de groupe
trimestre
type
Q1 2010
livres
...
...
lieu
CD
GQ
GT
GL
50
...
Q1 2010
Berlin
60
...
Berlin
...
47
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Grouping Sets
Smantique de groupement de la clause GROUPING SETS
GROUP BY A, B GROUP BY GROUPING SETS ((A, B))
groupe (A, B)
GROUP BY GROUPING SETS ((A, B), (A, C), (A))
Groupement Multiple
Grouping Sets
Spcifiez une requte SQL qui produit le rsultat suivant
type
annee
ville
#ventes
livres
livres
2010
Berlin
livres
2010
Stuttgart 20
mdias
mdias
2010
Berlin
mdias
2010
Stuttgart 10
50
30
40
30
Berlin
Stuttgart 30
80
49
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Groupement multidimensionnel
Groupement multidimensionnel en utilisant CUBE()
...
GROUP BY CUBE (<a1>, ..., <an>)
50
Bases de Donnes 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
trimestre
type
lieu
total_CD
Q1 2010
livres Berlin
10
Q1 2010
livres Stuttgart
20
...
...
...
Q1 2010
livres
...
...
...
20
...
SELECT
Q1 2010
Berlin
80
Q1 2010
Stuttgart
50
...
...
...
livres Berlin
50
livres Stuttgart
80
...
...
...
Q1 2010
160
...
...
livres
200
mdias
300
Berlin
200
Stuttgart
100
...
...
1000
51
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Groupement multidimensionnel
Smantique de groupement de loprateur CUBE
GROUP BY CUBE(A, B, C)
GROUP BY GROUPING SETS ((A,B), (A), (B), (), (B,C), (B), (C), ())
52
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Groupement multidimensionnel
Spcification dune requte SQL utilisant loprateur CUBE
Ce tableur reprsente le nombre de DVDs vendus le premier trimestre 2010, agrg par les
diffrentes combinaisons de mois et de lieu. Spcifiz la requte SQL produisant ce rsultat.
jan
fev
mars
Total
Berlin
20
25
22
67
Stuttgart
10
15
17
42
Paris
30
25
30
85
Lyon
10
12
10
32
Total
70
77
79
226
53
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Groupement hirarchique multidimensionnel
Groupement multidimensionnel utilisant ROLLUP()
...
GROUP BY ROLLUP (<a1>, ..., <an>)
Groupement Multiple
Groupement hirarchique multidimensionnel
CD de livres par anne, trimestre et mois.
annee trimestre mois
total_CD
2010
Q1
jan
150
2010
Q1
fev
300
2010
Q1
mars
50
...
...
...
...
2011
Q1
jan
300
...
...
...
...
2010
Q1
...
...
2011
Q4
...
500
...
800
2010
2000
2011
2300
4300
SELECT
55
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Groupement hirarchique multidimensionnel
Smantique de groupement de loprateur ROLLUP
GROUP BY ROLLUP(A1, A2, ..., An)
GROUP BY
GROUPING SETS ( (A1, ..., An-1, An), (A1, ..., An-1), ...,
(A1, A2), (A1), () )
ou sappliquent les dpendances fonctionnelles An An-1 ... A2 A1
GROUP BY ROLLUP(A1, ..., An), ROLLUP(B1, ..., Bm)
groupes ( (A1, ..., An), ..., (A1, A2), (A1), ( ) )
56
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Groupement Multiple
Groupement hirarchique multidimensionnel
Spcifiez une requte SQL utilisant ROLLUP
anne mois
categorie ville
ventes
2010
dec
CD
200
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 Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Chapitre 4
Requtes OLAP
Oprateurs OLAP
Dans un cube
Sur plusieurs cubes
Extensions SQL
MDX
58
MDX
MDX = Multidimensional Expressions:
Proposition de Microsoft OLE DB for OLAP
Langage de requte sappliquant sur le MDDM
Standard sans smantique fixe (dfinie par des exemples)
Concepts MDDM (dimensions, mesures) manipuls directement
Requtes plus compacte que les requtes SQL quivalentes
Syntaxe similaire SQL (mais smantique diffrente)
Langage trs complexe et puissant
Cration des objets manipuler (DDL) se fait par dautres moyens:
DSO Interface (Decision Support Objects) de SQL Server
Est utilis par beaucoup doutils commerciaux pour communiquer avec des BD
OLAP.
daprs [Ulf Leser, cours Data Warehouses und Data Mining, SS 2007]
59
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
SELECT
FROM
WHERE
60
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
SELECT
FROM
CubeVentes
WHERE
( Measures.Ventes,
Temps.[2010],
Produit.Produit )
avril 2010
mai 2010
juin 2010
valeurs numriques
Stuttgart
61
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Parenthses et SELECT
Parenthses en MDX
{} - Ensemble des lments servant la cration dune dimension du rsultat
de la requte
[] - Reprsentation despaces, de caractres spciaux et dinterpretation non
numrique de chiffres.
() - Slection de tuples dans la clause WHERE
SELECT - description des axes du cube rsultat
Chaque dimension du rsultat est associ un rle correspondant sa
reprsentation dans le tableur retourn par la requte MDX
ON COLUMNS, ON ROWS, ON PAGES, ON SECTIONS, ON CHAPTERS
Une dimension du rsultat correspond une (slection sur une) dimension du
MDDM sur un ou plusieurs niveaux de la hirarchie.
{Berlin, Stuttgart} de la dimension Lieu, niveau Ville
{[1er trimestre], [2nd trimestre].CHILDREN} de la dimension
Temps, niveaux trimestre et mois.
62
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
FROM et WHERE
FROM - Spcification du cube
Ensemble de cubes tant ncessaire la cration du cube rsultat.
Si plusieurs cubes y sont spcifis, la simantique implique une jointure
multidimensionnelle. Dans ce cas, chaque paire de cubes doit possder
au moins une dimension concordante.
WHERE - Restriction
Restrictions appliques sur les cubes spcifis dans la clause FROM.
Spcification des restrictions par une liste de noeuds de la hirarchie
dune dimension nomme slicer-dimension.
Les mesures sont des lments normaux de la dimension spciale des
mesures nomme Measures (celli-ci peut tre utilise dans les clauses
WHERE et FROM).
63
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Expressions de Collections
Enumration de noeuds dune hirarchie dimensionnelle
Des noeuds individuels ne proviennent pas ncessairement du mme niveau
Par exemple, {romans, enfants, [mdias]} retourne des catgories et
un type de la dimension Produit.
Expressions donnant un ensemble de noeuds
CHILDREN: enfants dun noeud de la hirarchie
e.g.,[2nd trimestre].CHILDREN = {avril, mai, juin}
MEMBERS: noeuds dun niveau
e.g., Temps.Trimestre.MEMBERS = {[1er trimestre], ... , [4me trimestrel]}
PARENT: Parent dun noeud
e.g., romans.PARENT = {livres}
...
64
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Expressions de Collections
Emboitage de collections avec CROSSJOIN
Projection de deux dimensions en une seule
Smantique: produit Cartsien
Exemple CROSSJOIN
SELECT
FROM
WHERE
CROSSJOIN({Berlin, Stuttgart}
{kiosque, [grande surface]}) ON ROWS
{ 2010.CHILDREN } ON COLUMNS
CubeVentes
( Measures.Ventes, Temps.[2010], Produit.[mdias] )
1er trimestre
2010
kiosque
grande surface
kiosque
Stuttgart
grande surface
Berlin
2nd trimestre
2010
Expressions de Collections
Slection relative par rapport la position dun noeud de linstance dune
dimension
LASTCHILD - dernier enfant dun noeud
e.g. livres.LASTCHILD = {sciences}
NEXTMEMBER - prochain voisin ( droite) au mme niveau
e.g. [1er trimestre 2010].NEXTMEMBER = {[2nd trimestre 2010]}
LEAD(x) - voisin distance x positive ( droite) au mme niveau
e.g. [novembre 2010].LEAD(2) = {[janvier 2011]}
[x]:[y] - Restriction du domaine entre x et y
e.g. [1992]:[2002] restreint la priode considrer aux annes 1992
2002.
66
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Expressions de Collections
Fonctions appliques au schma dune dimension exploitant lordre dfini de
cette structure.
LEVEL - identification du niveau schmatique
e.g. romans.LEVEL = {[catgorie]},
[mdias].LEVEL = {type}
LEVELS(x) - exploitation de la numrotation interne des niveaux du
schma de la dimension pour accder au niveau x
e.g. Temps.LEVELS(1) = {[anne]}
67
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
68
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Totaux des ventes des cinq rgions franaises ayant vendu le plus en 2010 (Hypothse:
hirarchie Pays-Rgion-Ville)
SELECT
FROM
WHERE
{Measures.Ventes} ON COLUMNS
{TOPCOUNT(France.CHILDREN, 5, Measures.Ventes)}
ON ROWS
CubeVentes
( Measures.Ventes,[2010])
Totaux des ventes de produits de type mdias des rgions dont le total des ventes de 2002
est suprieur 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
Evaluation Temporelle
Fonctions sur laxe du temps
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 prcdant la date d (k et d au mme niveau).
e.g., LASTPERIODS(3, [sept. 2002]) =
{[juin 2002], [juillet 2002], [aot 2002]}
PARALLELPERIOD(k, n, d)
e.g., PARALLELPERIOD([Anne], 3, [sept. 2002]) = {[sept. 1999]}
70
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Autres Fonctions
Autres fonctions
Covariance
Corrlation
Moyenne glissante
...
71
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud
Rcapitulatif
Oprations OLAP
Navigation dans les dimensions: Roll-Up, Drill-Down
Augmentation / rduction de la dimensionalit: Split / Merge
Selection: Slice, Dice
Combinaison de cubes corrls: Drill-Across
Langages OLAP
MDX - concepts du MDDM et de tableurs
Extensions SQL: GROUPING SETS, CUBE, ROLLUP
72
Bases de Donnes OLAP | Hiver 2013/14 | Melanie Herschel | Universit Paris Sud