Langages de requêtes XML Langage et Standards associés Interopérabilité
Plan de la présentation Définition XML Standards associés Utilisations Potentielles Interopérabilité Langages de requêtes XML Comparaison / SQL Conclusions & Travaux futurs
eXtended Markup Language Langage de balisage extensible XML eXtended Markup Language Langage de balisage extensible XML 1.0 Recommandation du W3C du 10 Février 1998
Objectifs d’XML (W3C) Conception rapide d’applications. Les documents XML doivent être : faciles à créer, gérable par un langage de requête, lisibles, clairs, auto-descriptif, traités par des programmes facile à écrire.
Relations SGML/XML/HTML Formats Normalisés de Documents Structurés (FNDS) SGML XML HTML HTML 5.0 = XHTML 1.0 => application XML
Les composants d’XML Document DTD et/ou DTD Interne Externe Le document est dit : "bien formé" => norme du W3C "valide" => norme + DTD
Document XML Prologue Commentaire DTD <memo> <?xml version="1.0" encoding="UTF-8" standalone="no"> Commentaire <!-- commentaire --> DTD <!DOCTYPE memo SYSTEM "memo.dtd"> <memo> </memo> <auteur> … </auteur> <dest> … </dest> <sujet> … </sujet> <corps> … </corps> Racine Eléments
Exemple Balisage XML <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Pas de commentaire --> <!DOCTYPE memo SYSTEM "memo.dtd"> <memo> <auteur><nom>SIMON J-Claude</nom></auteur> <dest><nom>YETONGNON Kokou</nom></dest> <cc><nom>NICOLLE Christophe</nom></cc> <cc><nom>Equipe LE2I</nom></cc> <sujet>Invitation</sujet> <corps><par>Veuillez noter que le 30 juin 2000</par></corps> </memo>
DTD du memo <!ELEMENT memo ((auteur, (date?), sujet, dest, (cc*)), corps)> <!ELEMENT (auteur) (nom+)> <!ELEMENT (dest) (nom+)> <!ELEMENT (cc) (nom+)> <!ELEMENT corps (par*)> Sans signe => obligatoire ? => 1 seul optionnel | => ou exclusif, + => obligatoire 1 ou plus * => optionnel 0 ou plus
Plan de la présentation Définition XML Standards associés Utilisations Potentielles Interopérabilité Langages de requêtes XML Comparaison / SQL Conclusions & Travaux futurs
Standards liés à XML ND = Non défini Noms ND Namespaces ND Balise <A> HTML XPointer HyTime Liens XLink TEI Style CSS1 et 2 XSL DSSSL Balisage HTML XML SGML API DOM 1et 2 ND Script ECMAScript ND
Plan de la présentation Définition XML Standards associés Utilisations Potentielles Interopérabilité Langages de requêtes XML Comparaison / SQL Conclusions & Travaux futurs
Utilisation potentielle d’XML Gestion Électronique de Documents (GED) Coopération de systèmes d’information hétérogènes Extranet XML Personnalisation de la relation Client Commerce électronique Echange de Données Informatisé (EDI)
Plan de la présentation Définition XML Standards associés Utilisations Potentielles Interopérabilité Langages de requêtes XML Comparaison / SQL Conclusions & Travaux futurs
Interopérabilité Coopération de systèmes d’information hétérogènes => interopérabilité Interopérabilité : Interfaçage d'applications de natures différentes sans connaître : les formats les types de données
Interopérabilité Echange de données entre des bases de données hétérogènes ? BD x BD y Problème : Comment échanger les données ? => Traduction entre les bases.
Techniques de Traduction Il y a 2 sortes de traduction : une traduction directe une traduction par un intermédiaire un modèle un langage
Traduction Directe Problème : Nb traducteurs = n x (n-1) => (nb=12) Modèle 1 Modèle 4 Modèle 3 Modèle 2 Problème : Nb traducteurs = n x (n-1) => (nb=12) Pas viable pour Internet => Nb bases de données exponentiel
Traduction par un intermédiaire Modèle 1 Modèle 4 Modèle 3 Modèle 2 Intermédiaire Nb traducteurs = 2 x n = (nb=8) => Internet Problème : Choix de l'intermédiaire
Choix de l'intermédiaire Le modèle de l'intermédiaire peut être : minimal, maximal, méta, Problèmes : minimal : perte sémantique lors de la traduction maximal : pas extensible => Internet (nb BD) méta : représentation ? structure, sémantique, architecture.
Critère du choix (intermédiaire) Représentation : structure => manipulable et extensible sémantique => pas d'ambiguïté, ... Définition extensible des concepts, Généraliste => propre au niveau méta, Ouvert => propre système Internet,
XML = intermédiaire ? Représentation : Structure : notion de grammaire (DTD) Sémantique : définition de balises communes (namespace) Extensible : ajout possible de nouveau balisage, Généraliste : c'est un méta-langage (WML,MathML...) Ouvert : XML définit pour l'échange de données sur web Développement de nombreuses interface entre les SGBD – XML (IBM, Oracle, …)
Fonctionnement interopérabilité Application A Application B Interface XML Parseur Reconnaît éléments Parseur Reconnaît éléments Application règles Conversion vers/depuis XML Transformation Conversion vers/depuis XML Transformation Communication
XML = intermédiaire Communication entre bases de données : XML (pivot). Conversion et transformation des données : XML (traduction). Application des règles => langages de requêtes XML. Traduction : Relationnel <=> Base de Données Semi-Structurée XML. SQL <=> langages de requêtes XML. Base de Données Semi-Structurée => monde "Base de données"
Plan de la présentation Définition XML Standards associés Utilisations Potentielles Interopérabilité Langages de requêtes XML Comparaison / SQL Conclusions & Travaux futurs
Langages de requêtes XML 4 langages XML : XQL,YATL, Lorel, XML-QL. 10 requêtes types sur une Base de Données Semi-Structurée XML Comparaison / SQL sur ces 10 requêtes (DTD + BDS-S XML=> schéma relationnel).
Langages de requêtes XML XQL, extension syntaxe XSL, soumission au W3C de Texcel, webMethods, Microsoft, septembre 98 YATL, groupe Verso de l'INRIA. Lorel, extension de OQL, de l'université de Stanford XML-QL, soumission au W3C de AT&T et INRIA, l'université de Washington, septembre 98
Plan de la présentation Définition XML Standards associés Utilisations Potentielles Interopérabilité Langages de requêtes XML Comparaison / SQL Conclusions & Travaux futurs
Langages de requêtes XML <!ELEMENT bib (book*)> <!ELEMENT book (title, (author+ | editor+), publisher, price)> <!ATTLIST book year CDATA #REQUIRED > <!ELEMENT author (last, first)> <!ELEMENT editor (last, first, affiliation)> <!ELEMENT title (#PCDATA)> <!ELEMENT last (#PCDATA)> <!ELEMENT first (#PCDATA)> <!ELEMENT affiliation (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT price (#PCDATA)> DTD Base de Données Semi-Structurée XML Editor (NumEditor, LastEditor, FirstEditor, Affiliation), Book (NumBook, Title, Publisher, Price, Year), Author (NumAuthor, LastAuthor, FirstAuthor), Publish (NumEditor#, NumBook#), Write (NumBook#, NumAuthor#), Schéma relationnel
Langages de requêtes XML / SQL Comparaison / SQL Langages de requêtes XML / SQL OUI NON SQL OUI NON XQL OUI NON YATL OUI XMLQL Lorel Sélection et extraction Aplatissement de la structure Préservation de la structure Changement structure par imbrication Changement structure par groupement Combinaison points d'émission Indexage Tri Variables balises Expression régulières de chemin 1 2 3 4 5 6 7 8 9 10 Conclusions : YATL, Lorel, XML-QL
Choix du langage YATL Lorel XML-QL Choix => XML-QL Base YAT => base propriétaire Sources non disponibles Lorel Base Lore => base propriétaire Sources disponibles Syntaxe "SQL" XML-QL Sans base Sources disponibles Future norme W3C Choix => XML-QL
Plan de la présentation Définition XML Standards associés Utilisations Potentielles Interopérabilité Langages de requêtes XML Comparaison / SQL Conclusions & Travaux futurs
Conclusions & Travaux futurs Présentation XML et standards associés. XML = modèle pivot entre bases de données hétérogènes. => langages de requêtes XML pour manipuler des bases de données semi-structurée XML Choix XML-QL : Pas intégré à une base de données, Sources disponibles (Java => multi-plate-formes), Future norme W3C,
Conclusions & Travaux futurs SGBDR <=> Bases Données S-S XML <=> SGBDR Langages de requêtes XML <=> SQL. SGBDR <=> Bases Données S-S XML <=> SGBDOO. Traduction de requêtes entre OQL et SQL. Utilisation des XML-Schémas au lieu des DTD DTD (pas typée) => schéma relationnel (typé),
Requête : Sélection et extraction CONSTRUCT <bib> { WHERE <bib> <book year=$y> <title>$t</title> <publisher> <name>Addison-Wesley</name> </publisher> </book> </bib> IN "www.bn.com/bib.xml", $y > 1991 CONSTRUCT <book year=$y> } </bib>