XML Xquery
XML Xquery
XML Xquery
• Est-ce que XML et les technologies qui lui sont • Dans le sens d’une réponse négative: des
associées constituent une "base de données" ?
caractéristiques des BD font défaut à XML:
• Dans un sens plus large, au sens d’un système de
gestion de base de données (SGBD): XML est une – un stockage efficace,
sorte de SGBD. – les index,
• XML fournit plusieurs caractéristiques des bases – la sécurité,
de données : – les transactions,
– le stockage (les documents XML), – l’intégrité des données,
– les schémas (DTD, XML Schemas, RELAX NG, etc.),
– l’accès multi-utilisateur,
– des langages de requête (XQuery, XPath, XQL, XML-QL,
QUILT, etc.), – les déclencheurs (triggers),
– des interfaces de programmation (SAX, DOM, JDOM), – les requêtes sur plusieurs documents, etc.
...
1
17/12/2010
2
17/12/2010
3
17/12/2010
• la caractérisation de vos contenus comme orientés • Ces règles ne sont pas absolues:
données ou orientés document permet de décider du
genre de base de données à utiliser. • Les données, et particulièrement les données
semi-structurées, peuvent être stockées dans des
• Généralement: bases XML natives
• les données sont stockées dans une base traditionnelle • Inversement, les documents peuvent être stockés
– cela peut être réalisé à l’aide d’un logiciel intermédiaire dans des bases traditionnelles lorsque peu de
(middleware) ou par la base elle-même. caractéristiques spécifiques au format XML sont
– la base de données est qualifiée de compatible XML (XML- requises.
enabled).
• Les frontières entre les bases traditionnelles et les
• les documents sont stockés dans une base XML native bases XML sont floues:
– soit une base conçue spécialement pour stocker du XML, – les bases traditionnelles intègrent des capacités
– soit dans un système de gestion de contenu (content propres aux bases XML,
management system), – les bases XML natives supportent le stockage de parties
– donc une application conçue pour gérer des documents et de documents dans des bases externes (généralement des
construite au-dessus d’une base XML native. bases relationnelles).
4
17/12/2010
5
17/12/2010
6
17/12/2010
• Dans ce modèle, les types d’éléments • Le modèle est mis en correspondance avec la
possédant des attributs, les contenus base relationnelle en utilisant des techniques
d’éléments ainsi que les contenus mixtes (les de correspondance traditionnelles ou des vues
types d’éléments complexes) sont généralement d’objets en SQL3:
modélisés comme des classes. – les classes correspondent à des tables,
• Les types d’éléments contenant seulement – les propriétés scalaires à des colonnes,
des PCDATA (les types d’éléments simples), les – les propriétés de type objet/valeur correspondent
attributs et les PCDATA elles-mêmes sont à des paires du genre clé principale/clé secondaire.
modélisés comme des propriétés scalaires.
• Le modèle objet utilisé ici n’est pas le Modèle • La question de savoir si les objets du modèle
Objet de Document (DOM - Document Object sont effectivement instanciés dépend du
Model).
• Le DOM modélise le document lui-même et il est produit:
le même pour tous les documents XML, – certains produits autorisent la génération des
• Le modèle décrit ici modélise les données du classes du modèle et l’on utilise ensuite les objets
document et il est ainsi différent pour chaque instanciés à partir de ces classes dans l’application.
ensemble de documents XML conformes à un • les données sont transférées entre le document XML et
schéma XML donné. ces objets, puis entre ces objets et la base.
• Par convention, l’expression schéma XML avec un – d’autres produits utilisent les objets uniquement
"s" renvoie à n’importe quel schéma, que ce soit
une DTD, un document XML Schema comme des outils qui permettent de visualiser la
correspondance et le transfert des données
• XML Schema avec un "S" capital se réfère au
langage XML Schema du W3C. directement entre le document XML et la base.
7
17/12/2010
8
17/12/2010
XQuery: Expressions
• Expression de cheminement (XPATH): /a//b[c = 5]
• Constructeur d’élément: <a> ... </a>
• Expressions FLWR: FOR ... LET ... WHERE ...
RETURN
• Opérateurs et Fonctions: x + y, -z, foo(x, y)
• Expressions conditionnelles: IF ... THEN ... ELSE
• Conditions «Some» et «Every»: EVERY var IN expr
SATISFIES expr
• Variables et constantes : $x, 5
• Trie: expr SORTBY (expr ASCENDING , ... )
• INSERT, REPLACE, DELETE
9
17/12/2010
• Exemple de requête:
• for $b IN
document("http://www.bn.com/bib.xml")/bib/book
where $b/publisher/text() = "Addison-Wesley"
and $b/@year = « 1994 » return $b/title
Réponse obtenue de la requête:
<title>TCP/IP Illustrated</title>
10
17/12/2010
• Result:
• <result>
• <author>Jones</author>
• <title> abc </title>
• <title> def </title>
• </result>
• <result>
• <author> Smith </author>
• <title> ghi </title>
• </result>
11
17/12/2010
• Summury:
12
17/12/2010
13
17/12/2010
Implémentation de XQuery
• La majorité des constructeur commence déjà
à proposer des implémentations de Xquery
• Intégration dans l’ensemble des BDs avec
interface XML
– – Classique
– – Native XML
• Plusieurs démonstrateurs existent permettant
de valider les exemples testes proposés par le
W3C
14