génération et exploitation d’une base de données xml à partir de sources de formats...
Post on 09-Aug-2015
184 Views
Preview:
TRANSCRIPT
Juillet, 2010
Génération et exploitation
d’une base de données XML à
partir de sources de formats
hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye Maitrise Informatique – UGB Sénégal
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 1
Table des matières
INTROCUTION ............................................................................................................ 2
I. PRESENTATION DU METALANGAGE XML ................................................ 4
1. STRUCTURE D’UN DOCUMENT XML ..................................................................... 4 1.1 La déclaration XML ......................................................................................................................................... 5
1.2 Instructions de traitement, commentaires ........................................................................................................ 6
1.3 Le nœud document ........................................................................................................................................... 6
1.4 Les éléments ..................................................................................................................................................... 6
1.5 Les attributs ..................................................................................................................................................... 6
1.6 Les espaces de noms ........................................................................................................................................ 6
2. LES MODELES DE DONNEES ................................................................................... 7 2.1 Document Type Définition (DTD) ................................................................................................................... 8
2.2 XML Schema .................................................................................................................................................... 9
3. MANIPULATION ET INTERROGATION DE DOCUMENTS XML ............................. 10
II. XML ET LES BASES DE DONNEES ......................................................................... 12 1. LES DIFFERENTS TYPES D’APPROCHE DE STOCKAGE DES « DONNEES XML » .. 12
2. ETUDES DE QUELQUES SYSTEMES DE STOCKAGE ............................................... 13 2.1 eXist ............................................................................................................................................................... 13
2.2 Oracle XMLDB .............................................................................................................................................. 13
2.3 Berkley DB XML (BDB XML) ....................................................................................................................... 14
2.4 MonetD/XQUERY .......................................................................................................................................... 14
3. VEILLE TECHNOLOGIQUE ................................................................................... 15 3.1 Administration et sécurité .............................................................................................................................. 15
3.2 Manipulations et intégrité des données (les dialectes XQUERY) .................................................................. 15
3.3 Benchmarking ................................................................................................................................................ 16
III. (ETUDE SUR) LA TRANSFORMATION DE DONNEES D’UN MODELE RELATIONNEL
VERS UN MODELE XML ................................................................................................ 19
1. DEFINITION DES REGLES DE TRANSFORMATION D’UNE BASE RELATIONNELLE 20 1.1 Définition du fichier XSD .............................................................................................................................. 20
1.1.1. Clé primaire................................................................................................................................................................. 21 1.1.2. Clé étrangère ............................................................................................................................................................... 21
2. DEFINITION DU FICHIER XML ............................................................................ 23
IV. CONCEPTION DU WRAPPER DB2XML TRANSFORM ......................................... 25
1. IMPLEMENTATION ............................................................................................... 25 1.1. JDBC ............................................................................................................................................................. 25
1.2. JDOM ............................................................................................................................................................ 25
2. INTERFACE DU WRAPPER .................................................................................... 26
CONCLUSION ................................................................................................................. 28
BIBLIOGRAPHIE & WEBOGRAPHIE ................................................................. 29
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 2
ANNEXE : UTILISATION DE EXIST .... ERROR! BOOKMARK NOT DEFINED.
Table des figures
Figure 1. Exemple d'un document XML superficies infestees.xml…………………………..5
Figure 2. xs : espace de noms de XMLSchema…………………………………………..…....7
Figure 3. Exemple de document bien formé (contenant des erreurs)……………..……..….7
Figure 4. Processus de validation d’un document XML…………………….……….……....8
Figure 5. DTD du document superficies infestees.xml……………………….……….……...9
Figure 6. Schema XML du document superficies infestees.xml…………...………………..10
Figure 7. XMark 110Kb (fichiers de petites tailles)…………………….…………………..17
Figure 8. XMark 1.1Mb……………………………………………….……………………...17
Figure 9. XMark 11Mb ………………………………………………………………………..17
Figure 10. Architecture du système …………………………………………………………..19
Figure 11. Structure xsd de la table etudiant ………………………………………………..21
Figure 12. Structure xsd de la base_etudiant ………………………………………………..22
Figure 13. Relation entre deux tables…………………………………………………………23
Figure 14. Format xsd des tables ……………………………………………………………..23
Figure 15. Structure xml de la base etudiant ………………………………………………..24
Figure 16. Interface de DB2XML Transform ……………………………………………….26
Figure 17. Exportation d’un fichier XML …………………………………………………...27
Figure 18. Fichiers agricolebd2010.xsd et agricolebd2010__bilan_2002_03.xml…………28
INTROCUTION
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 3
En juin 2004 a été initié à l’université Gaston Berger de Saint-Louis le projet SIC-Sénégal
(Système d’Information et de Connaissances). L’objectif de ce projet est de permettre à l’ensemble
des organismes intervenant dans la mise en valeur de la vallée du fleuve Sénégal de partager leurs
données. Les premiers travaux réalisés dans le cadre de ce projet ont permis la mise en place d’un
système d’intégration permettant de résoudre les problèmes liés à l’hétérogène sémantique et
structurelle des données. La première phase du processus d’intégration consiste à faire migrer les
données de chaque organisme participant au projet dans des entrepôts de documents XML.
Il s'agit en effet d'un passage obligé pour s'affranchir du mélange entre les données et de
l’utilisation qu'on souhaite leur donner. Ainsi, les données restent "propres" et peuvent facilement être
utilisées dans plusieurs contextes différents, permettant à tous les partenaires de disposer du même
format de représentation.
Le langage XML, qui est devenu aujourd'hui un format universel de description de données,
offre des opportunités intéressantes pour permettre le développement de nouvelle stratégies
d'intégration au sein (et entre) les systèmes d’informations.Le stockage des documents XML devient
ainsi indispensable en vue d'une utilisation « persistante ». Les outils de stockage et les langages
disponibles pour l'interrogation d'un corpus de documents XML sont déjà nombreux, et des processus
de normalisation sont en cours.
Dans un contexte de forte évolution, il serait intéressant d'étudier et de mettre en place des
solutions (techniques) de production de corpus XML à partir de formats divers, mais aussi de voire
les alternatives envisageables quant au stockage des documents XML, quelles stratégies peut-on
adopter pour garantir la capacité d'évolution et de réutilisation des composants d'une solution, lors de
l'intégration d'un système de stockage XML ?
L’objet du travail que nous présentons dans ce rapport est d’abord de faire une présentation de
XML, puis d’étudier les solutions techniques existantes permettant le stockage de document XML
afin d’en proposer une pour le système du projet sic-Sénégal. Ensuite de développer un wrapper
« Bases de données- XML » permettant la transformation de données issues d’une base de données
en documents XML.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 4
I. Présentation du métalangage XML
Métalangage permettant de générer des langages comme XHTML pour les pages Web, WML
pour les portables ou XMI pour représenter des modèles UML, simplification de SGML, la
recommandation [XML1] XML (eXtensibleMarkupLanguage) est le standard d'échange proposé par
le W3C [W3C] (World Wide Web Consortium) comme lingua franca de l'Internet. Il permet
d'échanger des informations marquées par des balises décrivant la structure sémantique des contenus.
Au plan historique, XML se situe dans la lignée de SGML, une norme publiée par l'ISO en
1986 sous le nom de SGML (Standard GeneralizedMarkupLanguage – ISO 8879) [ISO1], descendant
elle-même de GML (GeneralizedMarkupLanguage ). La norme SGML était utilisée depuis les années
1980 dans le monde documentaire pour normaliser la façon de noter le balisage logique des documents
(notamment dans le domaine de la documentation technique civile et militaire). [SGML1].
L'adjectif eXtensibleest là pour rappeler que XML n'est pas en fait un MarkupLanguage(un
langage de balisage déjà défini) mais permet de créer de tels langages: un utilisateur ou une
communauté sont libres de définir de nouveaux langages adaptés à leurs activités. La seule contrainte
est de respecter les conventions spécifiées par XML pour concevoir ces langages qui sont considérés
comme des applications de XML [XML1].
Actuellement, il existe des centaines de langages XML différents qui sont utilisés sur le web,
certains résultant d'initiatives privés (entreprise, laboratoires etc.) d'autres ayant un statut plus officiel
car promus par des organismes de normalisations comme le W3C, OASIS, ISO, etc.
Nous pouvons donner comme exemple:
XHTML (eXtensible HTML), une reformulation de HTML en langage XML
le Framework RDF (ressource Description Framework), qui permet de créer des ensembles des
métadonnées pour le web.
DOCBOOK, pour l'édition,
la TEI pour la création de corpus littéraire
SVG, pour la description de graphiques vectoriels etc.
Il existe actuellement deux versions de la recommandation XML (XML 1.0 et XML1.1), très
proches. XML1.1 est une actualisation de XML1.0 destinée à suivre les évolutions d'Unicode. Au plan
théorique, il s'agit d'une évolution mineure (la possibilité d'utiliser de nouveaux caractères pour
nommer les types d'éléments et les attributs) [MMX1].
1. Structure d’un document XML
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 5
La recommandation XML décrit la façon de représenter un document XML sous forme d'un
objet textuel dont certains caractères servent à représenter le balisage et d'autres constituent les données
textuelles structurées à travers le balisage.
Figure 19. Exemple d'un document XML superficies infestees.xml
Le texte balisé, qui doit être interprété par des machines, doit être écrit rigoureusement en
respectant un certain nombre de conventions qui fixent les constructions autorisées (une grammaire de
plus quatre-vingt règles contenues dans la recommandation XML ([XML1] et [INFOSET 1]) pour
décrire ces contraintes. Cette grammaire utilise la notation des langages formels. Un document XML
est donc bien formé s’il est constitué d’un élément racine unique, éventuellement précédé d’une
entête, et incluant des éléments (pouvant être imbriqués), chaque élément étant correctement ouvert et
fermé.
Chaque document XML a une structure logique et une structure physique :
- Physiquement, le document se compose d’unités appelées entités. Une entité peut appeler
d’autres entités pour causer leur inclusion dans le document. Les entités sont des abréviations.
Par exemple, si «Extensible MarkupLanguage» est déclaré comme entité associée à la
notation «xml», cette chaîne de caractères pourra être abrégée en «&xml» dans tout le document XML.
Une entité peut aussi représenter un document XML externe tout entier.
- Logiquement, le document se compose de déclarations, d’éléments, de commentaires,
d’appels de caractère et d’instructions de traitement, qui sont indiqués dans le document par du
balisage explicite. [MLO1]
1.1 La déclaration XML
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 6
La déclaration XML fournit un ensemble d'informations relatives au document dans son
ensemble et utiles à sa manipulation. Elle est toutefois facultative mais fortement conseillée, indiquant
la version d'XML et le codage utilisés. Si elle est présente, elle est facilement reconnaissable car elle
est situé à l'entête du document et encadré par les délimiteurs <?xmlet?>.
Exemple : <?xml version= "1.0" encoding="ISO-8859-1"?> ou (minimum)<?xml version= "1.0" ?>
1.2 Instructions de traitement, commentaires
On les trouve à la suite de la déclaration XML, et servent à associer une feuille de style CSS ou XSL
au document XML.
Exemple: <? xml-stylesheettype= "text/css" href="monstyle.css"?>
Des commentaires peuvent être insérés dans le document en utilisant les délimiteurs <!--et-->.
Exemple : <! -- Superficies infectés sur St Louis -- >(cf. Figure1)
1.3 Le nœud document
C’est l’élément représentant la structure logique, le couple de balises qui n’est contenu dans
aucun autre couple. Un document XML est un arbre dont la racine est un nœud document (Aussi, Un
arbre dont la racine n'est pas nœud document est appelé un fragment XML.).
1.4 Les éléments
Les éléments constituent les principaux composants logiques d’un document XML. Ils ont des
limites marquées soit par des balises ouvrantes (exemple : <Region >) et fermantes (exemple :
</Region >), soit, pour les éléments vides, par une balise d’élément vide (exemple: <Local/ >).
1.5 Les attributs
Un attribut est un nom et une valeur, la valeur peut être vide (<element attribut=""/>), mais pas
nulle (<element attribut>). La répétition d'un attribut de même nom sur le même élément provoquera
une erreur du processeur XML. L'ordre des attributs n'est pas significatif, et peut ne pas être conservé
dans certains traitements. Exemple :<Regionsname= "Dagana" >, est l’élément Regionsavec un
attribut name qui a comme valeur Dagana.
1.6 Les espaces de noms
L’espace de noms a était introduit dans une perspective d´interopérabilité et d’efficacité, il est
important de pouvoir utiliser dans un même document des ensembles d’éléments et d’attributs
provenant de différentes origines (plusieurs documents). Il s’agit d’un mécanisme d’indentification et
de classification des balises par ajout d’un préfixe déclaré par un attribut de la forme xmlns : préfixe
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 7
= « URI » et utilisé pour identifier la provenance de chaque balise ainsi préfixé de la forme <préfixe :
balise> ([BDServ1] et [MMX2]. Exemple :
Figure 20. xs : espace de noms de XMLSchema
2. Les modèles de données
La vérification du caractère bien formé d’un document constitue un premier niveau de contrôle
de la structure de ce document. Ce niveau de vérification est cependant insuffisant : il est en effet
possible de créer des documents qui, quoique bien formés, n’en sont pas moins inexploitables.
Exemple :
Figure 3. Exemple de document bien formé (contenant des erreurs)
Un document XML est valide s’il est bien formé et s’il respecte les contraintes portant sur sa
structure logique (quels éléments peuvent apparaitre dans la structure, quelles relations peuvent exister
entre ces éléments), sur les couples attributs-valeurs qui peuvent être associés aux éléments, sur les
contenus atomiques (types de valeurs ou textuelles autorisés) et les indications qui peuvent être
utilisées.
Pour modéliser la structure générique à laquelle on souhaite que les documents se conforment,
on utilise des formalismes pour définir les types d’éléments ainsi que les relations autorisées entre ces
types. On utilise ensuite un processeur XML « validant », pour vérifier que les documents ne
contiennent que des éléments appartenant à ces types et ces éléments apparaissent avec un nombre
d’occurrences et en des emplacements de la structure compatibles avec les définitions de types.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 8
Figure 4. Processus de validation d’un document XML
Nous présentons ici les deux approches normalisées qui ont été proposées par le: les DTD et les
Schéma XML (ou XML Schéma).
2.1 Document Type Définition (DTD)
La recommandation XML, dans la version 1.0 comme dans la version 1.1 contient la
description d’un formalisme grammatical nommé DTD (Document Type Définition). Ce formalisme
(hérité de SGML) peut être facultatif, mais est fortement recommandé car il permet d’exprimer les
contraintes, expliquées précédemment, que doit respecter un document pour être considéré comme
une instance valide d’une classe particulière de documents XML.
Une DTD est constituée des éléments suivants :
- déclaration d’en-tête de DTD, définition d’éléments, d’attributs et d’entités XML.
- Déclaration de types d’éléments
- Déclaration de listes d’attributs pouvant être associé à un type d’éléments
- Déclaration d’entités
- Déclaration de notation
La déclaration d’en-tête de document DTD (inséré dans le document xml qu’il référence) est
de la forme : <!DOCTYPE élément racine SYSTEM "chemin/de/la/dtd">
Un élément XML est défini par son nom et son modèle de contenu. Le modèle de contenu d’un
élément est une description simple des éléments qui peuvent apparaître dans le contenu de l’élément
courant, de l’ordre dans lequel ces éléments peuvent ou doivent apparaître. On distingue plusieurs
types de modèles de contenu :
- Séquences : il s’agit d’une liste des éléments possibles, entre parenthèses et séparés par des virgules
(,). Les éléments doivent respecter l’ordre dans laquelle ils sont énumérés.
- Choix : c’est la possibilité que l’un des éléments soit présent. Les éléments sont délimités par le
connecteur |.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 9
- Indicateurs d’occurrence : ils permettent de spécifier à quelle fréquence un élément doit (ou ne
doit pas) apparaître dans un autre élément. Il existe trois indicateurs d’occurrence : le caractère ?
(0 ou 1 fois), le caractère * (0 ou n fois) et le caractère + (1 ou n fois).
- Modèles PCDATA : ils permettent de représenter les éléments contenant des chaînes de caractères.
Chaque élément XML peut recevoir un ou plusieurs attributs ; ils sont déclarés en une fois sous
la forme d’une liste d’attributs. Celle-ci joue plusieurs rôles :
- Elle déclare le nom des attributs permis,
- Elle indique le type de chaque attribut : CDATA, ID, IDREF, IDREFS,
- Elle peut définir des contraintes sur les attributs : valeur par défaut attribut (#FIXED), valeur
facultative dans le document XML (#IMPLIED), valeur obligatoire dans le document XML
(#REQUIRED).
Une DTD peut être incluse dans le document XML (on l’appelle le sous-ensemble de
déclarations). Elle peut être aussi stockée en dehors de l’entité document et simplement référencée,
on utilise dans ce cas la déclaration d’entête (citée plus haut).
Voici une DTD pour le document XML ci-dessus :
Figure 5. DTD du document superficies infestees.xml
Bien que très recommandé comme moyen de validation de document XML, les DTD souffrent
néanmoins de plusieurs limitations:
- Les DTD n’utilisent pas une syntaxe XML. Il n’est pas possible ainsi de les manipuler
automatiquement avec des techniques XML.
- Les DTD ne permettent pas de typer les données de façon précise
- Les DTD ne sont pas conçus pour traiter des documents contenant des espaces de noms
(DTD est antérieure à la publication de la Namespaces recommendation)
- Etc.
2.2 XML Schema
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 10
XML Schéma (publié depuis 2001 sous forme de plusieurs recommandations [XSCH1]) est
une version améliorée de DTD. Ils (les schémas XML) remplacent les DTD car intègrent une plus
grande variété de types de données (booléens, entiers etc.. .) et renferment :
- la notion d’héritage entre éléments : les éléments peuvent hériter du contenu et des
attributs d’un autre élément
- les espaces de noms : ils permettent de spécifier dans un document XML des éléments de
mêmes noms provenant d’autres documents XML différents.
- les indicateurs d’occurrences des éléments peuvent être des nombre positifs.
- Etc.
Voici le schéma XML équivalent à la DTD précédente :
Figure 6. Schema XML du document superficies infestees.xml
Un autre avantage des XML Schéma par rapport aux DTD, est que leur syntaxe est aussi en
XML .Cela permet de les manipuler comme des documents XML, et bénéficier ainsi des outils
existants.
3. Manipulation et Interrogation de documents XML
Les techniques de la documentation structurée étant de plus en plus utilisées, il s’est fait
ressentir le besoin d’interagir directement avec le contenu des documents XML.Plusieurs standards
ont été définis par le W3C pour compléter la norme XML. Les plus importants sont ([BDServ2]
&[XCE1]):
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 11
- La spécification XSL (Extensible StylesheetLanguage) : composée de deux parties : XSL-FO
(XSL-FormatingObjects, un vocabulaire XML pour spécifier des instructions de formatage) et
XSLT (XSLTransformations, un langage pour transformer un document XML en un autre).
- XPath (XML PathLanguage): la recommandation pour naviguer dans un document XML.
- XQuery (XML Query) : langage standard de requête.
- Xlink : pour la définition d’hyperliens pour les documents XML.
- APIs : en charge de l’interprétation et du traitement des documents XML grâce aux parseurs
(XMLDB, JAXP, JAXB DOM, SAX, CASTOR XML etc…)
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 12
II. XML et les bases de données Les documents XML utilisés au sein des systèmes d’informations peuvent avoir une durée de
vie qui s’étend au-delà du traitement ponctuel auquel ils peuvent être soumis (une période de vie d’un
document peut ainsi variée du temps d’une transaction à plusieurs années). Il devient donc nécessaire
de stocker les documents XML reçus. Il est possible de les stocker dans des hiérarchies de répertoires
au sein d’un système de fichiers traditionnel. Mais à un certain volume, se pose des problèmes en
termes de gestion et de requêtes. Il est donc indispensable, pour une gestion « persistante » de ces
données, d’utiliser une base de données.
1. Les différents types d’approche de stockage des « données XML »
Stocker des documents XML directement en bases d données ou produire des documents XML
directement depuis des bases de données présentent de nombreux avantages :
- Gérer la persistance, le partage et la sécurité des documents XML
- Extraire directement les données en base (langages de requête, XForms du W3C)
- Echanger des données entre systèmes d’informations ayant des vues différentes sur ces
données (suivant des DTD ou des schémas convenus)
- Développement de systèmes d’interrogations multibases
- Etc.
Le choix du stockage d’un ensemble de documents XML peut se faire suivant :
i) Ne pas travailler « directement » avec un modèle de données XML et choisir de manipuler les
données dans le modèle propre à la base. Par exemple s’il s’agit d’un stockage en base
relationnelle, cela revient à enregistrer le document XML dans une ou plusieurs tables
relationnelles [ROB1]. On obtient ce type de représentation grâce aux techniques comme
DOM ou SAX.
ii) On peut aussi stocker les documents XML dans une base classique (relationnelle, relationnelle-
objet), mais n’interagir avec cette base qu’à travers une interface (middleware XML). Cela
permet de travailler su ces documents comme s’ils étaient gérés dans une base de données
XML.
iii) La troisième approche consiste à garder le document en entier en base et de lui adjoindre des
accélérateurs d’accès rapide (index). On parle de bases XML natives. Elles préservent la
structure physique des documents (éléments, attributs, entités, ...), permettent de stocker des
documents sans déclaration préalable du schéma des documents. L’accès aux documents se fait
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 13
à partir des API spécifiques à XML (Xpath, XQuery). Les bases de données XML natives
permettent la création de collections (assimilables à des dossiers dans un système de fichier).
2. Etudes de quelques systèmes de stockage
Les bases de données étudiées ici sont :
- eXist initié par Wolfgang Meier
- Oracle XMLDB
- Berkeley DB XML d’Oracle.
- MonetDB/XQUERY de l'institut de recherche néerlandais Centrum
Wiskunde&Informatica(CWI)
2.1 eXist
eXist (version 1.4, licence GNU/GPL) est un SGBD XML native multiplateformes
(Windows,Unix,Mac).Elle a été créée en 2000 par Wolfgang Meier, sur la base d'articles scientifiques
décrivant des algorithmes performants d'accès aux données. eXist est écrit en Java. D'abord conçu pour
l'accès aux documents («Document-centric»), la base de données XML native se spécialise
progressivement dans l'accès aux données (« Data-centric »).
eXist implémente l'API Java XML:DB (et développe actuellement le support de l'API XQJ.),
les standards XML XQUERY 1.0, Xpath 1.0 et 2.0, et XQUERYFT. Pour la réalisation des mises à
jour, eXist fait appel à XUPDATE, et à une extension d'XQUERY en cours de mise en conformité
avec XQUF.
2.2 Oracle XMLDB
XML DB est le nom de la technologie d’Oracle qui permet de gérer du contenu XML en base
(stockage, mises à jour et extractions). Alors que la plupart des SGBD natifs XML ne permettent que
la persistance, XML DB offre en plus de nombreuses fonctionnalités (contrôle des transactions,
intégrité des données, réplication et indexation) [ORA1]:
- Un type de données XML qui est utilisé pour stocker et gérer du contenu XML (XMLType).
Il possède un certain nombre de fonctions permettant de créer, extraire et indexer des données
XML stockées dans le SGBD Oracle. En tant que nouveau type de données, XMLType peut
être utilisé comme type pour les colonnes dans des tables et des vues ainsi que dans des
procédures stockées PL/SQL (mode de stockage CLOB, LOB ou BinaryXML). Avec le type
XMLType et ses capacités, nous disposons de toutes les possibilités d'une base de données
relationnelle tout en travaillant avec des données sous format XML
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 14
- La possibilité d'enregistrer un schéma (et validation) conforme au W3C dans la base de
données Oracle.
- Supporte la recommandation Xpath du W3C et le standard ISO-ANSI SQL/XML
- Accès distant via FTP, HTTP ou WebDAV, SOAP…
- Dispose de plusieurs APIs (Java, C, PL/SQL) de développement d'applications qui comprend
des fonctions intégrées, indexation, navigation et de soutien.
- Le driver JDBC.
2.3 Berkeley DB XML (BDB XML)
Berkeley DB XML est une base de données open source « native », construit au-dessus de la
célèbre base de données Berkeley DB (BDB) : c'est une base de données intégrée (embarquée
/Embedded database).[BXML1]. Une base de données intégrée (embarquée) fonctionne dans un autre
programme. Ce n'est pas un serveur autonome (comme Oracle, DB2, ou eXist). Beaucoup de bases de
données relationnelles et XML natives fonctionnent en mode client-serveur. C’est-à-dire que tout
s'exécute comme une application autonome (le serveur de base) et de nombreux clients peuvent s'y
connecter. Un lien est alors établi entre eux en utilisant des protocoles (http, FTP…), des drivers
(JDBC, ODBC…), etc. Au contraire dans une base de données intégrée comme BDB XML, ce n'est
pas le cas, les clients et le serveur tournent tous deux dans le même espace d'adressage (machine), et
ils sont en fait le même programme. Cependant il est de la responsabilité du programmeur d'invoquer
la bonne API pour la base de données. Il faut noter que BDB XML est conforme aux standards du
W3C (XML, XML Namespaces, Xpath, Xquery, XQUF, etc.).
2.4 MonetD/XQUERY
MonetDB est un système de gestion de bases de données open source, développé depuis
plusieurs années au CWI. Il est basé sur des projets de recherche et de bases de données (recherches
orientées Datawhare house, Datamining etc.) [MON1]. MonetDB prend en charge plusieurs requêtes
comme ANSI SQL-2003 et W3C XQuery avec des possibilités de mises à jour, en plus de son langage
propriétaire MonetDBAssemblyLanguage (MAL).
MonetDB / XQuery est construit sur le moteur MonetDB (Mserver). Les fonctionnalités
XQuery sont fournies par le module d'extension pathfinder, qui contient le compilateur Xquery. Il est
composé de quatre (4) principaux modules qui sont:
- MonetDB: le moteur MonetDB (Mserver, commun aux autres BD Monet)
- MonetDB4: l’interpréteur algébrique des requêtes (version 4)
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 15
- Clients: l’utilitaire mclient, et sa bibliothèque MAPI (Interface Administration GUI).
- XQuery: le compilateur Pathfinder avec son propre langage de requête (basé sur PF/Tijah).
3. Veille Technologique
Ici, nous étudions quelques bases de données XML suivant les approches citées plus haut.
Cette étude qui se veut comparative est basée sur les critères suivant :
- Possibilités offertes en termes d’exploitation (définition et manipulation des données,
contrôles d’intégrité etc.)
- Performances, persistance, sécurité
3.1 Administration et sécurité
Par administration et sécurité, nous faisons référence aux outils mis en place pour faciliter,
hiérarchiser et prioriser les opérations sur les données (l’ajout, la mise à jour, la suppression) au sein
de ces systèmes. Ce qui est un facteur très important pour les classer :
- Actuellement, MonetDB / XQuery manque de système d'authentification appropriée. L'accès
à la base de données est tout ou rien: soit une personne y a accès, soit non. En plus c’est un accès
sans droits d'administration (mots de passe, le protocole SSL n'est pas encore disponible). Tous les
utilisateurs peuvent effectuer des modifications, supprimer des documents, etc. Autrement dit, il n'y
a pas de notion de droits d'utilisateur restreint (tout le monde est administrateur).
- Oracle XMLDB est complet coté administration, ceci du fait qu’il utilise les outils
d’administration de la suite Oracle (multiutilisateurs avec des droits d’administrations différents,
terminal, interface web) avec une prise en mise facile.
- Berkeley XMLDB ne dispose aussi que d’un terminal comme interface d’administration et il
n'y a pas de notion de droits d'utilisateur restreint.
- eXist peut être administré via trois interfaces (terminal, navigateur web, interface graphique)
très conviviales et facile de prise en main. Il est aussi multiutilisateur avec chacun ses droits d’accès
au système.
3.2 Manipulations et intégrité des données (les dialectes XQUERY)
Pour la consultation des ressources stockées dans les bases de données XML, les différentes
solutions implémentent des standards W3C, ainsi que des technologies d'accès et de modification
propres. Les standards les plus couramment implémentés sont XPath 1.0 et XQuery 1.0, suivis de
XPath 2.0 :
- MonetDB /Xquery intègre des extensions du standard Xquery pour la gestion des documents
(ceci du fait que le standard Xquery ne donne aucune spécification à ce propos [MON2]) : les
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 16
fonctionnalités de XQuery sont fournies par le module d'extension pathfinder. Il permet la plupart
des opérations CRUD, mais ne travaille pas au niveau schéma (aucune validation de schéma, si il
existe, n’est fait. Seulement une vérification est fait pour voir si le document est bien formé)
- Oracle XMLDB supporte la recommandation Xpath du W3C et le standard ISO-ANSI
SQL/XML et offre la possibilité d'enregistrer un schéma (et validation) conforme au W3C dans la
base de données Oracle.
- Berkeley DBXML est conforme aux standards du W3C (XML, XML Namespaces, Xpath,
Xquery, XQUF, etc.) et d’autres fonctionnalités, en dehors des standards existant, y sont intégrées
et permettent une gestion efficace des données XML. BDB XML permet la validation de schéma
XML sur un ensemble de documents qui sont dans un même conteneur. [BXML2].
- eXist est réputé pour son langage de requêtes XQuery car d’après le XQTS (XQuery Test
Suite), son efficacité est évalué à 99.4%. En plus XUPATE qui est du XQuery pour la mise à jour
des documents XML admet des extensions en conformité avec XQUF (XQuery Update Facility)
qui permet de faciliter la mise à jour sur de grands volumes de données. Il permet la validation des
documents XML (grâce à leurs schémas).
3.3 Benchmarking
Un autre critère très important pour étudier ces différents systèmes est de mesurer et de
comparer leurs performances (benchmarking), suivant leur temps de réponse aux requêtes émises et
leur capacité de stockage. Plusieurs benchmarks sont proposés pour cela (TopX, Xmark, XBench...).
Les résultats suivants ont été obtenus grâce à une étude faite avec Xmark (comparaison de
MonetDB/XQUERY avec eXist et Berkeley DBXML, disponible sur le site
MonetDBhttp://monetdb.cwi.nl/XQuery/Benchmark/XMark/index.html): les conclusions montrent
dans l’ensemble que MonetDB/QUERY est légèrement plus performant que les autres (surtout sur les
fichiers de données dépassant 110Mb). Néanmoins, ces résultats montrent aussi que tous ces systèmes
ont des temps de réponses acceptables (<= 1s pour la plupart des requêtes exécutées).
Nous présentons ici ces résultats (les requêtes sont notées de 1 à 20), suivant la solution XMark
utilisée :
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 17
Figure 7. XMark 110Kb (fichiers de petites tailles)
Figure 8. XMark 1.1Mb
Figure 9. XMark 11Mb
00,020,040,060,08
0,10,120,140,160,18
0,2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
XMark 110 KB
MonetDB/XQuery
0
2
4
6
8
10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
XMark 1.1MbMXQ
BDB
EXT
0
500
1000
1500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
XMark 11MbMXQ
BDB
Requetes
Requetes
Requetes
Seco
nd
es
Seco
nd
es
Seco
nd
es
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 18
Cependant, aucune étude de « benchmarking » n’a été trouvée dans nos recherches concernant
Oracle XMLDB (du moins pas publié officiellement), ceci du fait que ce dernier est propriétaire
(commercial).
Nous pouvons aussi ajouter comme critère le mode d’organisation des fichiers au sein de ces
systèmes. Pour cela, seul eXist a une organisation plus structurée (collections de collections), alors que
les autres ne s’organisent qu’au premier niveau seulement (collections de documents). Sous oracle
XMLDB, l’organisation se fait sous forme de tables.
L’avantage d’une telle organisation sous eXist permet par exemple d’interroger des documents
appartenant à des collections différentes au sein d’une même requête.
A l’issu de cette étude, nous préconisons l’utilisation d’eXist comme support logiciel pour le
stockage des documents XML générés lors de la première phase du processus d’intégration du projet
sic-Sénégal. Nous donnerons en annexe une brève présentation de l’utilisation d’eXist.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 19
III. (Etude sur) La transformation de données d’un modèle
relationnel vers un modèle XML
Notre étude sur la transformation de données d’un modèle relationnel (une base de données SQL)
vers un modèle XML (fichiers de type XML) se divise en deux grandes parties :
- D’abord il s’agit de faire une analyse de l’ensemble de la structure du modèle relationnel (le
schéma source de la BD) afin d’en tirer un schéma XML reflétant la structure de la base (une
représentation plus ou moins intégrale).
- Ensuite nous allons extraire les données de la base suivant une structure bien définie,
respectant au mieux le schéma précédemment obtenu.
A l’issu de notre étude, notre architecture fonctionnelle se présente comme suit :
Figure 10. Architecture du système
Le système a trois principaux composants :
- La base de données relationnelle : où se trouvent les données à extraire (sous forme de
tables)
- La DB2XML Transform : qui est le module d’extraction, le cœur de notre système. A
l’aide de cette interface, nous interrogeons d’abord (1) la base de données concernée sous
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 20
forme de requêtes SQL. Le résultat obtenu est constitué en premier lieu des métadonnées1 de
la base(les différentes tables existantes, les types des attributs, les liens existantes entre les
tables…). Ceci nous permettra d’élaborer un schéma XML qui constituera de
« métaschéma XML» pour les différentes tables à générer. Un deuxième bloc de résultat sera
obtenu et sera constitué des données réellement enregistrées sur les tables.Nous procédons
ensuite à la transformation des résultats précédemment obtenu en fichiers .XSD et .XML(2)
- Fichiers XML et XSD : c’est le résultat prévu (3) lors de la génération complète de la base
de données. Les fichiers XML sont la génération de chaque table et le fichier XSD est la
structure générale de toute base et aussi le schéma validant tous les fichiers XML générés.
Notre choix s’est porté sur le formalisme de validation XSD (plutôt que DTD) pour sa capacité à
représenter tout type de données. Il permet notamment de contrôler de façon stricte le contenu
pouvant apparaitre dans les documents XML.
1. Définition des règles de transformation d’une base relationnelle
Les règles de construction définies pour traduire les données de la base tiennent compte de
l’aspect statique et dynamique de sa structure. L’aspect statique concerne la structure et donc la
définition des tables de la base (modèle conceptuel des données). La partie dynamique concerne les
contraintes d’intégrité (clés primaires et clés étrangères).
1.1 Définition du fichier XSD
Chaque table de la base est de type complexe XSD (<xsd : complexType >) représentant la structure
globale de la table. Les attributs qui la composent seront de trois types:
- Les attributs non clé : chaque attribut de ce type est traduit en un élément <xsd : element> dont le
type est un des types de base (xsd : string)
- Les attributs clés primaires : l’(les) attribut(s) de la table portant ce type d’intégrité référentielle
est un moyen technique de déterminer sans ambiguïté une instance du concept.
Ainsi chaque attribut faisant partie de la clé primaire est traduit par un attribut sur le type
complexe correspondant à la table (<xsd : attribute >). Il est composé aussi de son type et du
champ « use = ‘’required’’ » pour mieux préciser son état unique au sein du concept.
Exemple : Définition de la table sup_infestees_2002_03
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 21
Figure 11. Structure xsd de la table etudiant
Après avoir interprété chaque table, nous allons définir le complexType de la base de données qui
sera constitué d’éléments dont le type est l’un des types tables définis plus haut et des relations
existantes entre elles.
- Un élément de type Table sera comme suit :
<xsd : element name= ‘’nom element’’ type= ‘’ type_Table’’ minOccurs=‘’0’’
maxOccurs=’’unbounded’’ >
Les options minOccurs et maxOccurs permettent de définir la possibilité de présence de l’instance
de la table dans un fichier XML (zéro ou plusieurs fois).
Dans chaque élément table sera défini les concepts de clé primaire et de clé secondaire :
1.1.1. Clé primaire
La clé primaire sera définie par l’élément xsd : key qui aura autres éléments fils :
- Xsd : selector et l’expression xpath utilisée , récupère le nom de la table concernée par cette
clé.
- xsd:field et l’expression xpath utilisée ensuite définit le nom de l’attribut qui doit être clé
(obligatoirement identique au nom de xsd : attribute du complexType de la table).
1.1.2. Clé étrangère
Les schémas XML permettent un contrôle référentiel de nature similaire à ce qui existe dans
le monde des bases de données relationnelles. Une clé étrangère définit le fait qu’un attribut a1 d’une
table A1 soit une référence (ou est référencé) dans une table A2, par son attribut clé primaire a2.
La génération résultante d’une clé étrangère sera l’adjonction de la balise <xsd :keyref>. Cet attribut
permet la création d’une référence à une clé existante (dans le même schéma). Il y aura aussi les deux
éléments fils xsd : selector et xsd : field.
Une illustration de définition d’une base nous donnera :
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 22
Figure 12. Structure xsd de la base_etudiant
Remarques : Quelques problèmes liés à la génération des clés secondaires.
Dans certains cas, l’analyse et définition d’une structure d’une BDpeut être correcte en ce
sens qu’elle respecte (au mieux) les intégrités référentielles de la base, mais elle ne le sera pas du
point de vue « XSD ». Nous en montrons ci-dessous une illustration :
Soit les deux tables suivantes :
Figure 13. Relation entre deux tables
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 23
La génération d’un fichier xsd d’une telle structure donnerait :
Figure 14. Format xsd des tables
Une telle structure xsd a l’air correct, mais lors de la validation, génèrera une erreur. Car la
clé FK_A2 est référencée par la clé PK_A1 or la première est de cardinalité1 1 (ne concerne qu’un
seul attribut @a2) et la deuxième de cardinalité 2 (@a1 et @b1). Une clé (en xsd) ne référence une
autre clé que si leurs cardinalités sont égales.
2. Définition du fichier XML
Pour traduire notre base de données, nous avons choisi de générer un fichier XML par table.
Ceci dans le souci de plus de modularité et permettra de ne pas charger les fichiers. Le schéma XML
généré sera commun à tous les fichiers. Ainsi, dans un fichier XML, la racine sera le nom de la base
de données et ses éléments fils les lignes de la table. Dans ces derniers, les sous-éléments seront les
colonnes et l’(les) attributs sera la clé primaire de la table.
Exemple :
1 La notion de cardinalité indique ici le nombre de champs (xsd :field) dans la clé
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 24
Figure 15. Structure xml de la base etudiant
Une étude sur la manière de transformer des données vers le format XML nous a
permis de trouver un procédé efficace qui nous permet d’extraire non seulement les données
d’un base de données relationnelles mais aussi les propriétés (intégrité) concernant ces
données. Ceci nous permet donc de proposer une solution applicative qui permettra
d’automatiser les traitements d’extraction des données dans une base de données de type
relationnelle.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 25
IV. Conception du Wrapper DB2XML Transform
1. Implémentation
Pour développer notre application, nous avons utilisé principalement deux Apis de Java : l’api JDBC
et JDOM :
1.1. JDBC
La technologie JDBC (Java DataBaseConnectivity) est une API fournie avec Java (depuis sa
version 1.1) permettant de se connecter à des bases de données, c'est-à-dire que JDBC constitue un
ensemble de classes permettant de développer des applications capables de se connecter à des serveurs
de bases de données (SGBD). [JDBC01] L'API JDBC a été développée de telle façon à permettre à
un programme de se connecter à n'importe quelle base de données en utilisant la même syntaxe, c'est-
à-dire que l'API JDBC est indépendante du SGBD. De plus, JDBC bénéficie des avantages de Java,
dont la portabilité du code, ce qui lui vaut en plus d'être indépendant de la base de données d'être
indépendant de la plate-forme sur laquelle elle s'exécute. [IBD01].
1.2. JDOM
JDOM2 est une API du langage Java développée indépendamment de Sun Microsystems. Elle
permet de manipuler des données XML plus simplement qu'avec les API classiques. Son utilisation
est pratique pour tout développeur Java et repose sur les API XML de Sun (SAX, DOM) [JDOM01].
Il propose les fonctionnalités suivantes :
- Lecture de fichiers XML à partir de fichiers, arbres DOM, flux SAX (en réalité, JDOM ne
fournit qu'une représentation sous forme d'objets Java, mais ce n'est pas un analyseur
syntaxique. Il en utilise un, comme Xercespar exemple, pour la lecture de flux XML).
- Création de document XML.
- Exportation d'arbre XMLJDOM sous la forme de fichier, arbre DOM, flux SAX.
- Transformation XSLT.
- Support de XPath1.0 (à travers la brique logicielle Jaxen).
2JDOM présente de grandes similitudes avec le DOM en ce sens qu'il représente un Document XML via une structure arborescente.
Cependant, il s'en distingue parce que JDOM est spécifiquement conçu pour JAVA (A ce propos, il convient de noter que contrairement
à ce qui est parfois écrit, le J de JDOM ne renvoie pas à Java, et que JDOM suit la nomenclature NAA – not an abreviation – de Sun:
JDOM veut ainsi dire JDOM et rien d'autre).
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 26
2. Interface du Wrapper
Suivant notre architecture (système), nous avons pu diviser notre application principale en trois
sous-interfaces, ceci dans le but de plus de modularité, mais aussi de confectionner des « mini-Apis »
capables d’être réutilisés ou enrichis plus tard. Nous avons :
- Le package dbConnexion : qui est l’interface relié aux bases de données relationnelles. Il
permet ainsi d’effectuer tous les traitements sur la base de données (récupérations de données
et de métadonnées, opérations de CRUD…).Il contient en son sein la classe
ConnexionJDBC.
- Le package xmlWrapper : il fournit les classes de création des fichiers XML et XSD après
récupération préalable des données (par la classe ConnexionJDBC). Nous avons les classes
XMLTransform(pour l’édition des fichiers XML) et XSDTransform(pour les fichiers
XSD).
- Le package interfaceGUI : avec la classe DBConnectInterface qui permet les actions
affichage graphique pour une utilisation plus conviviale de notre interface.
Figure 16. Interface de DB2XML Transform
L’interface comprend une partie de connexion à la base de données et une autre partie
d’extraction de données de la base (soit d’une table ou de toute la base).
Donnons une illustration, nous voudrions récupérer sous format XML la tablebilan_2002_03. Alors,
aprèsconnexion, nous choisissons dans le champ des tables la valeur bilan_2002_03, puis nous
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 27
cliquons surGenerer Table. Alors une fenêtre nous demande de choisir l’emplacement où nous
voudrions enregistrer les fichiers qui vont être générés.
Figure 17. Exportation d’un fichier XML
Après avoir accepté, une boite de dialogue s’affichera pour dire que l’exportation a réussi (ou
non). Et les fichiers (agricolebd2010.xsd et agricolebd2010__bilan_2002_03.xml) sont ainsi générés
et peuvent être utilisés.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 28
Figure 18. Fichiers agricolebd2010.xsd et agricolebd2010__bilan_2002_03.xml
Conclusion
L’essor de l’édition électronique entraine, aujourd’hui, la production croissante
d’informations qui n’ont pas (toujours) une structure fixe et aussi pas clairement définie ( pages
HTML, documents bureautiques, bases de données ….). La gestion de ces différentes sources
d’informations présente un enjeu essentiel pour tendre vers une structuration progressive (uniforme)
de l’information disponible.
XML est au cœur de ces évolutions importantes par les possibilités qu’il offre en termes
d’analyse, de transformation et de recherche grâce aux techniques combinées comme
SAX,DOM,XSLT… (au sein des Apis), XQuery, bases de données XML. Ces outils permettraient,
par exemple, une uniformisation des différentes ressources disponibles au sein de plusieurs systèmes
applicatifs (en l’occurrence les bases de données relationnelles) pour que ces derniers puissent
communiquer dans un même format.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 29
Ce mémoire nous a permis ainsi d’être au contact d’une panoplie de solutions et techniques
intervenants dans la structuration et la manipulation des données au sein d’un système d’information.
Cependant quelques problèmes ont été rencontrés notamment dans la manière de trouver une solution
très efficace d’extraction des données (ainsi que de leurs contraintes d’intégrité) au sein d’une base
de données relationnelle.Problèmes pouvant faire l’objet d’une étude de recherche beaucoup plus
approfondie.
Ces techniques pourraient avoir aussi un avenir certains notamment dans les évolutions de
l’architecture du web et la façon de concevoir les systèmes d’informations (conserver des services
avec SOA3, échanger des métadonnées avec RDF4, OWL5 etc.)[MMX3].
BIBLIOGRAPHIE & WEBOGRAPHIE [BDServ1] Georges Gardarin, « XML, Des bases de données aux services Web » : Représentation
des documents, p. 76, DUNOD, Paris 2002.
[BDServ2] Georges Gardarin, « XML, Des bases de données aux services Web » : Les feuilles de
Styles XSL, p. 117, DUNOD, Paris 2002.
[BXML1] Open Source Database Special Feature: An Introduction to Berkeley DB XML,
http://au.sys-con.com/node/164567
[IBD01] Chris J. Date, «Introduction aux Bases de données » 7e édition, p. 94-95, Vuibert, Paris
2000
[INFOSET 1] Xml Information Set, 2nd Edition : W3C Recommendation, Fevrier 2004
http://www.w3.org/TR/xml-infoset
3SOA: Service Oriented Architecture 4RDF: Resource Description Framework 5OWL: Web Ontology Language
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 30
[JDBC01] Introduction à JDBC, http://www.commentcamarche.net/contents/jdbc/jdbcintro.php3
[JDOM01] Manipuler des données XML avec Java et JDOM,
http://cynober.developpez.com/tutoriel/ java/xml/jdom/ - http://www.jdom.org
[MON2] MonetDB/Xquery, xqrymanual.pdf ,http://monetdb.cwi.nl
[MLO1] Moussa Lo, « DATAWEB BASES SUR XML : MODELISATION ET
RECHERCHE D’INFORMATIONS PERTINENTES », p.26, 2002
[MLO2] Moussa Lo, « DATAWEB BASES SUR XML : MODELISATION ET
RECHERCHE D’INFORMATIONS PERTINENTES » : Les APIs pour XML p.37-38, 2002
[MMX1] François rôle, « Modélisation et Manipulation de documents XML », p. 41 - 51, Hermès
Sciences, Janvier 2005.
[MMX2] François rôle, « Modélisation et Manipulation de documents XML »: Analyse automatique
du balisage, p. 32-38, p.41-58, Hermès Sciences, Janvier 2005.
[MMX3] François rôle, « Modélisation et Manipulation de documents XML » : XML et l’architecture
Web, p. 278- 305, Hermès Sciences, Janvier 2005.
[ISO1] International Organization for Standardization http://www.iso.org
[ORA1]Oracle® XML DB Developer's Guide 10g Release 1
[ORA2] Christian SOUTOU, « XML avec Oracle »,
[ORA3] Oracle XML DB overview http://www2002.org/CDROM/alternate/V5.pdf
FAQ Oracle et XML http://www.orafaq.com/faqxml.htm
[ROB1] Ronald Bourret, XML and Databases, www.rpbourret.com/xml/XMLAndDatabases.htm
[SGML1]http://www.sgmlsource.com/history/roots
[W3C] World Wide Web Consortium http://www.w3.org/
[XCE1] Alexandre Brillant, « XML – Cours et exercices » : Publication de documents XML, p. 105-
161, Groupe Eyrolles, 2007
[XDM1] W3C, Fernandez M., Malhotra A., Mash J.,MartonN,Walsh N. « Xquery1.0 an Xpath2.0
Data Model (2nd edition): W3C Working Draft », W3C, 21 Avril 2009. http://www.w3.org/TR/xpath-
datamodel
[XSCH1]XML Schema Part1 &XML Schema Part1 (respectivement
http://www.w3.org/TR/xmlschema-1 - http://www.w3.org/TR/xmlschema-2), W3C
Recommendation, Octobre 2004
[XML1] Une recommandation étant le nom servant à désigner les textes normatifs publiés par le
W3C. Http://www.w3.org/TR/2000/REC-xml-20001006.
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 31
ANNEXE : UTILISATION DE EXIST
eXist implémente l'API Java XML:DB (et développe actuellement le support de l'API XQJ.),
les standards XML XQUERY 1.0, Xpath 1.0 et 2.0, et XQUERYFT. Pour la réalisation des mises à
jour, eXist fait appel à XUPDATE, et à une extension d'XQUERY en cours de mise en conformité
avec XQUF. Elle fonctionne aussi bien en mode serveur qu'en mode embarqué. En mode serveur Il
dispose par ailleurs de trois modes d'administration, un client java, une administration en ligne de
commande, et une interface web.
Lancement de eXist
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 32
Après avoir installé eXist on peut le lancer à partir du fichier eXistDatabase Startup dans le
menu démarrer ou sur le bureau. Si eXist est bien lancée et que tout se passe bien, on devrait avoir
cette fenêtre DOS à l’écran :
On voit bien cette fenêtre console apparaitre à l’écran, ne la fermer surtout pas .On peut démarrer
eXist en tant que service windows pour ne pas le lancer manuellement.
Interface client java :
2 3 4 5 6 7
8 9 10
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 33
1. Aller vers la collection parent « /db » qui contient tous les autres collections
2. Rafraichir la vue des collections
3. Créer une collection
4. Charger un ou plusieurs fichiers dans la base de données
5. Supprimer les fichiers ou collections sélectionnées
6. Editer les permissions sur les ressources sélectionnées
7. Créer une sauvegarde de la base de données
8. Restaurer la base de données depuis une sauvegarde
9. Gérer les utilisateurs
10. Interroger la base de données avec XQuery
Elle est subdivisée en trois parties :
- En haut une barre des menus et des fonctions,
-En bas le Shell de l’interface,
-et au milieu la liste des collections ou documents xml existants,
Par défaut sous eXist il y’a une collection racine « /db » qui contient tous les collections ou
documents créés. Il y’a une hiérarchisation des collections (on peut aussi créer des collections de
collections).Dans notre cas on crée une collection du nom d’agricolebd2010et on y charge les
fichiers xml générés par notre application avec leur schéma xml pour leur validation.
On interroger la base à partir de la boite de dialogue QueryDialog accessible dans menu outils.
Barre des
menues et des
fonctions
Ressources (collections
et documents xml)
créées
Shell
1
a
b c d e f g h
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 34
a. Lire une requête à partir d’un script
b. Enregistrer un fichier script
c. Ecrire le résultat d’une requête dans un fichier xml
d. copier sélection
e. couper sélection
f. coller sélection
g. compiler une requête
h. exécuter une requête
Quelques requêtes via la boite de dialogue XQuery dans outils:
Requête 1
Cette requête affiche les régions de nom Dagana.
Requête 2
Barre d’outils
Zone texte pour
écrire une requête
Résultat d’une requête
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 35
Cette requête donne les sup_infestees_2002_03 de la région de Dagana.
Requête 3
Cette requête donne les bilans dont la sup_infestee dépasse 10000.
Requête 4
Cette requête donne les bilans dont la sup_infestee dépasse 7000 et la sup_prospectee est inférieur à
15000.
Requête 5
Cette requête donne l’élément niebe des sup_infestees_2002_03 de la région de Dagana.
Requête 6
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 36
Cette requête donne la valeur de l’élément niebe des sup_infestees_2002_03 de la région de
Dagana.
Mise à jour :
Les extensions de XQuery pour les mises à jour sont les suivantes : insert, replace, value,
rename, delete.
1. insert
update insertexpr( into | following | preceding )exprSingle
La requête ci-dessus permet d’insérer expr dans exprSingle
- l’option « into» permet de faire l’insertion avant la balise fermante de l’élément « exprSingle »
-l’option “following” permet de faire l’insertion tout juste après l’élément« exprSingle »
-l’option “preceding” permet de faire l’insertion tout juste avant l’élément« exprSingle »
On affiche le contenu du nœud Région « Dagana » :
L’élément test est bien dans la région de Dagana.
2. delete :
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 37
update delete expr supprime l’élément expr.
Cette requête supprime l’élément test inséré précédemment.
L’élément test inséré dans la région de Dagana est bien supprimé.
3-replace :
update replace expr with exprSingle : remplace l’élément exprpar exprSingle.
Cette requête remplace l’élément niebeavec son contenu de sup_infestee_2002_03 de la région de
Dagana par <niebe>3000</niebe>.
.
La requête suivante vérifie que la valeur de l’élément niebe de sup_infestee_2002_03 de la région
de Dagana est bien 3000.
4-value :
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 38
update value expr with exprSingle : modifie la valeur de tous les nœuds expr par exprSingle .
Cette requête change la valeur de l’élément niebe de sup_infestee_2002_03de la région de Dagana
par 300.
On voit bien la valeur de niebe est à 300.
5-rename:
update rename expr as exprSingle :renomme tout les nœuds expr par exprSingle .
Cette change le nom de l’élément niebe de sup_infestee_2002_03de la région de Dagana par
niebe_1.On remarque bien que l’élément niebe est devenu niebe_1.
Validation d’un document XML :
Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes
El Hadji Baffa Sy& Ismaila Abdoulaye Ndiaye – Maitrise Informatique 2010 –UGB/Saint Louis 39
Il existe deux types validations d’un document XML pour eXist-db :
- La validation implicite (par édition du fichier « conf.xml » qui se trouve dans le dossier
d’installation d’eXist). Elle s’effectue en affectant à l’attribut « mode » de l’élément
« validation » l’un des valeurs suivantes : auto, yes ou no :
« yes », tous les documents XML subirons un processus de validation (mais si la
DTD ou le XML-Schéma n’est pas conforme au document XML correspondant, ce
document XML ne sera pas accepté).
« no », tout document XML bien formé est accepté.
« auto » (qui est la configuration par défaut) , si le document XML fait référence à
une DTD ou un XML-Schéma , cette situation correspond au cas ou l’attribut mode
est égal à « yes », sinon le cas ou l’attribut mode vaut « no ».
- La validation explicitepar l’utilisation des fonctions d’extensions de XQuery à savoir
JAXP,JAXV, Jingetc . (cf. http://localhost:8080/exist/validation.xml du serveur eXist-db).
top related