XML et Bases de données.
Les bases de données XML natives.
G. Defrain - 19/06/2008
Introduction.
Une définition de l'expression « Base de données XML Native » :
Une base de données XML native définit un modèle (logique) de document XML [modèle est ici opposé aux données du document], et stocke et retrouve les documents en fonction de ce modèle. Le modèle doit au minimum inclure les éléments, les attributs, les PCDATA et l’ordre interne du document. Quelques exemples de tels modèles sont : le modèle de données de XPath, le glossaire XML Infoset, et les modèles implicites de DOM et des événements de SAX 1.0.
Le document XML est l’unité fondamentale du stockage (logique) dans une base de données XML native, tout comme une ligne d’une table constitue l’unité fondamentale du
Qu'est ce que le XML Natif.
Qu'est ce que le XML Natif.
Document orienté données ou orienté document.
● Orienté données : documents qui utilisent le XML comme vecteur de données. Ils sont conçus pour être exploités par une machine et le fait que XML soit utilisé est généralement accessoire.
● Orienté document : documents conçus pour être utilisés par des humains. Ils sont ordinairement écrits manuellement en XML ou sous d’autres formats tels que RTF, PDF ou SGML, puis ils
Qu'est ce que le XML Natif.
Pourquoi le XML natif ?
G. Defrain - 19/06/2008
● Besoin de plus de fonctionnalités.
● Pour stocker des contenus plutôt orientés documents.
● Pour stocker des documents dont le format naturel est XML (sans avoir besoin d'en connaitre le schéma).
Qu'est ce que le XML Natif.
Caractéristiques des BDD XML Natives.
●
Les collections de document:
- une collection équivaut à une table dans un système relationnel ou à un dossier dans un système de fichiers.
- possibilité d'imbriquer les collections.
Qu'est ce que le XML Natif.
Caractéristiques des BDD XML Natives.
G. Defrain - 19/06/2008
●
Les langages de requêtes:
- indispensable pour toutes les base de données.
- langage utilisé : XQuery, XPath, XQL ou langage propriétaire.
Qu'est ce que le XML Natif.
Caractéristiques des BDD XML Natives.
●
Les mises à jour et effacements:
- grande diversité de stratégie pour les réaliser en fonction des bases.
- chaque produit possède son langage.
- consensus vers XUpdate du XML:DB Initiative.
Qu'est ce que le XML Natif.
Caractéristiques des BDD XML Natives.
G. Defrain - 19/06/2008
●
Transaction, verrouillage et accès concurentiel:
- la plupart des bases de données supportent les transactions (commit + rollback).
- problème de verrouillage qui se fait généralement au document.
Qu'est ce que le XML Natif.
Caractéristiques des BDD XML Natives.
● Les
API:
- très utiles notamment pour les contenus orientés données.
- prennent la forme d'interface semblable à JDBC.
- API XML:DB indépendante des fournisseurs devraient se développer dans les années à venir.
Qu'est ce que le XML Natif.
Caractéristiques des BDD XML Natives.
G. Defrain - 19/06/2008
●
L'aller retour de documents (Round-Tripping):
- possibilité de récupérer le « même » document que l'on a stocké dans la base.
- récupération de l'ordre des éléments, des commentaires, des sections CDATA.
Qu'est ce que le XML Natif.
Caractéristiques des BDD XML Natives.
●
Les index:
- indexation des éléments et attributs pour accélérer les recherches.
- suivant les bases, possibilité de donner des priorités aux index.
Exemple de BDD XML Natives.
Exemple de BDD XML Natives.
eXist.
● Langage de requête : supporte XQuery et Xpath.
● API : possibilité d'utiliser l'API XML DB.
● Indexation : index tout les éléments mais peut être configuré assez finement.
Exemple de BDD XML Natives.
eXist.
G. Defrain - 19/06/2008
● Permet les accès multi-utilisateurs mais pas les transactions.
● S'intègre facilement à un environnement JAVA mais peut fonctionner avec beaucoup de langage.
● Gestion du langage de mise à jour XUpdate.
● Possibilité d'utiliser XPointer et Xinclude.
● Très bien documenté.
Exemple de BDD XML Natives.
XIndice.
● Langage de requête : Xpath mais permet de faire des requêtes multi-documents.
● API : possibilité d'utiliser l'API XML DB.
● Indexation : index tout les éléments et permet de faire de la compression de données.
Langage utilisé par les BDD XML.
Langage utilisé par les BDD XML.
XUpdate.
● Langage de mise-à-jour déclarative.
● Le programme de mise-à-jour est un document XML.
● Un programme de mise-à-jour est un élément de type modifications qui contient une séquence d’ordres de
mise-à-jour.
Langage utilisé par les BDD XML.
XUpdate
G. Defrain - 19/06/2008
● Document d'origine :
<?xml version="1.0"?>
<addresses version="1.0">
<address id="1">
<name>Andreas Laux</name>
<born day=’1’ month=’12’ year=’1978’/>
<town>Leipzig</town>
</address>
</addresses>
Langage utilisé par les BDD XML
XUpdate
<xup:modifications version="1.0"
xmlns:xup="http://www.xmldb.org/xup">
<xup:remove select="/addresses/address[1]/born" />
<xup:rename select="/addresses/address[1]/name" >
fullname
</xup:rename>
<xup:append select="/addresses/address[1]/town" >
<xup:element name="country">
Germany
</xup:element>
Langage utilisé par les BDD XML
XUpdate
G. Defrain - 19/06/2008
● Document résultat :
<?xml version="1.0"?>
<addresses version="1.0">
<address id="1">
<fullname>Andreas Laux</fullname>
<town>Leipzig</town>
<country>Germany</country>
</address>
</addresses>
Langage utilisé par les BDD XML
XUpdate
<xup:modifications version="1.0"
xmlns:xup="http://www.xmldb.org/xup">
<xup:insert-after select="/addresses/address[1]" >
<xup:element name="address">
<xup:attribute name="id">
<xup:value-of select="/addresses/address[1]/@id+1"/>
</xup:attribute>
<fullname>Lars Martin</fullname>
<born day=’2’ month=’12’ year=’1974’/>
<town>
Langage utilisé par les BDD XML
XUpdate
G. Defrain - 19/06/2008
● Document résultat :
<?xml version="1.0"?>
<addresses version="1.0">
<address id="1">
<fullname>Andreas Laux</fullname>
<town>Leipzig</town>
<country>Germany</country>
</address>
<address id="2">
<fullname>Lars Martin</fullname>
<born day=’2’ month=’12’ year=’1974’/>
<town>Leipzig</town>
</address>
</addresses>
Langage utilisé par les BDD XML
XLink - XPointer.
● Permettent la définition de lien dans les fichiers XML.
● N'importe quel élément XML peut devenir un lien.
● Les liens peuvent relier plus de deux ressources, être bi-
directionnels, multi-directionnels et externes aux documents liés.
Langage utilisé par les BDD XML
XPointer.
G. Defrain - 19/06/2008
● Permet de définir des liens internes à l'application.
● Pas besoin de créer d'ancre l'id d'un élément suffit .
● Permet de lier vers des éléments résutats d'une requête XPath.
Langage utilisé par les BDD XML
XLink.
● Permet de définir des liens externes à l'application.
● Une série d'attributs de type xlink: permet de définir le comportement.
Langage utilisé par les BDD XML
XLink.
G. Defrain - 19/06/2008
Le calendrier de la formation est disponible.
<CREATEUR xlink:type="simple"
xlink:href="http://www.fil.univ-lille1.fr/"
xlink:actuate="onRequest"/>
<IMAGE xlink:type="simple"
xlink:href="fil/logo.gif"
xlink:show="embed"
xlink:actuate="onLoad"/>
Langage utilisé par les BDD XML
XInclude.
● Permet d'inclure un fichier XML dans un autre.
● Il est possible d'inclure uniquement une partie du document XML en utilisant XPointer.