1 OLAP : Un pas vers la navigation Arnaud Giacometti, Patrick Marcel, Elsa Negre Université...

Post on 04-Apr-2015

103 views 0 download

Transcript of 1 OLAP : Un pas vers la navigation Arnaud Giacometti, Patrick Marcel, Elsa Negre Université...

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