OLAP : Un pas vers la navigation
Arnaud Giacometti, Patrick Marcel, Elsa Negre
Université François-Rabelais de Tours
Laboratoire d’Informatique, Campus de Blois
Plan
Motivations
La navigation pour OLAP
Opérateurs
Motivations
Cadre : modélisation d’une analyse
Analyse =
ensemble de requêtes qui ont été posées
+
les liens entre ces requêtes
+
Motivation 1:
Revenir en arrière ?
2004
2005
TIME
SALES
(Price, Quantity)
(200, 20)
(250, 20)
LOCATION
Centre
Blois
Orleans
Tours
2004 (100, 10) (100, 15) (100, 10)
2005 (100, 10) (100, 20) (150, 10)
TIME
SALES
(Price,
Quantity)
LOCATION
Centre
Blois
Tours
2004 (100, 10) (100, 10)
2005 (100, 10) (150, 10)
TIME
SALES
(Price,
Quantity)
LOCATION
Centre
σ
City= Blois v City=Tours
π
Region, Year;
sum(Price), sum(Quantity)
?
Motivation 2: (1)
Comment rejouer une analyse ?
Hifi
Meat
Hifi
Meat
2003
(100, 10)
(110, 3)
(110, 20)
(110, 30)
2004
(100, 10)
(130, 50)
(150, 10)
(160, 10)
2005
(150, 10)
(130, 50)
(120, 20)
(160, 10)
SALES (Price, Quantity)
TIME
Japan
PRODUCT
PRODUCT
LOCATION
China
?
σ
Year= 2005
France
Spain
2005
(100, 20) (100, 20)
SALES
(Price, Quantity)
TIME
LOCATION
France
Spain
2003
(100, 10) (100, 10)
2004
(100, 15) (100, 10)
2005
(100, 20) (100, 20)
SALES
(Price, Quantity)
TIME
LOCATION
π
Country, Year;
sum(Price), sum(Quantity)
France
Spain
2005
SALES
(Price, Quantity)
TIME
LOCATION
(200, 40)
France
Spain
2004 (100, 15) (100, 10)
SALES
(Price, Quantity)
TIME
LOCATION
σ
Year= 2004
Motivation 2: (2)
Comment rejouer une analyse ?
Hifi
Meat
Hifi
Meat
2003
(100, 10)
(110, 3)
(110, 20)
(110, 30)
2004
(100, 10)
(130, 50)
(150, 10)
(160, 10)
2005
(150, 10)
(130, 50)
(120, 20)
(160, 10)
SALES (Price, Quantity)
TIME
Japan
PRODUCT
PRODUCT
LOCATION
China
Japan China
TIME
2005
(560, 90)
SALES (Price,
Quantity)
LOCATION
σ
Year= 2005
σ
Year= 2004
Hifi
Meat
Hifi
Meat
TIME 2004 (100, 10) (130, 50) (150, 10) (160, 10)
PRODUCT
LOCATION
China
SALES
(Price,
Quantity)
Japan
PRODUCT
Hifi
Meat
Hifi
Meat
TIME 2005 (150, 10) (130, 50) (120, 20) (160, 10)
PRODUCT
LOCATION
China
SALES
(Price,
Quantity)
Japan
PRODUCT
π
Country, Year;
sum(Price), sum(Quantity)
Motivation 3: Comment changer
une opération dans une analyse ?
England France
Japan
Spain
2003 (100, 10) (100, 10) (100, 10) (100, 10)
2004 (100, 10) (100, 15) (100, 10) (100, 10)
2005 (100, 10) (100, 20) (150, 10) (100, 20)
SALES
(Price, Quantity)
TIME
LOCATION
σ
Country= France
v Country= Spain
σ
Year= 2005
France
Spain
2005 (100, 20) (100, 20)
SALES
(Price, Quantity)
TIME
LOCATION
France
Spain
2003 (100, 10) (100, 10)
2004 (100, 15) (100, 10)
2005 (100, 20) (100, 20)
SALES
(Price, Quantity)
TIME
LOCATION
π
Country, Year;
sum(Price), sum(Quantity)
σ
Year= 2004
?
France
Spain
2005
SALES
(Price, Quantity)
TIME
LOCATION
(200, 40)
Motivation 4:
Comment optimiser ?
A été évaluée :
π
Region, Year; sum(Price), sum(Quantity)
(
σ
Year= 2005
(
σ
Country=France v Country=Spain
))
C
0
Est demandée:
π
Region, Year; sum(Price), sum(Quantity)
(
σ
Year= 2004
(
σ
Country=France v Country=Spain
))
C
0
Pourrait être évaluée :
Plan
Motivations
La navigation pour OLAP
Opérateurs
La navigation pour OLAP (1)
Pour quoi ?
Explorer les données contenues dans un cube
Revenir à des réponses de requêtes déjà vues
Faire référence à des requêtes déjà posées
La navigation pour OLAP (2)
Contributions :
Proposition de définition pour la navigation :
ensemble de requêtes, de leurs réponses et des liens entres elles
+
un pointeur sur la dernière requête posée
La navigation pour OLAP (3)
Liens entre requêtes : q’ = op(q)
Structure d’arbres (arbre ordonné)
avec les opérations usuelles sur les arbres
(sous_arbre, racine, fils, père, …)
La navigation pour OLAP (4)
Exemple de navigation
<C
0, T>
<C
1, σ
Country=France v Country=Spain>
<C
4, σ
Year= 2004>
<C
2, σ
Year= 2005>
<C
3, π
Region, Year; sum(Quantity)>
<C
5, π
Region, Year; sum(Quantity)>
<C
6, σ
Country=Japan>
<C
7, σ
Year= 2005>
<C
9, σ
Year= 2004>
<C
8, π
Region, Year; sum(Quantity)>
Plan
Motivations
La navigation pour OLAP
Opérateurs
Opérateurs
Production de nouveaux cubes
Appliquer les opérations OLAP
Apply, Replay, Replace
Se déplacer parmi les cubes produits
Back, Forward
Tous les opérateurs sont définis avec les
Opérateurs : Apply
Apply
σ
Year=2005
(N
1
)=N
2
N
1
N
2
<C
0, T>
<C
1, σ
Country=France v Country=Spain>
<C
0, T>
<C
1, σ
Country=France v Country=Spain>
<C
, σ
>
Opérateurs : Replace
Replace
θ
(N
6
) = N
7
avec θ = {σ
year=2005
/ σ
year=2004
}
N
6
<C
0, T>
<C
1, σ
Country=France v Country=Spain>
<C
2, σ
Year= 2005>
<C
3, π
Region, Year; sum(Quantity)>
<C
0, T>
<C
1, σ
Country=France v Country=Spain>
<C
4, σ
Year= 2004>
<C
2, σ
Year= 2005>
Opérateurs : Replay
Replay(N
12
, N
8
) = N
13
N
8
N
12
<C
0, T>
<C
3, σ
Year= 2004>
<C
1, σ
Year= 2005>
<C
2, π
Region, Year; sum(Quantity)>
<C
4
, π
Region, Year; sum(Quantity)>
<C
0, T>
<C
1, σ
Country=France v Country=Spain>
<C
2, σ
Country=Japan>
<C
0, T>
<C
1, σ
Country=France v Country=Spain>
<C
2, σ
Country=Japan>
<C
3, σ
Year= 2005>
<C
5