xml et bases de donn es n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
XML et bases de données PowerPoint Presentation
Download Presentation
XML et bases de données

Loading in 2 Seconds...

play fullscreen
1 / 47

XML et bases de données - PowerPoint PPT Presentation


  • 163 Views
  • Uploaded on

XML et bases de données. Pierre LAGARDE. Formation SANDRE. Données versus Documents. Documents centrés données / XML structuré. Utilisé pour les échanges de données Construit pour l’analyse par l’ordinateur Caractéristiques : Structures régulières Données faible granularité

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

XML et 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. XML et bases de données Pierre LAGARDE Formation SANDRE

    2. Données versus Documents

    3. Documents centrés données / XML structuré • Utilisé pour les échanges de données • Construit pour l’analyse par l’ordinateur • Caractéristiques : • Structures régulières • Données faible granularité • Pas de contenu mixte • L’ordre des balises n’a pas d’importance • Exemples • Données scientifiques • …

    4. Exemple de fichier XML data-centric • XML-SANDRE

    5. Document centré document/ unstructured XML • Elaboré pour la lecture “humaine” • Caractéristiques • Structures irrégulières • Données à granularité importante (un élément = le document !) • Données mixtes • L’ordre des élément est important • Souvent ne provient pas d’une base de données • Exemples • Un livre • Un document issu de Word • ..

    6. Principales solutions pour gérer du XML XML documents Files system BD XMLnative Applicationmapping XML DB BDXML- enabled Middleware XML BD Relationnel ou object

    7. Stocker et retrouver des données

    8. Solutions pour les données • Mapper la structure XML • Utilisation d’un langage XML • Utilisation de XSLT pour transformer la structure XML structure dans une structure attendue par la base de données Mapping XML documents XML- enabled database database Middleware XML structures(XML schema) Database schema

    9. Mapper les fichiers dans le schéma de la base • Le mapping concerne • Les éléments, attributs et textes • Ignore la structure physique (CDATA sections, encoding,…) • Ignore les structures logiques (processing instructions, comments, order,…) • 2 approches du mapping • Table-Based mapping • Object-relational mapping Un ”import et un export” ne crée pas le même fichier (mais les mêmes données)

    10. Table-based mapping • Transférer les données dans les tables relationnelles <Parametre> <CdParametre>1340</CdParametre> <NomParametre>Nitrates</NomParametre> <StParametre>Valid&#233;</StParametre> <DateCreationParametre>1987-06-01</DateCreationParametre> <DateMajParametre>2004-12-20T00:00:00</DateMajParametre> <AuteurParametre>DIREN de bassin ILE-de-FRANCE et CENTRE</AuteurParametre> <LbCourtParametre>NO3-</LbCourtParametre> <LbLongParametre>Nitrates</LbLongParametre> <MethodeAnalyse> <CdMethode>24</CdMethode> <NomMethode>Essais des eaux – Dosage colorim&#233;trique des ions nitrate NF T 90-012 - F&#233;vrier 1952)</NomMethode> </MethodeAnalyse> <MethodeAnalyse> <CdMethode>25</CdMethode> <NomMethode>Essais des eaux - Dosage des nitrates (NF T 90-012 - Ao&#251;t 1975)</NomMethode> </MethodeAnalyse> </Parametre> Parameter Methods

    11. Table-based mapping avec Oracle • En deux opérations • Java OracleXML getXML –conn “jdbc:oracle:thin@localhost:1521:orcl” –user “system/admin” “select * from parametres” <database> <table> <row> <column1>...</column1> <column2>...</column2> ... </row> <row> ... </row> ... </table> <table> ... </table> ... </database> La structure XML XSLT OracleXML(XSU)

    12. Demonstration with Oracle • Need Oracle 8i, 9i or 10g • Creates (or exists) a specific schema (relational) • To show XML documents : Java OracleXML getXML –user “system/admin” “select * from parametres” • To put XML Documents : Java OracleXML putXML –user “system/admin” -fileName “nvpara.xml” “parametres”

    13. Object-Relational mapping • Modélisation des données comme des arbres d’objets <Parametre> <CdParametre>1340</CdParametre> <NomParametre>Nitrates</NomParametre> <StParametre>Valid&#233;</StParametre> <DateCreationParametre>1987-06-01</DateCreationParametre> <DateMajParametre>2004-12-20T00:00:00</DateMajParametre> <AuteurParametre>DIREN de bassin ILE-de-FRANCE et CENTRE</AuteurParametre> <LbCourtParametre>NO3-</LbCourtParametre> <LbLongParametre>Nitrates</LbLongParametre> <MethodeAnalyse> <CdMethode>24</CdMethode> <NomMethode>Essais des eaux – Dosage colorim&#233;trique des ions nitrate NF T 90-012 - F&#233;vrier 1952)</NomMethode> </MethodeAnalyse> <MethodeAnalyse> <CdMethode>25</CdMethode> <NomMethode>Essais des eaux - Dosage des nitrates (NF T 90-012 - Ao&#251;t 1975)</NomMethode> </MethodeAnalyse> </Parametre> XML document Objects view Database XMLdatabinding Object/relational

    14. Object-Relational mapping dans Oracle • 2 solutions • Use Object view • XMLType • Demonstration of object view • Demonstration of XMLTYPE… a native XML in Oracle ? • Very complex to create…

    15. Les langages de requêtes • Permettre d’extraire des données XML d’une base de données • Trois approches : • Un développement spécifique • Un langage SQL amélioré • Un langage XML Query <Parametre> <CdParametre>1340</CdParametre> <NomParametre>Nitrates</NomParametre> <StParametre>Valid&#233;</StParametre> <DateCreationParametre>1987-06-01</DateCreationParametre> <DateMajParametre>2004-12-20T00:00:00</DateMajParametre> <AuteurParametre>DIREN de bassin ILE-de-FRANCE et CENTRE</AuteurParametre> <LbCourtParametre>NO3-</LbCourtParametre> <LbLongParametre>Nitrates</LbLongParametre> <MethodeAnalyse> <CdMethode>24</CdMethode> <NomMethode>Essais des eaux – Dosage colorim&#233;trique des ions nitrate NF T 90-012 - F&#233;vrier 1952)</NomMethode> </MethodeAnalyse> <MethodeAnalyse> <CdMethode>25</CdMethode> <NomMethode>Essais des eaux - Dosage des nitrates (NF T 90-012 - Ao&#251;t 1975)</NomMethode> </MethodeAnalyse> </Parametre> Parameter Methods

    16. Un langage SQL amélioré • Utilisé le SQL avec de nouvelles commandes • SQL / XML : une évolution de ANSI/ISO SQL 2003 • Exemple : • select XMLElement("Code",code_parametre) from parametres • Select XMLElement("Parametre",XMLElement("CodeParametre",XMLAttributes('SANDRE' as "schemeAgency"),code_parametre),XMLElement("NomParametre",nom_parametre)) from parametres

    17. Langage XML Query • Un langage de programmation pour interroger des collections de données XML • XQuery • Développé par W3C (Working Draft in 2005) • Utilisation XPATH • Sources multiples • Spécifique à XML

    18. Principes XQUERY • FLWR Expressions • For …. Let ….Where …Return …. • Exemples • let $a := input()/SI_DC return <p>Actually, there are { count($a) } networks.</p> • for $a in input()/SI_DC/Bdd where $a/TypeBdd/CdTypeBanque = '3‘ return $a • for $a in input()/SI_DC/Bdd, $b in input()//BddRdd where $b/Bdd/CdBdd=$a/CdBdd return <Bdd>{$b/Bdd/CdBdd}{$a/LbBdd}</Bdd>

    19. Principes XQUERY • Tri • Fonctions d’update • update replace input()/SI_DC/DispositifCollecte/MnRdd[.="RBESOUQAP"] with <MnRdd>test</MnRdd> • for $a in input()//DispositifCollecte return $a/MnRdd • Recherche de texte

    20. Stocker et retrouver des documents

    21. Principals solutions to store XML documents XML documents Files system Native XMLdatabase Applicationmapping XML DB XML- enabled database XMLMiddleware Relational databaseobject-oriented database

    22. Stockage Files system • Très simple • Outils comme grep pour accéder XML • Pas très performant

    23. Stocker les fichiers dans un BLOB • Mapper les documents XML dans un champ binaire : BLOB • Utilisation des technologies full-text XML documents BINARY Database schema XML documents(no structured)

    24. Utilisation des BLOBs • Avantages • transactionnel • Sécurité • multiutilisateur • Administration • Quelques produits sont are XML-aware • Elimine le problème des tags • Compatible avec le langage XQUERY Oracle 9i+Db2

    25. Utilisation d’une base native XML • Une base de données optimisée pour le stockage XML • Utilise uniquement des XML technologies : XPath, XQuery,… XML documents XML native database XML documents(no structured)

    26. Définition d’une base de données XML native • Un terme marketing de Tamino et non une définition technique. • Définition • Un modèle logique pour des documents XML • XML document = l’unité de base du stockage (= une ligne en BD relationnel) • Pas de modèle particulier pour le stockage physique

    27. Native XML Database Architecture • Text-Based Native XML Database • Store XML as text • File system, BLOB, … • Indexes of all text • Speed advantage when retrieving entire documents • Slow to find pieces of many documents • Model-Based Native XML Database • Store XML documents in an internal object model • Performance similar to text-based • Less slower to find pieces of many documents Similar to a hierarchical database

    28. Features of Native XML Databases • Document Collections • Notion of collection (=table in an relational database) • Hierarchy of collections like directories in an file system • Query Languages • Support one or more query languages • XPath, XQuery,… • Transactions, Locking and Concurrency • Support transactions • Locking at the level of entire documents • In the future, locking at the level of elements,…

    29. Features of Native XML Databases • Application Programming Interface : API • Offer programmatic APIs • Proprietary APIs • XQuery for Java • Most XML Databases offer the ability to execute HTTP queries • Round-tripping • Store an XML document and get the “same” document back again • Remote data / repository • Some database include remote data and repository

    30. Features of native XML Databases • Indexes • A way to increase query speed • Structural indexes • Full-text indexes • External entity storage • The problem to store external entities

    31. An example : Tamino (Software AG) • A server oriented native XML Database • Features • Proprietary Model-based storage • Storage and search data with Query interpreter • Based from XML Standards • Connexion with XML softwares

    32. An example : Tamino (Software AG) • XML Engine • Native XML storage • Query processors • XQuery • X-Query (!) • XML Datamap • Metadata about XML documents • Describes where the data in a given XML document is stored • X-Tension • access various external applications • Management / Security

    33. Demonstration Tamino

    34. An example : eXist http://exist.sourceforge.net/ • An OpenSource native XML database • Features • Proprietary Text-based storage (B+-trees and paged files) • Hierarchical collections • Automatic Indexes • Supports XQuery • Full-text search • Work with HTTP / Java • Support XUpdate • No transaction support

    35. Demonstration eXist

    36. eXist : example of SANDRE • Store schemas XML published by the SANDRE • Find markup and characteristics • Download schemas • Parse XML documents

    37. An example SANDRE • Schema = an XML document • DB Schema = XML database eXist • Search and publish tags = XQuery

    38. The market for XML database products • Categories of XML products • Middleware : Software you call from your application to transfer data between XML documents and databases • XML-enabled database • Native XML database • XML Servers : XML-aware J2EE servers, Web application servers, integration engines, and custom servers. • Wrappers : Software that treats XML documents as a source of relational data. These products typically query XML documents using SQL. • XML Query engines : Standalone engines that can query XML documents • XML Data bindings : Products that can bind XML documents to objects. Some of these can also store/retrieve objects from the database.

    39. Products : Middleware • Lot of products !

    40. Products : XML-Enabled database • Main databases are XML-Enabled… • … if you buy recent versions • … with important differences in the implementation of XML features

    41. Products : Native XML database • Lot of opensource implementations… • Commercial ?

    42. XML Servers Cocoon (Apache) ColdFusion (Macromedia) Zope (OpenSource) XQuery engine BQ-XQuery engine Web Logic Integration XQuery engine DataDirect XQuery™ XQEngine XQuery for .NET XQuery Processor Data bindings Castor JAXB for Java Jakarta (Apache) XDK Oracle XML definition tool (.net) Wrappers SQLServer DB2 Information Integrator Products : others

    43. Very used ! Rules to organise data (modelling data) and manages the RDMS Efficient with data Allow all types of search SQL standard Complex (and slow) to find hierarchical data (with join,…) Bad performance with document Need engine to generate and understand XML documents Advantages / Disadvantages of relational database

    44. A database to store relational AND XML documents Rules to organise data (modelling data) and manages the DDMS Efficient with data and to mapping XML Data SQL extension  less new skills to be acquired Complex to manage Data type conversion and Null data Binary data ? Character Sets Advantages / Disadvantages of XML-Enabled database

    45. All is made to manage XML documents Efficient to store and use XML documents Performance to find an document or an fraction of document XQuery / XPath No mandatory normalization Problem of referential Integrity Less good performances when you search pieces of documents Scability Tools to develop applications Others types of data ? New skills Advantages / Disadvantages of native XML database

    46. Comparison relational, XML-enabled, Native

    47. Links about XML Databases • XML family : www.w3c.org • Introduction to native XML database : http://www.xml.com/pub/a/2001/10/31/nativexmldb.html • History of XML database : http://www.eaijournal.com/PDF/XMLMcGoveran.pdf • XQuery : http://www.xml.com/pub/a/2002/10/16/xquery.html • Oracle : http://www.oracle.com/technology/tech/xml/index.html • Tamino : http://www1.softwareag.com/Corporate/products/tamino/default.asp • XIndice : http://xml.apache.org/xindice/ • eXist : http://exist.sourceforge.net/ • SANDRE : www.sandre.eaufrance.fr • XML-EAU : http://www.sandre.eaufrance.fr/francais/frame/sagen.htm?page=../../xmleau/index.html