1 / 47

XML et les bases de données

INF 7115 Automne 2002 Robert. GODIN. XML et les bases de données. Par Driss OUAHDI Hayat KRID. 16 Décembre 2002. Plan. Introduction Présentation XML Structure du document XML, DTD, XML Schema, Feuilles de Style. XML et les Bases de données:

zandra
Télécharger la présentation

XML et les bases de données

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INF 7115 Automne 2002 Robert. GODIN XML et les bases de données Par Driss OUAHDI Hayat KRID 16 Décembre 2002

  2. Plan • Introduction • Présentation XML • Structure du document XML, DTD, XML Schema, Feuilles de Style. • XML et les Bases de données: • Bases de données XML-Enabled • Mappage • Stockage et indexation des documents XML • Les langages d’interrogation • XML et Base de données Oracle • Futures Développements et conférences • Benchmarks • Conclusion

  3. Introduction XML et BD • XML Standard d’échange de données universel. • Intégration des données et méta-données • Les BD ne peuvent rester indifférentes : • Nécessité de stocker les documents XML • Nécessité de pouvoir interroger ces documents • Quel modèle de données ? • Quels langages d'interrogation ?

  4. <Mémo>S.V.P soyez sûrque vous êtes au •    <Lieu>SH-2040</Lieu> à   <Heure>17:30</Heure>pour assister au cours <Cours>INF7115</Cours> • </Mémo> Modèles de documents XML • Approche « Document » • Structure moins organisée et un contenu de données mixtes • Recherche textuelle. • Indexation approchée. • Accès type moteur de recherche. • Performances attendues « moyenne » pour une volumétrie « forte  Exemple

  5. <Mémo> <Lieu>SH-2040</Lieu> • <Heure>17:30</Heure> <Cours>INF7115</Cours></Mémo> Modèles de documents XML • Approche « Donnée » • Structure plus organisée et contenu de données non mixtes. • Compatibilité SGBDR existants • Intégrité sémantique • Indexation exacte • Adapté au transactionnel et décisionnel • Performances attendues « moyenne » à « forte » pour une volumétrie « moyenne » Exemple

  6. Concepts de base • DTD : (Document Type Definition) est une déclaration de la structure type à laquelle le document XML doit se conformer (c’est la grammaire du document XML). • Limite des DTD • Fondement des DTD hérités des DTD de SGML • Description limitée des documents (Typage des PCDATA) • Exprimé dans un langage autre que XML

  7. Concepts de base • SCHEMA : L'objectif des Schémas est de définir des contraintes sur des classes de Documents conformes à un même modèle. • Reprend les acquis des DTD mais utilise la syntaxe XML au lieu des expressions régulières SGML.

  8. Concepts de base • DOM  : • Document Object Model (DOM) : définit structure logique d'un document. • API destinée au modèle objet de document • Offre une représentation des documents XML sous forme d’arbre.

  9. Concepts de base • XSL : (eXtensible Stylesheet Language) est un langage qui transforme et traduit les données XML d´un format à un autre. • XSLT : (eXstensible Stylesheet Langage Transform) peut servir à styliser les documents XML, et à produire des documents HTML, des supports WML ou tout autre type de document textuel.

  10. XML et BD, quels Intérêts? • XML fournit une méthode de représentation des données structurées sans ajout d’informations. • Étant tout simplement des fichiers textuels, les documents XML peuvent être produits et utilisés par d’autres systèmes.

  11. XML et BD, quels Intérêts? • XML peut être utilisé par des outils, déjà disponibles ou en début de diffusion, permettant des comportements plus recherchés. • Les données sérialisées au format XML fournissent la souplesse nécessaire à la transmission et à la présentation des données.

  12. Bases de donnée XML-Enabled Définition • Ce sont des BD (souvent relationnelles) avec des fonctionnalités facilitant le transfert et l’échange des données avec des documents XML. • Adaptées surtout pour le stockage et la manipulation des documents orientés-Données. • L’échange des données entre les documents XML et la BD nécessite le passage par l’étape de mappage (mapping) des données.

  13. Mise en correspondance entre le schéma XML et le schéma de la base de donnée. • Deux types de mappages : • Mappage basé sur les tables (Table-Based Mapping) • Mappage Relationnel-Objet (Object-Relationnel Mapping) Bases de donnée XML-Enabled • Mappage

  14. Nom Prénom Age ccc ddd 26 …. …. …. … … … Etudiants Mappage basé sur les tables <Etudiants> <Personne> <Nom>ccc</Nom> <Prénom>ddd</Prénom> <Age>26</Age> </Personne> …. </Etudiants> <Table> <ligne> <colonne>ccc</colonne> <colonne>ddd</colonne> <colonne>26</colonne> </ligne> …. </Table>

  15. Mappage Relationnel-Objet EXEMPLE • <Commande> • <Ncommande>1234</Ncommande> • <Client>Gallagher Industries</Client> • <Date>29.10.00</Date> • <Article numéro="1"> • <Lot>A-10</Lot> • <Quantité>12</Quantité> • <Prix>10.95</Prix> • </Article> • <Article numéro="2"> • <Lot>B-43</Lot> • <Quantité>600</Quantité> • <Prix>3.99</Prix> • </Article> • </Commande>

  16. Mappage Relationnel-Objet Transforme un document XML en un arbre d’objets spécifiques aux données contenues dans le document object Commande { Ncommande = 1234; Client = "Gallagher Industries"; date = 29.10.00; Articles = {ptrs to Article objects}; } object Article { numéro = 2; Lot = “B-43"; quantité = 600; prix = 3.95; } object Article { numéro = 1; Lot = "A-10"; quantité = 12; prix = 10.95; }

  17. Stockage et indexation des documents XML

  18. <!ELEMENT Brochure (Titre, Auteur, Contenu)> <!ELEMENT Titre (#PCDATA)> <!ELEMENT Auteur (#PCDATA)> <!ELEMENT Contenu (#PCDATA)> BD Auteurs Auteur BrochureID Brochures Victor Sabo23 Auteurs Auteur BrochureID Brochures BrochureID BLOB BrochureID BLOB Table index Table document Cesar roy 34 23 XML1 34 XML2 … … 23 XML3 … … Stockage et indexation des documents XML DTD se présente comme suit :

  19. Les langages d’interrogation • Langages basés sur un modèle donné (template-based langages) • Aucun mappage n’est défini entre le document XML et la base de données. • Les instructions SELECT sont incluses dans le modèle. • Les résultats sont traités par un logiciel de transfert de données. <?xml version="1.0"?> <InfoLivre> <SelectStmt> SELECT titre, auteur, edition FROM Livre </SelectStmt> <Livre> <Titre>$titre</Titre> < Auteur>$auteur</Auteur> <Edition>$edition</Edition> </Livre> </InfoLivre> <?xml version="1.0"?> <InfoLivre> <Livres> <Livre> <Titre>XML et base de données </Titre> <Auteur>C. Kelvin</Auteur> <Edition>Eyrolles</Edition> </Livre> … </Livres> </InfoLivre>

  20. Les langages d’interrogation (suite) • Langages basés sur le SQL (SQL-based langages) • Utilisent les clauses SELECT, le résultat obtenu est transformé en XML. • Les données sont transformées selon le mappage relationnel-objet. • Les résultats sont traités par un logiciel de transfert de données. • Langages d’interrogation XML • Ces langages interrogent directement les documents XML. • Pour interroger une BD relationnelle les données doivent être transformées au format XML (mapping). • De ce fait, on interroge les documents XML virtuels obtenus.

  21. Base de Données Oracle • Les utilitaires "XML-SQL" d'Oracle correspondent à des classes Java offrant deux principales fonctionnalités : • Extraire des données d'une base au format XML. • Insérer des données au format XML dans une base. • Cet outil est fourni en standard à partir d'Oracle 8i (version 8.1.7 et plus) ainsi que sous Oracle 9i.

  22. Base de Données Oracle • Extraction de données • De la base vers le schéma XML: • La classe "OracleXMLQuery" permet de • construire un document XML à partir d'une • requête SQL. Voici un exemple basique de • son utilisation :

  23. Base de Données Oracle import java.sql.*; import oracle.xml.sql.query.*; import oracle.jdbc.driver.*; public class sample { public static void main(String args[]) throws Exception { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:scott/tiger@"); OracleXMLQuery qry = new OracleXMLQuery(conn, "select * from employes"); System.out.println(qry.getXMLString()); conn.close(); } }

  24. Base de Données Oracle Si nous considérons que la table "employes" a été créee par lescript suivant : <?xml version='1.0'?> <ROWSET> <ROW num="1"> <EMPNO>7369</EMPNO> <ENAME>Smith</ENAME> <JOB>CLERK</JOB> <MGR>7902</MGR> <HIREDATE>12/17/1980 0:0:0</HIREDATE> <SAL>800</SAL> <DEPTNO>20</DEPTNO> </ROW> <!-- rangées supplémentaires... --> </ROWSET> CREATE TABLE employes ( EMPNO NUMBER, ENAME VARCHAR2(20), JOB VARCHAR2(20), MGR NUMBER, HIREDATE DATE, SAL NUMBER, DEPTNO NUMBER ); Requête "select * from employes", notre fichier XML ressemblera à ceci :

  25. Base de Données Oracle • Document XML conçu grâce à l'exploitation d'un resultset JDBC par la classe "OracleXMLQuery". • Noms des balises XML issus des noms de colonnes de la requête SQL. • <ROWSET>" constitue le tag "racine" du document XML, il entoure chacun des tags "<ROW...> (comportant un numéro), qui eux- mêmes délimitent chacun des tuples ramenés par la requête.

  26. Base de Données Oracle Exemple créé sous forme d'un objet: CREATE TYPE AddressType AS OBJECT ( STREET VARCHAR2(20), CITY VARCHAR2(20), STATE CHAR(2), ZIP VARCHAR2(10) ); CREATE TYPE EmployesType AS OBJECT ( EMPNO NUMBER, ENAME VARCHAR2(20), SALARY NUMBER, EMPADDR AddressType );

  27. Base de Données Oracle On retrouve "EmployesType" dans une collection de type : CREATE TYPE EmployeeListType AS TABLE OF EmployeeType; Enfin, la table "dept" est créee, elle compte parmi ses attributs un objet et une collection d'objets : CREATE TABLE dept ( DEPTNO NUMBER, DEPTNAME VARCHAR2(20), DEPTADDR AddressType, EMPLIST EmployeeListType );

  28. Base de Données Oracle • Stockage : du schéma XML vers la base • Classe Oracle prévue "OracleXMLSave". • Capable d'insérer, mettre à jour et supprimer des données XML. • Les documents XML complexes nécessitent la • création d’une structure Oracle (objet, vue) • correspondant à l'architecture de ces documents. • Pas de "mapping" entre les attributs XML (les tags) et les champs de la base de données. • D'où la nécessité de créer une "structure d'accueil " sur mesure pour les documents XML.

  29. Base de Données Oracle Prenons les tags XML suivants : <DEPT> <DEPTNO>100</DEPTNO> <DEPTNAME>Sports</DEPTNAME> <DEPTADDR>Paris</DEPTADDR> <EMPLIST> <EMPLIST_ITEM> <EMPNO>7369</EMPNO> <ENAME>Sebastien</ENAME> <SALARY>10000</SALARY> </EMPLIST_ITEM> <!-- employes supplementaires... --> </EMPLIST> </DEPT>

  30. Base de Données Oracle • “emp_typ” Informations liées à l'employé (identifiant, nom, • salaire), correspond à <EMPLIST_ITEM>. • "empc_type" : • Décrira une "collection" d'employés, correspond à • <EMPLIST>. • "dept_type" : • Définit un département, correspond à <DEPT>. • des liaisons existent entre chacun de ces types, ils s'imbriquent ici de la manière suivante :

  31. Base de Données Oracle CREATE OR REPLACE TYPE emp_type AS OBJECT ( empno NUMBER(4), ename VARCHAR2(50), salary NUMBER(6,2) ); CREATE TYPE empc_type AS TABLE OF emp_type; CREATE TYPE dept_type AS OBJECT ( deptno NUMBER(3), deptname VARCHAR2(50), deptaddr VARCHAR2(50), employes EMPC_TYPE );

  32. Base de Données Oracle Les types étant définis, les données XML peuvent être importées et la table (objet) Oracle peut être créee : CREATE TABLE obj_dept OF dept_type NESTED TABLE employes STORE as nested_emp_table; Pour conserver une structure de tables relationnelles il faut alors passer par une vue : CREATE VIEW v_dept OF dept_type WITH OBJECT OID(deptno) AS SELECT d.deptno, d.deptname, d.deptaddr, CAST ( MULTISET ( SELECT e.empno, e.ename, e.salary FROM emp e WHERE e.deptno = d.deptno) AS empc_type) FROM dept d;

  33. Base de Données Oracle En résumé : Il existe d'autres moyens d'interfacer XML et une base de données. Cela dépend du SGBD utilisé ainsi que de la technologie que l'on souhaite employer. Du Perl en passant par le Java, les bases de données relationnelles multiplient leurs interactions avec XML, de quoi freiner un peu plus la progression des bases natives XML ?

  34. Base de données Oracle Type de donnée XMLTYPE Type objet prédéfini qui peut contenir tout un document XML en entier. On peut stocker un document XML dans une colonne d’une table ou d’une vue. Examinons la création de la table suivante : CREATE TABLE warehouses( warehouse_id NUMBER(3), warehouse_spec SYS.XMLTYPE, warehouse_name VARCHAR2(35), location_id NUMBER(4));

  35. Stockage du XML sous Oracle • Table que nous venons de créer sera stocker sous • forme CLOB (Character Large OBject) ou BLOB • (Binary Large OBject). • Une autre option est offerte qu’on peut appeler • stockage relationnel-objet. • Stockage sous forme d’objet relationnel le système • a recours à des index en B-Arbre. • Stockage en CLOB/BLOB, des index textes • permettant l’interrogation avec des commandes • SQL spécifiques.

  36. Base de données Oracle • XPath • Permet d’accéder à une partie d'un document XML • Exploité par XPointer et XSLT, XPath est une • recommandation du W3C. • Fruit de la collaboration entre les "XSL et XPointer • Working Groups", XPath doit permettre de combler • certains besoins communs de ces deux techniques : • accéder à un endroit spéficique d'un arbre XML. • XPath n'est pas seulement un langage "d'adressage", il est également constitué d'un ensemble de fonctions (chaînes de caractères, booléennes, numériques)

  37. Requêtes sous Oracle : XPath et ClobVal select e.poDoc.getClobval() AS poXML from po_xml_tab e; POXML <?xml version="1.0"?> <PO pono="2"> <PNAME>Po_2</PNAME> <CUSTNAME>Nance</CUSTNAME> <SHIPADDR> <STREET>2 Avocet Drive</STREET> <CITY>Redwood Shores</CITY> <STATE>CA</STATE> </SHIPADDR> </PO>

  38. XPATH • Appel a SQL en Utilisant Xpath SELECT w.warehouse_spec.extract ('/Warehouse/Building/text()').getStringVal() "Building" FROM warehouses w ------------------------- Building

  39. Base de données Oracle • Enrichissement du langage SQL INSERT into warehouses (warehouse_id, warehouse_spec) VALUES (1001, sys.XMLType.createXML( '<Warehouse whNo="100"> <Building>Owned</Building> </Warehouse>')); • Autres commandes : XMLSchema, ExistNode, XMLTable, XMLTransform,

  40. Dépot XML Dépôt XML (XML Repository) : • Vue gestionnaire de fichier des documents XML dans la base : Propriétaire, date de modification, version, contrôle d'accès. • Accessible à travers WebDAV, FTP, JNDI et SQL (en utilisant certains opérateurs spécifiques).

  41. Benchmarks Certains BenchMarks • Mark : XML Benchmark Project de Busse, Carey, Florescu, Kersten, Manolescu, Schmidt, et Waas. C'est un benchmark destiné aux bases de données XML natives. • Xmach-1 : XML Data Management Benchmark de Timo Boehme et Erhard Rahm de l'université de Leipzig en Allemagne.

  42. Benchmarks • Xmach-1 le plus récent et le plus connu. • Performances indépendantes des schémas • Les choix des index est déterminant et influence le résultats • Formatage relationnel des données XML plus adapté pour les grands volumes de documents

  43. Futures Développements et conférences • Futures développements • Amélioration du XML (XInclude candidate à une recommandation. • Description formelle d'un schéma XML (types de données et contraintes de structure). • Standardisation d'un langage de requête, XPath, Xquery, SQLX (Oracle et IBM), etc

  44. Futures Développements et conférences Conférences • EEXTT2002 (Efficiency and Effectiveness of XML Tools, and Techniques) (WorkShop du VLDB 20-23 août 2002), Hong Kong, Chine Sujets abordés : Stockage des données XML, Indexation et extraction, les langages de requêtes • XML Europe 2002 : "Down To Business: Getting Serious About XML" du 20 au 23 mai 2002 à Barcelone en Espagne Sujets abordés : Base de données et schémas de documents, Outils de recherche textuelles pour des documents XML complexes

  45. Conclusion • Produits en évolution • Il reste beaucoup de choses à faire (standardisation des langages de requêtes, amélioration des performances, etc.). • Plusieurs opportunités de recherche sont offertes étant donné l’intérêt tardif de la communauté des BD pour XML.

  46. Références • Ronald, Bourret. “XML and Databases”, [En ligne] http://www.rpbourret.com/xml/XMLAndDatabases.htm • World Wide Web Consortium (W3C), [En ligne]http://www.w3.org/ • Williams, Kevin et autres. "XML et les bases de données",Paris, Eyrolles, 2001, XXII, 1082 p • McLaughlin, Brett. “Java et XML”, Paris, Eyrolles, 2001, 472 p. • Obasanjo, Dare. "An exploration of XML in Database Management Systems  «  [En ligne] http://www.prism.gatech.edu/~gte855q/StoringAndQueryingXML.html • Conrad, Andrew,"A Survey of Microsoft SQL Server 2000 XML Features", [En ligne] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml07162001.asp

  47. Références(suite) • Oracle, "Oracle9i Application Developer's Guide – XML", Release 1 (9.0.1) [En ligne] http://download-west.oracle.com/otndoc/oracle9i/901_doc/appdev.901/a88894/adx05xml.htm • Software AG, "XML Database and Persistency Engines", [En Ligne] http://www.softwareagusa.com/images/news/XML Database and Persistency Engines Report (Dist).pdf • B-Bop, Xfinity™ Server, [En ligne] • http://www.b-bop.com/products_xfinity_server.htm Böhme, Timo & Erhard Rahm, Université de Leipzig, Allemagne, [En ligne] http://www.research.microsoft.com/~jamesrh/hpts2001/submissions/ErhardRahm.pdf

More Related