Transfert de donnes XML SGBD relationnel INF 7115
Transfert de données XML => SGBD relationnel INF 7115 -10 : Bases de données Maryse Durocher Guy Lafontaine Etienne Morency-Bachand
Plan • Problématique • Solutions et produits existants • Solutions choisies – Intergiciels (middlewares) – BD relationnelles supportant XML • Analyse et comparaison • Questions
Présentation de la problématique • XML vs SGBD • Remplacement ou coopération? • Exportation / importation • Pourquoi utiliser XML? • Pourquoi utiliser une BD?
Problématique: exemple Vidéotron • Partie client en Flash – Fichier de configuration XML • Partie serveur Perl ou Java + SGBD Oracle – Données de configuration + données de participations enregistrées dans la BD
Problématique: module de votes sur illico
Problématique: module de votes (alternatives)
Problématique: solution adoptée… • Besoin XML: simplicité, contraintes technologiques, portabilité, performances • Besoin BD: accès serveur, gestion des transactions, sécurité, relationnel, index • Besoin de transfert des données du XML à la BD (importation) – Réutilisation de l’information – Risques d’erreurs réduits
Problématique: module de votes (détails)
Problématique: …solution adoptée • Solution de middleware maison (Perl) • Insertion + mise à jour • Librairies Perl XML: : *** + DBI • Souplesse, rapidité de développement : ) • Parsing spécifique, besoin de réutilisation… : (
Solutions et produits existants • • Intergiciels (middlewares) Bases de données relationnelles supportant XML Bases de données XML natives Serveurs XML Couches enveloppantes (wrappers) Systèmes à base de requêtes XML Systèmes de correspondance XML-objets
Solutions choisies • • Intergiciels (middlewares) Bases de données relationnelles supportant XML Bases de données XML natives Serveurs XML Couches enveloppantes (wrappers) Systèmes à base de requêtes XML Systèmes de correspondance XML-objets
Solutions choisies: pourquoi? • XML centré données vs XML centré document • Données => importation dans BD => intergiciel (ou outils SGBD-XML) • Documents => préservation de la structure => BD natives, wrappers, serveurs…
Solutions choisies intergiciels (middlewares) • XML-DBMS – code source libre • XMLSpy ® 2004 – produit commercial • …
Solutions choisies SGBD - XML • Oracle • …
XML-DBMS
XML-DBMS • Principale raison d’existence: XML (données) <=> BD • Perl ou Java • Besoins: XML-DBMS, JDK, SGBD, JDBC, parser XML (+ DOM ou SAX) • Clé: mapping (correspondance XML => relationnel)
XML-DBMS: mapping • XML => tables
XML-DBMS: étapes 1. Convert. Schema. java • Schema XML => DTD 2. Generate. Map. java • DTD =>. map +. sql 3. Transfer. java • . xml +. map => BD
XML-DBMS: exemple (XML) <? xml version="1. 0" encoding="ISO-8859 -1"? > <vote_config> <voting_session id="1" app="starac 2" time_start="200401150900" time_end="200402012100"> <vote_question="Quel académicien voulez-vous sauver? "/> <vote_candidate id="1" name="Wilfred"/> <vote_candidate id="2" name="Jimbo"/> <vote_candidate id="3" name="Bob"/> </voting_session> </vote_config>
XML-DBMS: exemple (DTD) <? xml version="1. 0" encoding="ISO-8859 -1"? > <!ELEMENT broadcast EMPTY> <!ATTLIST broadcast days CDATA #REQUIRED time_start CDATA #REQUIRED time_end CDATA #REQUIRED > <!ELEMENT broadcasts (broadcast+)> <!ELEMENT vote_app (broadcasts, voting_session)> <!ATTLIST vote_app CDATA #REQUIRED > <!ELEMENT vote_candidate EMPTY> <!ATTLIST vote_candidate id CDATA #REQUIRED (…)
XML-DBMS: exemple (. sql) CREATE TABLE `broadcast` (`broadcast. Order` INTEGER, `time_start` VARCHAR(255), `time_end` VARCHAR(255), `broadcasts. FK` INTEGER, `days` VARCHAR(255)) CREATE TABLE `vote_question` (…) CREATE TABLE `vote_config` (…) CREATE TABLE `voting_session` (…) CREATE TABLE `vote_candidate` (…) CREATE TABLE `broadcasts` (…) CREATE TABLE `vote_app` (…)
XML-DBMS: exemple (BD) • Structure de tables réelle…
XML-DBMS: exemple (. map) <? xml version='1. 0' ? > <!DOCTYPE XMLTo. DBMS SYSTEM "xmldbms. dtd" > <XMLTo. DBMS Version="1. 0"> <Options> </Options> <Maps> <Class. Map> <Element. Type Name="broadcast"/> <To. Class. Table> <Table Name="broadcast"/> </To. Class. Table> <Property. Map> <Attribute Name="time_start"/> <To. Column> <Column Name="time_start"/> </To. Column> (…)
XML-DBMS: exemple (Transfer. java) • Transfer. java (. xml +. map => BD) – Configuration d’une connexion ODBC – Configuration du parser XML utilisé (Oracle, Sun ou Xerces) – Compilation et: java Transfer –todbms fich. map fich. xml
XMLSpy ® 2004
XMLSpy ® 2004 • Altova - Depuis 1992 - Logiciel XML 1998 - Série Spy 1999 - 1 291 135 utilisateurs
XMLSpy ® 2004 • Développement • Service Web • Édition intelligente • Connectivité ODBC ADO
XMLSpy ® 2004 • Génération d’un schéma DTD
XMLSpy ® 2004 • Exportation du document - XML => Base de données relationnel
Oracle
Oracle XML DB - Architecture
Oracle XML DB - Architecture
Oracle XML DB - Repository
Oracle XML DB - Fonctionnalités XMLType : • Type de colonnes ou tables. • Fonctions pour créer, extraire et indexer des données XML. • Paramètre, valeur de retour ou type de variable pour PL/SQL. CREATE TABLE example 1 ( key_column VARCHAR 2(10) primary key, xml_column XMLType ); CREATE TABLE example 2 of XMLType;
Oracle XML DB – Fonctionnalités • XMLType permet de valider le document XML selon schéma. is. Schema. Valid() schema. Validate()
Oracle XML DB – Fonctionnalités public void do. Insert(Connection conn, Document doc) throws Exception { String SQLTEXT = "insert into PURCHASEORDER values (? )"; XMLType xml = null; xml = XMLType. create. XML(conn, doc); Oracle. Prepared. Statement sql. Statement = null; sql. Statement = (Oracle. Prepared. Statement) conn. prepare. Statement(SQLTEXT); sql. Statement. set. Object(1, xml); sql. Statement. execute(); }
Oracle XML DB – Fonctionnalités • Schéma XML – Entreposage structuré Vs. – Entreposage non structuré
Oracle XML DB - Fonctionnalités • XML et SQL – exists. Node() – extract. Value() – update. XML() – XMLSequence()
Oracle XML DB
Analyse et comparaison XMLSpy ® 2004 XML-DBMS Maison Oracle Internet N/A Oracle 9 i v. 2 + $59 - $999 US Coûts de dev. 521 $ - 52 000 $ * Facile Moyen Facile Apprentissage Facile-moyen Moyen Facile-moyen Documentation Beaucoup Peu, mais bien N/A Beaucoup Élevée Moyenne Très élevée N/A N/A Moyenne Faible N/A Élevée Fiable N/A Excellent (!) : ) Excellent Oui Groupes seul. Maison Oui Disponibilité Coût Utilisation Fiabilité Performance Maturité Compagnie Support technique * Par processeur…
Références • http: //www. rpbourret. com/xml/XMLAnd. Databases. htm • http: //www. rpbourret. com/xmldbms/ • http: //www. xml. com/databases/ • http: //www. xmlspy. com/manual/exportingxmldatatoextern aldata. htm • http: //otn. oracle. com/tech/xmldb/index. html
Discussion et conclusion
Questions ?
- Slides: 43