40
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

Embed Size (px)

Citation preview

Page 1: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 2: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 3: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 4: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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.

Page 5: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 6: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 7: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 8: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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.

Page 9: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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 |.

Page 10: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 11: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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]):

Page 12: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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…)

Page 13: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 14: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 15: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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)

Page 16: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 17: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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 :

Page 18: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 19: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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.

Page 20: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 21: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 22: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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 :

Page 23: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 24: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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é

Page 25: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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.

Page 26: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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).

Page 27: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 28: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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.

Page 29: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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.

Page 30: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 31: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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.

Page 32: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 33: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 34: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 35: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 36: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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

Page 37: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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 :

Page 38: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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 :

Page 39: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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 :

Page 40: Génération et exploitation d’une base de données XML à partir de sources de formats hétérogènes

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).