View
103
Download
0
Category
Preview:
Citation preview
1
OLAP : Un pas vers la navigation
Arnaud Giacometti, Patrick Marcel, Elsa Negre
Université François-Rabelais de ToursLaboratoire d’Informatique, Campus de Blois
{Arnaud.Giacometti, Patrick.Marcel, Elsa.Negre}@univ-tours.fr
2
Plan
Motivations
La navigation pour OLAP
Opérateurs
Conclusion et Perspectives
3
Motivations Cadre : modélisation d’une analyse
Analyse = ensemble de requêtes qui ont été posées
+ les liens entre ces requêtes
+ les réponses à ces requêtes
4
Motivation 1:Revenir en arrière ?
20042005
TIME
SALES (Price, Quantity)
(200, 20)(250, 20)
LOCATIONCentre
Blois Orleans Tours2004 (100, 10) (100, 15) (100, 10)2005 (100, 10) (100, 20) (150, 10)
TIME
SALES (Price,
Quantity)
LOCATIONCentre
Blois Tours2004 (100, 10) (100, 10)2005 (100, 10) (150, 10)
TIME
SALES (Price,
Quantity)
LOCATIONCentre
σCity= Blois v City=Tours
πRegion, Year;
sum(Price), sum(Quantity)?Drill-Down
5
Motivation 2: (1)Comment rejouer une analyse ?
Hifi Meat Hifi Meat2003 (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
JapanPRODUCT PRODUCT
LOCATIONChina
?
σYear= 2005
France Spain2005 (100, 20) (100, 20)
SALES (Price, Quantity)TIME
LOCATION
France Spain2003 (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 Spain2005
SALES (Price, Quantity)TIME
LOCATION
(200, 40)
France Spain2004 (100, 15) (100, 10)
SALES (Price, Quantity)
TIME
LOCATION
σYear= 2004
6
Motivation 2: (2)Comment rejouer une analyse ?
Hifi Meat Hifi Meat2003 (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
JapanPRODUCT PRODUCT
LOCATIONChina
Japan ChinaTIME 2005 (560, 90)
SALES (Price, Quantity)
LOCATION
σYear= 2005σYear= 2004
Hifi Meat Hifi MeatTIME 2004 (100, 10) (130, 50) (150, 10) (160, 10)
PRODUCT
LOCATIONChina
SALES (Price,
Quantity)
JapanPRODUCT
Hifi Meat Hifi MeatTIME 2005 (150, 10) (130, 50) (120, 20) (160, 10)
PRODUCT
LOCATIONChina
SALES (Price,
Quantity)
JapanPRODUCT
πCountry, Year;
sum(Price), sum(Quantity)
7
Motivation 3: Comment changer une opération dans une analyse ?
England France Japan Spain2003 (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 Spain2005 (100, 20) (100, 20)
SALES (Price, Quantity)TIME
LOCATION
France Spain2003 (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 Spain2005
SALES (Price, Quantity)TIME
LOCATION
(200, 40)
8
Motivation 4: Comment optimiser ?
A été évaluée :
πRegion, Year; sum(Price), sum(Quantity) (σYear= 2005 (σCountry=France v Country=Spain )) C0
Est demandée:
πRegion, Year; sum(Price), sum(Quantity) (σYear= 2004 (σCountry=France v Country=Spain )) C0
Pourrait être évaluée :
πRegion, Year; sum(Price), sum(Quantity) (σYear= 2004) C1
9
Plan
Motivations
La navigation pour OLAP
Opérateurs
Conclusion et Perspectives
10
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
11
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
Des opérations pour la construction de navigations
12
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, …)
Nœud = cube + dernière opération
13
La navigation pour OLAP (4)
Exemple de navigation
<C0, T>
<C1, σCountry=France v Country=Spain >
<C4, σYear= 2004 ><C2, σYear= 2005
>
<C3, πRegion, Year; sum(Quantity)> <C5, πRegion, Year; sum(Quantity)>
<C6, σCountry=Japan >
<C7, σYear= 2005
><C9, σYear= 2004 >
<C8, πRegion, Year; sum(Quantity)><C10, πRegion, Year;
sum(Quantity)>
14
Plan
Motivations
La navigation pour OLAP
Opérateurs
Conclusion et Perspectives
15
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érations usuelles sur les arbres
16
Opérateurs : Apply
ApplyσYear=2005(N1)=N2
N1
N2
<C0, T>
<C1, σCountry=France v Country=Spain >
<C0, T>
<C1, σCountry=France v Country=Spain >
<C2, σYear= 2005
>
17
Opérateurs : Replace
Replaceθ(N6) = N7 avec θ = {σyear=2005 / σyear=2004}
N6
N7
<C0, T>
<C1, σCountry=France v Country=Spain >
<C2, σYear= 2005
>
<C3, πRegion, Year; sum(Quantity)>
<C0, T>
<C1, σCountry=France v Country=Spain >
<C4, σYear= 2004 ><C2, σYear= 2005
>
<C3, πRegion, Year; sum(Quantity)>
<C5, πRegion, Year; sum(Quantity)>
18
Opérateurs : Replay
Replay(N12 , N8) = N13
N8
N12
<C0, T>
<C3, σYear= 2004 ><C1, σYear= 2005 >
<C2, πRegion, Year; sum(Quantity)> <C4, πRegion, Year;
sum(Quantity)>
<C0, T><C1, σCountry=France v Country=Spain
><C2, σCountry=Japan
>
<C0, T>
<C1, σCountry=France v Country=Spain > <C2, σCountry=Japan >
<C3, σYear= 2005 > <C5, σYear= 2004 >
<C4, πRegion, Year; sum(Quantity)> <C6, πRegion, Year; sum(Quantity)> N13
19
Opérateurs : Back et Forward
Forward1(N5) = N4 Back(N4) = N5
N4
N5
<C0, T>
<C1, σCountry=France v Country=Spain >
<C4, σYear= 2004 ><C2, σYear= 2005
>
<C0, T>
<C1, σCountry=France v Country=Spain >
<C4, σYear= 2004 ><C2, σYear= 2005
>
20<C3, πRegion, Year; sum(Quantity)>
Opérateurs : Exemple de composition
<C0, T>
<C1, σCountry=France v Country=Spain >
<C4, σYear= 2004 ><C2, σYear= 2005
>
<C5, πRegion, Year; sum(Quantity)>
<C6, σCountry=Japan >
<C7, σYear= 2005
><C9, σYear= 2004 >
<C8, πRegion, Year;
sum(Quantity)><C10, πRegion, Year;
sum(Quantity)>
(1) ApplyσCountry=France v Country=Spain (N0) = N1
(6) ApplyσCountry=Japan (N5) = N6
(5) Back( Back( Back (N4) ) ) = N5
(4) Replaceθ(N3) = N4 avec θ = {σyear=2005/σyear=2004}(3) ApplyπRegion, Year; sum(Quantity)(N2) = N3
(2) ApplyσYear= 2005 (N1) = N2
(7) Replay (N6 ,N10) = N7 avec N10 = Back( Back(N4) )
21
Plan
Motivations
La navigation pour OLAP
Opérateurs
Conclusion et Perspectives
22
Conclusion et Perspectives
Contributions:
Proposer une définition pour la navigation en OLAP
Faciliter les traitements sophistiqués : Replay Replace
23
Conclusion et Perspectives Perspectives:
Améliorer le modèle : Langage de manipulation Partage de navigations Autres relations entre requêtes
Implémentation Gestion de caches
24
Merci pour votre attention
25
Pourquoi des arbres ?
Structure usuelle pour la navigation sur le Web
Graphes : Non nécessité de tests d’équivalence de
requêtes (comparaison sémantique)
Garder le lien
Recommended