Contactez-nous
Approche relationnelle pure
XML et interopérabilité des systèmes - Applications en Java 1.5 et PHP 5.0
H6008 v1 Article de référence

Approche relationnelle pure
XML et interopérabilité des systèmes - Applications en Java 1.5 et PHP 5.0

Auteur(s) : Max CHEVALIER, Karen PINEL-SAUVAGNAT

Date de publication : 10 févr. 2010 | Read in English

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Sommaire

Présentation

RÉSUMÉ

L'interopérabilité des systèmes (échange d'informations) se confronte aujourd'hui à l'hétérogénéité des architectures des systèmes d'information. En effet, plus l'hétérogénéité est importante, plus l'échange d'informations devient complexe. Dans ce contexte, XML peut simplifier les échanges d'information du fait de son format même (texte brut) et de l'organisation des données (structuration sémantique des données). Dans cet article, différentes solutions permettant de gérer les données issues d'un document XML à des fins d'exploitation, à savoir DOM, SAX, XSL-T, XQuery ou encore les bases de données XML natives, sont présentées. Les exemples fournis reposent sur les langages Java et PHP.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

  • Max CHEVALIER : Maître de conférences en Informatique, Université de Toulouse, UMR 5505

  • Karen PINEL-SAUVAGNAT : Maître de conférences en Informatique, Université de Toulouse, UMR 5505

INTRODUCTION

L'interopérabilité des systèmes vise à permettre une communication simplifiée entre les systèmes, afin de faciliter les échanges. Pour réaliser une telle interopérabilité, surtout dans un contexte hétérogène, XML (eXtensible Markup Language) [H 7 148] [H 3 500] s'impose aujourd'hui comme format d'échange, puisqu'il est indépendant des processus qui le produisent et l'utilisent. Il permet de structurer sémantiquement les données, et de rendre le contenu indépendant de toute mise en forme.

Si XML résout de nombreuses problématiques liées à l'échange de données, d'autres points relatifs à la gestion des contenus échangés sont à considérer. Quelques pistes sont fournies dans [H 3 502]. Notre but est ici de détailler les différents accès possibles aux données XML, en fonction des traitements que l'on souhaite réaliser.

L'accès aux données peut se faire via des outils de parcours de documents XML (parseur) de type DOM (Document Object Model) ou SAX (Simple API for XML), via un langage de transformation tel que XSL-T (eXtensible StyleSheet Language Transformation) ou encore directement via des requêtes XQuery. Le choix de l'accès doit bien sûr se faire en fonction des traitements nécessaires sur les documents, mais aussi en fonction du mode de stockage choisi.

À partir d'un cas d'étude exposé dans la partie 1 du document, nous détaillons trois solutions envisageables pour le stockage et le traitement de données provenant d'un document XML échangé entre deux systèmes (on suppose que la structure du document est connue).

La première serait d'utiliser une approche structurée pure : on stockerait les données XML dans des tables relationnelles, la transformation XML-relationnel se faisant via des approches de type événementiel (SAX), hiérarchique (DOM), ou par transformation (XSL-T) (partie 2).

La seconde serait d'utiliser une approche semi-structurée (XML) pure, et l'accès aux données se ferait directement via des requêtes XQuery (partie 3).

La dernière serait enfin d'adopter une approche mixte (base de données relationnelle avec type natif XML), dans laquelle l'accès aux documents XML utiliserait la puissance des bases de données relationnelles, sans dénaturer les documents, contrairement à la première solution (partie 4).

Pour chacune de ces solutions, nous fournissons des exemples d'implantation reposant sur les langages Java 1.5 et de PHP 5.0.

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 95 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h6008

Lecture en cours
Présentation

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

2. Approche relationnelle pure

Pour stocker un document XML dans une base de données relationnelle, le plus simple est d'éclater les données dans les différentes tables et colonnes. Une autre solution aurait pu être l'enregistrement des données XML sous forme de CLOB (Character Long Object ). Cependant, nous n'abordons pas cette possibilité car elle ne présente que peu d'intérêt. Il n'est en effet alors plus possible d'exploiter les différents niveaux de granularité du document XML : celui-ci ne peut être restitué que dans son ensemble.

Une première étape consiste donc à mettre en place le schéma relationnel. On trouvera sur la figure 2 le modèle conceptuel de la base de données qu'il est possible de mettre en place pour atteindre les objectifs souhaités. Dans ce modèle, nous pouvons identifier deux types d'éléments :

  • ceux qui vont directement être associés aux données extraites du document XML (les éléments colorés) ;

  • ceux qui sont considérés comme déjà existants dans l'organisation et qui ne seront pas modifiés par l'ajout de factures (les clients et les articles, les dates).

On trouvera ci-dessous le schéma relationnel correspondant aux entités et associations spécifiques aux commandes : c'est le schéma que l'on souhaite alimenter à partir des fichiers XML.

...

Commande (numCommande, note, #Date, #numClient)

Contenir (#numCommande, #numArticle, #numLigne, Qté, prixUHT, Tva, note)

Regler (#numCommande, #Date, Montant)

...

Les requêtes de peuplement que l'on souhaite obtenir à partir des fichiers XML de commandes sont les suivantes :

insert into Commande VALUES ( '2006.27.12-300', 'Livraison en Collissimo SVP', '2006-12-27', 'C0005' );

insert into Contenir VALUES ( '2006.27.12-300', 'PXCC', 1, 5, 12.00, 5.5, null );

insert into Contenir VALUES ( '2006.27.12-300', 'IODC', 2, 1, 30.00, 19.60, 'URGENT' );

insert into Commande VALUES ( '2007.04.01-01', null, '2007-01-04', 'C0004' );

insert into Regler VALUES ( '2007.04.01-01', '2007-02-15', 350.00 );

insert into Contenir VALUES ( '2007.04.01-01', 'PXCC', 1, 5, 50.40, 5.50, null );

insert into Contenir VALUES ( '2007.04.01-01', 'XFRS', 3, 1, 352.00, 19.60, null );

insert into Contenir VALUES ( '2007.04.01-01', 'FECS', 2, 3, 24.85, 19.60, null );

insert into Commande VALUES (...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 92 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Approche relationnelle pure

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - Oracle Database 11g XML DB -   Technical Overview.  -  An Oracle White Paper (2007) http://www.oracle.com/technology/tech/xml/xmldb/Current/xmldb_11g_twg.pdf

  • (2) -   XML Query (XQuery) support in Oracle database 10g release 2.  -  An Oracle White Paper (2005) http://www.oracle.com/technology/tech/xml/xquery/pdf/XQuery10gR2v4_1.pdf

  • (3) -   Oracle XML DB Developer's guide. 10g Release 2 (10.2)  -  http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/toc.htm

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

Plate-forme .NET

Le .NET Framework, qui permet la création et l’exécution d’applications modernes conçues autour des ...

Architecture SOA - Modélisations XML

L’universalité du langage XML favorise son emploi dans tous les domaines techniques relatifs à la ...