• Aucun résultat trouvé

Temps de réponse des programmes P simple , P cust et P part exécutés sur MySQL

5.6

Travaux similaires

5.6.1 Les méthodes de publication de bases de données relationnelles en vue XML

Notre proposition se rapproche des travaux proposant des solutions de publication de bases de données relationnelles en vues XML [14, 46, 38, 22, 8]. Le principe fédérateur de ces systèmes est la spécification d’un langage de définition de vues comme moyen de mise en correspondance entre les données relationnelles et XMl. Les applications reposant sur l’expression des requêtes basées sur des données semi-structurées sont transformées en requêtes SQL.

SilkRoute [22] se base sur des expressions XQuery formulées sur des vues XML canoniques et virtuelles [1]. Ce système définit un algorithme d’optimisation basé sur un modèle de coût, qui déduit

l’estimation de ses coûts à partir du moteur relationnel. L’impact des échanges client/serveur n’est pas considéré par SlikRoute.

Le système ROLEX [8] fournit une interface DOM virtuelle et dynamique aux bases de don- nées relationnelles. Il supporte les opérateurs DOM, qui sont convertis à la volet en un ensemble de requêtes SQL. Le modèle d’optimisation des coûts considéré par ROLEX est basé sur un profil de navigation. Les stratégies d’évaluation des requêtes dans ROLEX sont personnalisées selon l’accès par navigation, autrement dit la matérialisation du type lazy. D’autan plus, le contexte considèré dans ROLEX est différent du notre, étant donné que l’utilisateur a la possibilité de naviguer librement dans le document (virtuel) XML, tandis que le le comportement des programmes SQL est beaucoup plus prévisible. Ceci reste vrai pour [38], qui se focalise sur l’exécution du type L et [9] qui propose une stratégie d’évaluation incrémentale.

5.6.2 Les méthodes basées sur les stratégies de décorrélation

La stratégie de décorrélation est souvent considérée pour l’étude du problème d’optimisation des requêtes. Le but du problème de décorrélation est de dissocier l’exécution d’un bloc de sous-requêtes de l’exécution d’un bloc externe décorrélé. Notre problème (stratégie de matérialisation) consiste à choisir un ordre dans la matérialisation des données dans un graphe. Un arc v1 → v2dans ce graphe

étant une sorte de corrélation entre v1 et le sous-graphe dont la racine est v2. Ce problème a été

largement étudié dans le contexte des requêtes SQL (voir [36, 18, 41]). La spécification des données exportées sous forme d’arbre de requêtes SQL corrélées peut être vue comme une abstraction de boucles imbriquées sur des résultats de requêtes, chacun défini par rapport à ses nœuds parents [7, 16]. Les techniques de réécriture de requêtes sont le plus souvent vues en terme d’optimisation des serveurs des bases de données, dont l’objectif principal est de limiter les opérations entrées/sorties [23, 45]. Comme décrit par le présent chapitre, nous pouvons transposer ces techniques à un contexte client/serveur où le coût des échanges réseau est considéré comme prédominant.

Un dernier travail similaire à notre approche que nous pouvons citer est le système Scalpel [10]. Ce dernier analyse le flux de requêtes soumises au serveur de données par une application et essais de produire des modèles de requêtes (typiquement, jointure construite à partir des requêtes imbriquées), puis réécris ces modèles comme étant des plans d’exécution de requêtes (par exemple, merge joins et hash joins) à exécuter du côté client. Le système repose sur un optimisateur basé sur un modèle de coût, qui estime l’efficacité d’exécution des stratégies, par rapport à plusieurs paramètres, tel que les opérations de fetch et open. Notre approche est quasiment similaire de point de vue motivations ainsi que les observations initiales. Elle diffère néanmoins sur plusieurs aspects :

• nous avons choisi une déclaration explicite du synopsis du programme, en laissant libre choix à un utilisateur expert de décider quelles parties du programmes optimiser ;

• notre modèle de données est basé sur une représentation en graphe afin de supporter d’une manière efficace le consensus orienté objets des couches ORM.

• nous adoptons un modèle de coût simple, basé sur la minimisation du nombre de requêtes soumises, un facteur qui constitue la partie majeure du coût total d’exécution.

5.7

Conclusion

Nous avons présenté tout au long de ce chapitre une approche proposant une stratégie globale d’optimisation dans les programmes SQL. L’objectif principal est de minimiser le nombre de requêtes soumises et réduire ainsi le coût des échanges client/serveur. Une déclaration descriptif de la structure du programme appelé synopsis est indispensable pour la mise au point de notre approche. La solution se base sur un modèle de coût pour décider quelle meilleure stratégie de matérialisation choisir. Un algorithme d’optimisation prenant en entrée le synopsis du programme et produisant le programme SQL optimisé a été présenté à la section 5.4.3.

L’approche tel qu’elle a été présentée, consistute une extension des principes des solutions ORM. La conception de notre solution n’accable pas le programmeur de tâches complexes d’optimisation. Un utilisateur expert défini le synopsis du programme à optimiser et ce même dans une phase ulté- rieure à la conception et l’implémentation de l’application.

Nous présentons dans le chapitre suivant, une série de tests expérimentales qui a été menée dans l’objectif de valider l’applicabilité de notre approche dans les outils standards d’ingénierie des appli- cations. D’autre part, il s’agit de mesurer l’impact du déploiement de notre solution par rapport aux stratégies d’exécution usuelles.

Cette thèse a principalement présenté quatre contributions dans le contexte des programmes SQL. Nous avons défini ces programmes, comme étant des programmes écrits en un langage de program- mation et se basant sur une base de données relationnelle comme support de stockage des données. La structure générale de ces programmes se compose généralement de méthodes , fonctions, boucles et autres routines de programmation ainsi que des requêtes SQL, comme opérateurs d’interrogation de la base.

Nous nous sommes intéressés, dans un premier temps aux programmes SQL dédiés à la publi- cation de bases de données relationnelles. Ces programmes engendrent des documents dynamiques, dont le contenu est composé de données provenant d’une base de données relationnelles. Ces docu- ments peuvent être des fichiers texte, des messages électroniques, des fichiers excel, PDF ou latex, etc. Un exemple type des programmes de publication est un program Web produisant un ensemble de pages Web dynamiques, se basant sur le processus d’interrogation d’une base de données relation- nelle.

Le deuxième volet de cette thèse relève des techniques d’optimisation dans les programmes SQL. Nous nous sommes intéressés à l’étude et l’analyse des coûts d’exécution de ces programmes, notam- ment en terme d’échanges client/serveur et de nombre de requêtes SQL émises au serveur de bases de données.

Ce chapitre dresse un bilan des différentes solutions proposées tout au long de cette thèse et synthétise les principaux apports de chaque approche par rapport à l’existant. Par ailleurs, nous pré- sentons d’éventuelles pistes et perspectives, à court et long terme, associées aux différents points discutés.

Bilan

Nous présentons dans cette section les différents points forts et divers apports que nous pouvons souligner pour chacune des quatres contributions proposées tout au long de ce manuscrit. Nous com- mençons tout d’abord par soulever points communs à toutes les approches :

1. Le graphe de données : Le premier point commun à toutes les approches constitue la repré- sentation de l’instance de la base et de son schéma relationnel sous forme de graphe étiqueté. En effet, le modèle formel associé à ces types de représentation a été présenté dans le para-

que présentent la structure du graphe en terme de primitives de navigation et de simplicité de parcours. Qu’il s’agisse de la structure d’une instance d’une base de données relationnelles ou d’un schéma relationnel d’une base, le besoin étant fait de sorte à parcourir cette structure d’un nœud à l’autre en exploitant l’information fournise par l’étiquette attribuée aux arcs reliant les différents nœuds.

Par ailleurs, dans le contexte général relatif à nos quatres contributions, à savoir celui des pro- grammes SQL, nous sommes souvent amenés à visualiser la structure de ces programmes ou l’ensemble des requêtes qui y figurent comme étant un graphe. Nous l’appelons graphe requête dans 1 ou synopsis du programme dans 5.8. Les nœuds non feuilles du graphe représentent des tables, les feuilles représentent des attributs et les arcs représentent l’association entre les tables. Il est plus facile de faire correspondre à cette structure de graphe les données qui leurs sont as- sociées par navigation dans le graphe de données à travers un parcours dans les nœuds (non feuilles : les tuples ou les feuilles : les valeurs d’attributs) et par intérprétation des étiquettes des arcs (les associations et leurs cardinalités).

D’autre part, le graphe de données ainsi présentée est virtuel pour toutes les approches consi- dérées. Une partie du graphe uniquement est matérialisée lors de l’évaluation du programme. Nous écartons ainsi la possibilité de charger en mémoire toute l’instance de la base, qui dans ce cad de figure poserais problème et ne serait plus convenable au bon fonctionnement du pro- cessus.

2. Proposition d’une couche de haut niveau simplifiant la tâche aux utilisateurs : Qu’il s’agisse de problème de publication de données (DQL et PBE), de maintenance des applications (rétro-ingénierie) ou d’optimisation des programmes (règles de réécriture), nos quatre approches s’adressent à un public d’un niveau débuteur, intermédiaire ou expert du domaine, néanmoins l’objectif commun est celui de faciliter la tâche aux utilisateurs. Dans les deux premières ap- proches, il s’agit de doter tout un chacun de moyens simples et pratiques afin de pouvoir pro- duire des documents dynamiques à partir d’une base de données relationnelle :

• Niveau débutant : Un utilisateur n’ayant pas de pré-requis en terme de langage de program- mation, ni de langage de requêtes, ni en schéma relationnel a la possibilité de publier des documents dynamiques moyenn PBE. L’utilisateur est guidé à travers une interface interac- tive dans le processus de production d’un document exemple afin de pouvoir engendrer le document final souhaité. Dans ce cas de figure, l’utilisateur est censé connaître la séman- tique du schéma de la base (pouvoir comprendre la signification des noms des tables et des attributs et les faire correspondre avec les données à engendrer dans le document résultat). • Niveau intermédiaire : Un utilisateur n’ayant pas de pré-requis en langage de programmation,

ni en SQL, désirant s’affranchir de ces contraintes et publier des documents dynamiques peut utiliser DQL comme langage de publication de bases de données relationnelles. Ce premier devrait en revanche avoir des connaissances en terme du schéma relationnel des bases de données et se documenter quant à la syntaxe du langage proposé.

cuments dynamiques, bénéficie des mêmes fonctionalités et avantages offerts par ce langage. DQL dispose d’un ensemble de règles de réécriture appliqué au programme évite la maté- rialisation redondante des données et met donc en place une stratégie d’optimisation. DQL concerne donc aussi le public expert en leur offrant des avantages en terme d’optimisation des programmes de publication.

[1] Serge Abiteboul, Peter Buneman, and Dan Suciu. Data on the Web : From Relations to Semi- structured Data and XML. Morgan Kaufmann, 1999.

[2] A.Hassan and R.Holt. Architecture recovery of web applications. In Proc. Intl. Conf. on Soft- ware Engineering (ICSE), pages 349–359, New York, USA, 2002. ACM.

[3] S. Amer-Yahia, Y. Kotidis, and D. Srivastava. XML Publishing : Look at Siblings too ! In Proc. IEEE Intl. Conf. on Data Engineering (ICDE), pages 711–713, 2003.

[4] A.Motro. BAROQUE : a browser for relational databases. ACM Trans. Inf. Syst., 4(2) :164–181, 1986.

[5] A. Balmin, V. Hristidis, and Y. Papakonstantinou. Objectrank : Authority-based keyword search in databases. In Proc. Intl. Conf. on Very Large Data Bases (VLDB), pages 564–575, 2004. [6] M. Benedikt, C. Y. Chan, W. Fan, R. Rastogi, S. Zheng, and A. Zhou. DTD-Directed Publishing

with Attribute Translation Grammars. In Proc. Intl. Conf. on Very Large Data Bases (VLDB), pages 838–849, 2002.

[7] P. Bohannon, H. Korth, and P. Narayan. The Table and the Tree : Online Access to Relational Data through Virtual XML Documents. In Intl. Proc. on WebDB 2001 Workshop on Databases and the Web, 2001.

[8] P. Bohannon, H. Korth, P.P.S. Narayan, S. Ganguly, and P. Shenoy. Optimizing View Queries in ROLEX to Support Navigable Tree Results. In Proc. Intl. Conf. on Very Large Data Bases (VLDB), 2002.

[9] Philip Bohannon, Peter Buneman, Byron Choi, and Wenfei Fan. Incremental Evaluation of Schema-Directed XML Publishing. In Proc. ACM SIGMOD Symp. on the Management of Data, pages 503–514, 2004.

[10] Ivan T. Bowman and Kenneth Salem. Optimization of Query Streams Using Semantic Prefet- ching. In Proc. ACM SIGMOD Symp. on the Management of Data, pages 179–190, 2004. [11] D. Braga, A. Campi, and S. Ceri. XQBE : A Visual Interface to the Standard XML Language.

ACM Trans. on Database Systems, 30 :398–443, 2005.

[12] V. Breazu-Tannen, P. Buneman, and S. Naqvi. Structural recursion as a query language. In Proc. Intl. Workshop on Database Programming Languages, pages 9–19, 1991.

[13] P. Buneman, M. F. Fernandez, and D. Suciu. UnQL : A Query Language and Algebra for Semistructured Data Based on Structural Recursion. VLDB Journal, 9(1) :76–110, 2000. [14] M. Carey, J. Kiernan, J. Shanmugasundaram, E. Shekita, and S. Subramanian. XPERANTO :

Middleware for Publishing Object-Relational Data as XML Documents. In The VLDB Journal, pages 646–648, 2000.

[15] Surajit Chaudhuri, Raghav Kaushik, and Jeffrey F. Naughton. On Relational Support for XML Publishing : Beyond Sorting and Tagging. In Proc. ACM SIGMOD Symp. on the Management of Data, pages 611–622, 2003.

[16] B Choi, W Fan, X Jia, and A Kasprzyk. A Uniform System for Publishing and Maintaining XML Data. In Proc. Intl. Conf. on Very Large Data Bases (VLDB), pages 1301–1304, 2004. [17] Microsoft corp. Microsoft Office Access. http ://office.microsoft.com/fr-fr/access/default.aspx. [18] Umeshwar Dayal. Of Nests and Trees : A Unified Approach to Processing Queries That Contain

Nested Subqueries, Aggregates, and Quantifiers. In Proc. Intl. Conf. on Very Large Data Bases (VLDB), pages 197–208, 1987.

[19] D.Draheim, C.Lutteroth, and G.Weber. A Source Code Independent Reverse Engineering Tool for Dynamic Web Sites. In Proc. Eur. Conf. on Software Maintenance and Reenginee- ring(CSMR), pages 168–177, Manchester, UK, 2005.

[20] L.G. Feng, F. Shao, C. Botev, and J. Shanmugasundaram. Xrank : Ranked keyword search over xml documents. In Proc. ACM SIGMOD Symp. on the Management of Data, pages 16–27, 2003. [21] M. F. Fernandez, D. Florescu, J. Kang, A. Y. Levy, and D. Suciu. Catching the Boat with Strudel : Experiences with a Web-Site Management System. In Proc. ACM SIGMOD Symp. on the Management of Data, pages 414–425, 1998.

[22] M. F. Fernandez, Y. Kadiyska, D. Suciu, A. Morishima, and W. C. Tan. SilkRoute : A framework for publishing relational data in XML. ACM Trans. on Database Systems, 27(4) :438–493, 2002. [23] Richard A. Ganski and Harry K. T. Wong. Optimization of Nested SQL Queries Revisited. In

Proc. ACM SIGMOD Symp. on the Management of Data, pages 23–33, 1987.

[24] G.Bhalotia, C.Nakhe, A.Hulgeri, S.Chakrabarti, and S. Sudarshan. Keyword Searching and Browsing in databases using BANKS. In Proc. IEEE Intl. Conf. on Data Engineering (ICDE), pages 431–440, Washington, USA, 2002. IEEE Computer Society.

[25] G.Gottlob and Ch.Koch. Monadic Datalog and the Expressive Power of Languages for Web Information Extraction. In Proc. ACM Symp. on Principles of Database Systems, pages 17–28, 2002.

[26] S. Guéhis. A Framework for Understanding Web Publishing Applications. In Proc. 6th Int. Workshop on Web Information Systems Modeling(WISM’09), 2009. Also in BDA’06.

[27] S. Guéhis, D. Gross-Amblard, and P. Rigaux. Publish By Example. In Proc. IEEE Intl. Conf. on Web Engineering (ICWE’08), 2008. Also in BDA’07.

[28] S. Guéhis, D. Gross-Amblard, and P. Rigaux. Un modèle de production interactive de pro- grammes de publication. 13(5) :107–130, 2008.

[29] S. Guéhis, P. Rigaux, and E. Waller. Data-driven Publication of Relational Databases. In Proc. IEEE Intl. Database Engineering & Applications Symposium (IDEAS’06), 2006. Also in BDA’06.

[30] S. Guéhis, V. Thion-Goasdoué, and P. Rigaux. Optimisation d’applications orientées données. In Actes des Journées Bases de Données Avancées (BDA), 2009.

[31] S. Guéhis, V. Thion-Goasdoué, and P. Rigaux. Speeding-up data-driven applications with pro- gram summaries. In Proc. Intl. Database Engineering and Applications Symposium (IDEAS), pages 66–76, 2009.

[32] V. Hristidis, L. Gravano, and Y. Papakonstantinou. Efficient ir-style keyword search over rela- tional databases. In Proc. Intl. Conf. on Very Large Data Bases (VLDB), pages 850–861, 2003. [33] V. Hristidis and Y. Papakonstantinou. DISCOVER : Keyword Search in Relational Databases. In

Proc. Intl. Conf. on Very Large Data Bases (VLDB), pages 670–681, Hong Kong, China, 2002. [34] Z G. Ives, M. Carey, E. Shekita, S. Subramanian, and Y. Lu. Xperanto : Publishing object-

relational data as xml, 2000.

[35] J.Vanderdonckt, L.Bouillon, and N.Souchon. Flexible reverse engineering of web pages with VAQUISTA. In Proc. Working Conference on Reverse Engineering(WCRE), pages 241–248, Stuttgart, Germany, 2001.

[36] Won Kim. On Optimizing an SQL-like Nested Query. ACM Trans. on Database Systems, 7(3) :443–469, 1982.

[37] G.Di Lucca, M.Di Penta, G.Antoniol, and G.Casazza. An approach for reverse engineering of web-based application. In Proc. Working Conference on Reverse Engineering(WCRE), pages 231–240, Stuttgart, Germany, 2001.

[38] Bertram Ludäscher, Yannis Papakonstantinou, and Pavel Velikhov. Navigation-driven evaluation of virtual mediated views. In Proc. Intl. Conf. on Extending Data Base Technology, pages 150– 165, 2000.

[39] A. Patricio. Hibernate 3.0. Eyrolles, 2006.

[40] A. Patricio. Java Persistence et Hibernate. Eyrolles, 2008.

[41] Hamid Pirahesh, Joseph M. Hellerstein, and Waqar Hasan. Extensible/Rule Based Query Re- write Optimization in Starburst. In Proc. ACM SIGMOD Symp. on the Management of Data, pages 39–48, 1992.

[42] P.Wadler. Xquery : A typed functional language for querying xml. In In Advanced Functional Programming : 4th International School. 2002, pages 188–212. Springer, 2002.

[43] R.Baumgartner, O.Frölich, G.Gottlob, P.Harz, M.Herzog, and P.Lehmann. Web data extrac- tion for business intelligence : The lixto approach. In German Conf. on Database Systems for Business, Technology and Web (BTW), pages 30–47, 2005.

[44] S.Agrawal, S.Chaudhuri, and G.Das. Dbxplorer : A system for keyword-based search over relational databases. In Proc. IEEE Intl. Conf. on Data Engineering (ICDE), pages 005–016, Los Alamitos, CA, USA, 2002.

[45] Praveen Seshadri, Hamid Pirahesh, and T. Y. Cliff Leung. Complex Query Decorrelation. In Proc. IEEE Intl. Conf. on Data Engineering (ICDE), pages 450–458, 1996.

[46] Jayavel Shanmugasundaram, Eugene J. Shekita, Rimon Barr, Michael J. Carey, Bruce G. Lind- say, Hamid Pirahesh, and Berthold Reinwald. Efficiently publishing relational data as XML documents. The VLDB Journal, 10(2-3) :133–154, 2001.

[47] Dennis Shasha and Philippe Bonnet. Database Tuning : principles, experiments, and trouble- shooting techniques. Morgan- Kaufmann, 2002.

[48] R. Sperko. Java Persistance for Relational Databases. Apress, 2003.

[49] M. Toyama and T. Nagafuji. Dynamic and Structured Presentation of Database Contents on the Web. In Proc. Intl. Conf. on Extending Data Base Technology, pages 451–465, 1998.

[50] Transaction Processing Performance Council TPC. TPC Benchmark H Specification, 1995. version 2.8.0 edition.

[51] The XPath language recommandation (1.0). World Wide Web Consortium, 1999. http ://www.w3.org/TR/xpath.

[52] The Extensible Stylesheet Language Family (XSL). World Wide Web Consortium, 1999. http ://www.w3.org/Style/XSL.

[53] Moshé M. Zloof. Query-by-example : A data base language. IBM Systems Journal, 16(4) :324– 343, 1977.

Revue nationale

1. Sonia Guehis, David Gross-Amblard et Philippe Rigaux. Un modèle de production interactive de programmes de publication. Revue Nationale Technique et Science Informatiques (TSI), Volume 13, numéro 5/2008, page 107 à 130.

Conférences et workshops internationaux

2. Sonia Guehis, Virginie Goasdoué-Thion and Philippe Rigaux. Speeding-Up Data-driven Appli- cations with Program Summaries. In Proceedings of IEEE International Database Engineering and Applications Symposium (IDEAS’09).

3. Sonia Guehis. A Framework for Understanding Web Publishing Applications. Caise Work- shop : WISM 2009, 8 juin 2009, Amsterdam, Netherland.

4. Sonia Guehis, David Gross-Amblard and Philippe Rigaux. Publish By Example. In Procee- dings of IEEE International Conference on Web Engineering (ICWE’08), 14-18 Juillet 2008, Yorktown Heights, New York .

5. Sonia Guehis, Philippe Rigaux and Emmanuel Waller. Data-driven Publication of Relatio- nal Databases. In Proceedings of IEEE International Database Engineering and Applications Symposium (IDEAS’06), pages 1-10, 11-14 December 2006, Delhi, India.Taux d’acceptation <27

Communications nationales avec comité de lecture

6. Sonia Guehis, David Gross-Amblard et Philippe Rigaux. Publication de données par l’exemple Dans les actes de la Conférence Bases de Données Avancées 2007 (BDA’07), 23-26 Octobre 2007, Marseille, France.

7. Sonia Guehis, Philippe Rigaux and Emmanuel Waller. Data-Driven Publication of Relational Databases. Dans les actes de la Conférence Bases de Données Avancées 2006 (BDA’06), 17-20 Octobre 2006, Lille, France.

Démonstrations

8. Sonia Guehis. Une interface de production par l’exemple de programmes de publication Dans la Conférence Bases de Données Avancées 2007 (BDA’07), 23-26 Octobre 2007, Marseille, France.

9. Sonia Guehis et Philippe Rigaux. Le langage de publication DocQL Dans la Conférence Bases de Données Avancées (BDA’06), 2006, 17-20 Octobre 2006, Lille, France.

M. M.

Vu et permis d’imprimer :

trois premières s’articulent autour des programmes de publication, la quatrième définit des règles de réécriture en vue de l’optimisation des programmes SQL.