FemmeFemme de de vertuvertu,, d’ d’honhonnneeur ur et et d dee cœ cœur.ur. FemmeFemme de de vevertrtuu,, d’ d’honhonnneeuur r etet d dee c c
Remerciements
Je remercie très chaleureusement toutes les personnes qui, par leurs idées, encouragements, relecture, ont contribué à la réalisation de ce mémoire. Je suis redevable en particulier à Mademoiselle SALAKO Sandrine et Mademoiselle SICOT Chantal qui ont bien voulu participer à la relecture.
Mes remerciements vont aussi à Monsieur Jérôme Darmont, Maître de Conférence et Chercheur au laboratoire ERIC de l’Université Lyon 2, pour sa collaboration et sa disponibilité sans réserve.
Bancs d’essais XML
Antoine G. DIOUF
1 Résumé
L’avènement du langage XML a favorisé une nette avancée dans la ...
Á L o u i s e D I O U F Femme d e d v ev e e r r t t u u , d , ’ d h ’h o o nn n e e u r u e r t d e c c œur.
aBcnsd’essaisXML.GeOIDnAniotUF
Je remercie très chaleureusement toutes les personnes qui, par leurs idées, encouragements, relecture, ont contribué à la réalisation de ce mémoire. Je suis redevable en particulier à Mademoiselle SALAKO Sandrine et Mademoiselle SICOT Chantal qui ont bien voulu participer à la relecture. Mes remerciements vont aussi à Monsieur Jérôme Darmont, Maître de Conférence et Chercheur au laboratoire ERIC de l’Université Lyon 2, pour sa collaboration et sa disponibilité sans réserve.
Remerciements
1
Résumé L’avènement du langage XML a favorisé une nette avancée dans la représentation et le stockage de données complexes. Les systèmes de stockages de documents XML doivent alors être assez performants aussi bien dans le stockage des données que dans le traitement de requêtes sur ces données. D’où la nécessité d’évaluer leurs performances. Ce travail vise dans un premier temps à étudier les méthodes d’évaluation de performance que sont les bancs d’essais. Et dans un deuxième temps à adapter leurs caractéristiques et fonctionnalités aux entrepôts de données XML.
Abstract The accession of XML language has promoted a real march in the complex data representation and storage. The XML documents storage systems must then be highly capable in data storage as wall as in requests processing on these data. Hence it is a matter of necessity to measure their performance. This work, in a first hand, aim to study the performance assessment methods that are the benchmarks. And in a second hand, to adapt their features and functionalities to XML data warehouses.
Bancs d’essais XML Antoine G. DIOUF
2
Sommaire
Dédicaces Remerciements Résumé & Abstract .. . 1 Sommaire .. . 2 Liste des figures . .. .. 4 Introduction . .. 5 1. Les entrepôts de données XML .. ........ 6 1.1 XML et le stockage des données . 6 1.2 Entreposage de données XML . 7 2. Bancs d’essais XML existants .. 10 2.1 XMach1 . . 10 2.2 XMark ... 11 2.3 X007 .. 11 2.4 XBench .. 12 2.5 Michigan Benchmark . 12
Liste des figures Figure 1. Structure d’un schéma en étoile XML Figure 2. Structure d’un cube XCubeSchema Figure 3. Structure d’un document XCubeDimension Figure 4. Structure d’un document XCubeFact Figure 5. Composant de l’architecture de XMach1 Figure 6. Schéma en étoile de XDWareBench Figure 7. Schéma multidimensionnel XCube de XDWareBench Figure 8. Fragment du document FactSales.xml Figure 9. Fragment du document DimensionData.xml Figure 10. Algorithme de génération de faits de XDWareBench Figure 11. Estimation de la taille du fichier FactSales.xml Figure 12a . Evolution du temps suivant le nombre d’exécutions Figure 12b. Evolution du temps suivant le nombre d’exécutions Figure 13. Evolution du temps d’exécution suivant la taille (en Ko) Figure 14 . Evolution du temps d’exécution suivant la taille (en Mo)
FUDOIe.GotniAnXissaesMLs’daBcn
essaisXBancsd’LMUFIODnA.Geniot
Introduction
L’augmentation de la volumétrie des données dans divers domaines d’applications pose un réel problème d’entreposage. La complexité des données à traiter vient également s’ajouter au problème. Comme le langage XML est extensible, plusieurs technologies de bases de données s’y appuient pour stocker et manipuler des données. Nombres d’approches ont été proposées pour stocker et traiter des données parmi lesquelles l’extension de systèmes relationnels pour un support XML et la construction de bases de données natives XML. Il devient donc primordial de mesurer la capacité de ces systèmes à stocker et à traiter des données XML. Les bancs d’essais constituent un moyen très utile pour y parvenir. L’étude et la comparaison de ces méthodes d’évaluation de performance sont les objectifs de ce travail. Cette étude permettra de tirer des caractéristiques essentielles à l’élaboration d’un banc d’essais pour entrepôts de documents XML. Le reste de ce document se subdivise comme suit. Dans un premier temps, nous exposerons quelques approches d’entreposage de données XML. Puis, suivra une description de bancs d’essais XML existants. La troisième partie concernera la conception d’un banc d’essais pour entrepôts de documents XML XDWareBench . Pour finir, nous verrons les résultats expérimentaux des tests réalisés avec XDWareBench avant de discuter des perspectives.
1.1 XML et le stockage des données Il existe plusieurs techniques de stockages de données XML. La méthode qui nous intéresse le plus est le stockage dans une base de données XML native. Pour faire une analogie avec les bases de données relationnelles, on peut dire que " le document XML est l’unité fondamentale de stockage dans une base de données XML native, tout comme une ligne de table constitue l’unité fondamentale du stockage dans une BD relationnelle " [ 3 ] . Les bases de données XML natives offrent un ensemble de fonctionnalités : transactions, accès multi-utilisateur, des APIs (Application Programming Interface), et aussi des langages de requêtes. Parmi ces langages on retrouve XPath, XQL, et tout récemment XQuery [ 8 , 12 , 24 ] . Pour ceux qui veulent développer leurs propres applications au dessus d’une BD XML native, l’utilisation d’une API est très utile. La plupart des bases XML natives propose leurs propres APIs. De plus, plusieurs d’entre elles ont implémenté l’API XML : DB [ 23 ] quiprésente une large gamme de fonctions pour traiter les collections de documents, gérer la suppression et la mise à jour.
Le langage XML pour eXtensible Markup Language est un langage de balise, extensible et évolutif. Ce langage a été créé pour structurer de l’information. Il est notamment utilisé dans le Web pour stocker, structurer et envoyer des données. Le format XML est en train de gagner tous les domaines. La complexité du challenge a attiré l’attention de la communauté des chercheurs en bases de données. Ces derniers ont principalement centré leurs efforts sur les problèmes de schéma, sur l’organisation et l’entreposage des données. En outre, les problèmes de stockage, de manipulation et de récupération des documents XML motivent pour le développement de nouveaux langages et d’outils de traitements de requêtes.
1.2 Entreposage de données XML Plusieurs travaux ont été menés sur l’entreposage de données XML. On a besoin d’une modélisation multidimensionnelle. Nous nous arrêterons sur deux types de modélisation d’entrepôts de données XML : les travaux de Jaroslav Pokorny et la modélisation XCube. • Modélisation d’un entrepôt de données XML (Jaroslav Pokorny) L’approche proposée par J. Pokorny repose sur l’idée que les informations sur les dimensions et les faits d’un schéma en étoile sont contenus dans les données [ 16 , 17 ] . Au niveau conceptuel, une dimension est modélisée par une séquence de DTDs associées d’une manière logique (de manière similaire à une intégrité référentielle dans une base relationnelle). Au niveau de la base de données les DTDs décrivent les données XML provenant de sources différentes. Le plus déterminant pour construire une hiérarchie H de dimensions est de trouver les relations logiques entre les dimensions voisines dans H . Ayant déterminé dans les données ce qui caractérise chaque dimension, il ne reste plus qu’à représenter les faits par une DTD . Selon cette approche, un schéma en étoile sera défini comme un triplet <H, F, IC> où H est un ensemble de hiérarchies de dimensions, F une DTD représentant la table des faits et IC un ensemble de contraintes référentielles. La Figure 1. donne un aperçu de la méthode.
XCube [ 11 ] est une famille de schémas basée sur XML pour la description, le stockage, l’échange et l’interrogation de cubes de données dans un entrepôt. XCube consiste en trois schémas : XCubeSchema, XCubeDimension et XCubeFact . XCubeSchema est le format principal pour décrire la structure multidimensionnelle des données du cube. Il montre les relations entre les dimensions et les mesures du cube. La section cubeSchema contient une collection de faits et de dimensions et la section c lassSchema décrit les niveaux de classement des dimensions. La Figure 2. montre une structure d’un cube.