OLAP : Un pas vers la navigation Arnaud Giacometti, Patrick Marcel, Elsa Negre Université François-Rabelais de Tours Laboratoire d’Informatique, Campus de Blois {Arnaud.Giacometti, Patrick.Marcel, Elsa.Negre}@univ-tours.fr
Plan Motivations La navigation pour OLAP Opérateurs Conclusion et Perspectives
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
Motivation 1: Revenir en arrière ? σCity= Blois v City=Tours πRegion, Year; sum(Price), sum(Quantity) ? Drill-Down
Motivation 2: (1) Comment rejouer une analyse ? σYear= 2005 πCountry, Year; sum(Price), sum(Quantity) σYear= 2004
Motivation 2: (2) Comment rejouer une analyse ? σYear= 2005 σYear= 2004 πCountry, Year; sum(Price), sum(Quantity)
Motivation 3: Comment changer une opération dans une analyse ? σCountry= France v Country= Spain σYear= 2005 πCountry, Year; sum(Price), sum(Quantity) σYear= 2004 ?
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
Plan Motivations La navigation pour OLAP Opérateurs Conclusion et Perspectives
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 Des opérations pour la construction de navigations
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
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)>
Plan Motivations La navigation pour OLAP Opérateurs Conclusion et Perspectives
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
Opérateurs : Apply N1 ApplyσYear=2005(N1)=N2 N2 <C0, T> <C1, σCountry=France v Country=Spain > <C2, σYear= 2005 >
Opérateurs : Replace <C0, T> <C1, σCountry=France v Country=Spain > <C2, σYear= 2005 > <C3, πRegion, Year; sum(Quantity)> Replaceθ(N6) = N7 avec θ = {σyear=2005 / σyear=2004} <C5, πRegion, Year; sum(Quantity)> N6 <C0, T> <C1, σCountry=France v Country=Spain > <C4, σYear= 2004 > <C2, σYear= 2005 > <C3, πRegion, Year; sum(Quantity)> N7
Opérateurs : Replay N12 N8 Replay(N12 , N8) = N13 N13 <C0, T> <C1, σCountry=France v Country=Spain > <C2, σCountry=Japan > <C0, T> <C3, σYear= 2004 > <C1, σYear= 2005 > <C2, πRegion, Year; sum(Quantity)> <C4, πRegion, Year; sum(Quantity)> N12 N8 Replay(N12 , N8) = N13 <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
Opérateurs : Back et Forward <C0, T> <C1, σCountry=France v Country=Spain > <C4, σYear= 2004 > <C2, σYear= 2005 > N4 Forward1(N5) = N4 Back(N4) = N5 <C0, T> <C1, σCountry=France v Country=Spain > <C4, σYear= 2004 > <C2, σYear= 2005 > N5
Opérateurs : Exemple de composition (1) ApplyσCountry=France v Country=Spain (N0) = N1 (2) ApplyσYear= 2005 (N1) = N2 (3) ApplyπRegion, Year; sum(Quantity)(N2) = N3 (4) Replaceθ(N3) = N4 avec θ = {σyear=2005/σyear=2004} (5) Back( Back( Back (N4) ) ) = N5 (6) ApplyσCountry=Japan (N5) = N6 (7) Replay (N6 ,N10) = N7 avec N10 = Back( Back(N4) ) <C0, T> <C1, σCountry=France v Country=Spain > <C6, σCountry=Japan > <C7, σYear= 2005 > <C9, σYear= 2004 > <C2, σYear= 2005 > <C4, σYear= 2004 > <C3, πRegion, Year; sum(Quantity)> <C5, πRegion, Year; sum(Quantity)> <C8, πRegion, Year; sum(Quantity)> <C10, πRegion, Year; sum(Quantity)>
Plan Motivations La navigation pour OLAP Opérateurs Conclusion et Perspectives
Conclusion et Perspectives Contributions: Proposer une définition pour la navigation en OLAP Faciliter les traitements sophistiqués : Replay Replace
Conclusion et Perspectives Améliorer le modèle : Langage de manipulation Partage de navigations Autres relations entre requêtes Implémentation Gestion de caches
Merci pour votre attention
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