47
1 XML et bases de données Formation SANDRE Pierre LAGARDE

1 XML et bases de données Formation SANDRE Pierre LAGARDE

Embed Size (px)

Citation preview

Page 1: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

1

XML et bases de données

Formation SANDRE

Pierre LAGARDE

Page 2: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

2

Données versus Documents

Page 3: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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– …

Page 4: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

4

Exemple de fichier XML data-centric

XML-SANDRE<Prelevement> <CdPrelevementCommanditaire>06036970 - 01012004 - TEST PES_EAU</CdPrelevementCommanditaire> <NumeroOrdrePrelevement>1</NumeroOrdrePrelevement> <JourPrel>01</JourPrel> <MoisPrel>01</MoisPrel> <AnneePrel>2004</AnneePrel> <PrecisionDatePrel>5</PrecisionDatePrel> <StationPrelevement> <CdStationPrelevement schemeAgencyID="1">06036970</CdStationPrelevement> </StationPrelevement> <Support> <CdSupport>3</CdSupport> </Support> <Preleveur> <Intervenant> <CdIntervenant schemeAgencyID="SIRET">41054531300018</CdIntervenant> </Intervenant> </Preleveur> <Echantillon> <DestinataireEchant> <Intervenant> <CdIntervenant schemeAgencyID="SIRET">22260001700081</CdIntervenant> </Intervenant> </DestinataireEchant> <Analyse> <NoAna>1</NoAna> <InsituAna>2</InsituAna> <Parametre> <CdParametre>1264</CdParametre> <NomParametre>2 4 5 T</NomParametre> </Parametre> <FractionAnalysee> <CdFractionAnalysee>23</CdFractionAnalysee> </FractionAnalysee> <Methode> <CdMethode>386</CdMethode> </Methode> <UniteReference> <CdUniteReference>133</CdUniteReference> <LbUniteReference>µg/l</LbUniteReference> </UniteReference> </Analyse> <Analyse> <NoAna>1</NoAna> <InsituAna>2</InsituAna> <Parametre>

Page 5: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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– ..

Page 6: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

6

Principales solutions pour gérer du XML

XML documents

Files system

BD Relationnel ou object

XML DBBD

XML- enabled

BDXML- enabled

BD XMLnative

BD XMLnative

Applicationmapping

Applicationmapping

Middleware XML

Middleware XML

Page 7: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

7

Stocker et retrouver des données

Page 8: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

8

Solutions pour les données

XML documents

XML- enabled database

Mapping

XML structures

(XML schema)Database schema

Mapper la structure XMLUtilisation d’un langage XML Utilisation de XSLT pour transformer la structure XML structure dans une structure attendue par la base de données

databaseMiddlewareMiddleware

Page 9: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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)

Un ”import et un export” ne crée pas le même fichier (mais les mêmes données)

Page 10: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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 nitrateNF 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

Page 11: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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>

OracleXML(XSU)

La structure XML

XSLT

Page 12: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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”

Page 13: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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 nitrateNF 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>

0..*

0..*MethodeAnalyse

<<complexType>>

PARAMETRE : 1

+++++++++++++

Code du paramètreNom du paramètreStatut du paramètreDate de création du paramètreDate de la dernière mise-à-jour du paramètreAuteur du paramètreLibellé court du paramètreLibellé long du paramètreDéfinition du paramètreRéférences bibliographiques sur le paramètreCommentaires sur le paramètreNom international du paramètreParamètre calculé

: IdentifierType: TextType: TextType: DateType: DateTimeType: TextType: TextType: TextType: TextType: TextType: TextType: TextType: CodeType

<<complexType>>

METHODE : 4

++++++++++

Code de la méthodeNom de la méthodeStatut de la méthodeDate de création de la méthodeDate de la dernière mise-à-jour de la méthodeAuteur de la méthodeRéférences de la méthodeCommentaires sur la méthodeLibellé long de la méthodeNom international de la méthode

: IdentifierType: TextType: TextType: DateType: DateTimeType: TextType: TextType: TextType: TextType: TextType

XML document

Objects view

DatabaseXMLdata

bindingObject/

relational

Page 14: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

14

2 solutions– Use Object view– XMLType

Demonstration of object view

Demonstration of XMLTYPE… a native XML in Oracle ?

Very complex to create…

Object-Relational mapping dans Oracle

Page 15: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Parameter

Methods

<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 nitrateNF 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>

Page 16: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Page 17: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Page 18: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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>

Page 19: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Page 20: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

20

Stocker et retrouver des documents

Page 21: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

21

Principals solutions to store XML documents

XML documents

Files system

Relational databaseobject-oriented database

XML DBXML- enabled

databaseXML- enabled

database

Native XMLdatabase

Native XMLdatabase

Applicationmapping

Applicationmapping

XMLMiddleware

XMLMiddleware

Page 22: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

22

Stockage Files system

Très simple

Outils comme grep pour accéder XML

Pas très performant

Page 23: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

23

Stocker les fichiers dans un BLOB

XML documents

XML documents(no structured)

Database schema

Mapper les documents XML dans un champ binaire : BLOB

Utilisation des technologies full-text

BINARY

Page 24: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

24

Avantages– transactionnel– Sécurité– multiutilisateur– Administration

Quelques produits sont are XML-aware– Elimine le problème des tags– Compatible avec le langage XQUERY

Utilisation des BLOBs

Oracle 9i+Db2

Oracle 9i+Db2

Page 25: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

25

Utilisation d’une base native XML

XML documents

XML documents(no structured)

XML native database

Une base de données optimisée pour le stockage XMLUtilise uniquement des XML technologies : XPath, XQuery,…

Page 26: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Page 27: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Similar to a hierarchical database

Page 28: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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,…

Page 29: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Page 30: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Page 31: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

31

An example : Tamino (Software AG)

A server oriented native XML DatabaseFeatures

– Proprietary Model-based storage

– Storage and search data with Query interpreter

– Based from XML Standards

– Connexion with XML softwares

Page 32: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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

Page 33: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

33

Demonstration Tamino

Page 34: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

34

An example : eXist http://exist.sourceforge.net/

An OpenSource native XML databaseFeatures– 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

Page 35: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

35

Demonstration eXist

Page 36: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

36

eXist : example of SANDRE

Store schemas XML published by the SANDRE

Find markup and characteristics

Download schemas

Parse XML documents

Page 37: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

37

An example SANDRE

Schema = an XML document

DB Schema = XML database eXist

Search and publish tags = XQuery

Page 38: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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.

Page 39: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

39

Products : Middleware

Lot of products !

ADO Microsoft DBXML XML DB

XML SQL Utility for Java

Oracle DBXML XML DB

XSQL Servlets Oracle DBXML XML DB

Castor (Java) OpenSource DBXML XML DB

Alliance XML/400 (AS/400)

Patrick Townsend DBXML XML DB

Pear_XML (php) Opensource DBXML XML DB

Page 40: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

40

Products : XML-Enabled database

Main databases are XML-Enabled…

… if you buy recent versions

… with important differences in the implementation of XML features

ACCESS (2000+) Microsoft Relational

DB2 IBM Relational

Informix IBM Relational

Oracle 8i,9i, 10g Oracle Relational

SQL Server (2000+) Microsoft Relational

Sybase ASE Sybase Relational

Page 41: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

41

Products : Native XML database

Lot of opensource implementations…

Commercial ?

Tamino Sofware AG Proprietary model

Sonic XML Server Sonic software Object-oriented

dbXML OpenSource Proprietary model

eXist OpenSource Text model

Berkeley DB XML OpenSource Key-value

ozone OpenSource Object-oriented

XIndice (Apache) OpenSource Proprietary (Model-based)

Page 42: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

42

Products : others

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

Page 43: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

43

Advantages / Disadvantages of relational database

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

Page 44: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

44

Advantages / Disadvantages of XML-Enabled database

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

Page 45: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

45

Advantages / Disadvantages of native XML database

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

Page 46: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

46

Comparison relational, XML-enabled, Nativeyours needs Relational DB XML-Enabled DB Native XML DB

Database to store very structured data. Complex and different queries / analysis,…Lot of data

The best solutionAllow to answer all

queries with the good average performance

Why not ?

To allow to exchange with XML

formats

?

Database to store XML documents. Always the equivalent queries

XML documents = a binary information

Not optimized

A good solution allowing to use the

same database

The best solution.

Database to store structured data. Lot of import / export in XML exchanges.

A “classical” solution. Need import / export

interface

A good solution A good solution. Allow to have

quickly a database

Database to store structured data and to publish information (HTML, PDF, WebServices,…)

A “classical” solution but need

to develop tools to publish information

The best solution. Store in relational

database but allows the push of XML Documents and transformation

Why not if you succeed in

organizing your data

Page 47: 1 XML et bases de données Formation SANDRE Pierre LAGARDE

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