Vous êtes sur la page 1sur 9

Rpublique Algrienne Dmocratique et Populaire

Universit Dr Tahar Moulay Saida


Facult de technologie
Dpartement dInformatique

XQuery

Prpar par :
Awad Samir

1re anne master RISR


2014 - 2015

Table des matires


1.

Introduction ........................................................................... 2

2.

Les bases de XQuery ............................................................... 2

2.1.

Expressions de chemin........................................................... 2

2.2.

Constructeurs d'lments ...................................................... 3

2.3.

Expressions FLWOR................................................................ 3

2.4.

Expressions conditionnelles ................................................... 5

3.

Conclusion .............................................................................. 6

Annexe : Document bib.xml ........................................................... 7


Rfrences ..................................................................................... 8

1. Introduction:
Les systmes de bases de donnes relationnelles sont devenus trs
performants, surtout pour maintenir des gros volumes de donnes. Avec un
standard tel que SQL, il semble drisoire de vouloir dfinir un nouveau
contexte de requtes.
Toutefois, dans un contexte o les donnes sont dj structures par XML, il
peut se rvler intressant de disposer d'un langage permettant de faire des
requtes directement sur cette structure de donnes. C'est le but du langage
de requte XML (XQuery).

2. Les bases de XQuery:


2.1. Expressions de chemin:
Elles sont bases sur la syntaxe de XPath, le standard XML pour dcrire des
chemins dans un document XML.
Requte:
document("bib.xml")//author
Rsultat:
<author><la>Amann</la><fi>B.</fi></author>,
<author><la>Rigaux</la><fi>P.</fi></author>,
<author><la>Rigaux</la><fi>P.</fi></author>,
<author><la>Scholl</la><fi>M.</fi></author>,
<author><la>Voisard</la><fi>A.</fi></author>,
<author><la>Abiteboul</la><fi>S.</fi></author>,
<author><la>Buneman</la><fi>P.</fi></author>,
<author><la>Suciu</la><fi>D.</fi></author>

2.2. Constructeurs d'lments:


Utiliss quand une requte doit crer de nouveaux lments. Les accolades
permettent de placer une expression au sein d'un constructeur.
Requte:
<auteurs>
{ document("bib.xml")//book[2]/author/la }
</auteurs>
Rsultat:
<auteurs>
<la>Rigaux</la>
<la>Scholl</la>
<la>Voisard</la>
</auteurs>

2.3. Expressions FLWOR:


Une expression FLWOR (on dit "flower"):
-

Itre sur des squences (For)


Dfinit des variables (Let)
Applique des filtres (Where)
Trie les rsultats (Order by)
Construit et retourne un rsultat (Return)
Itration : for:
for $var in exp
Affecte la variable $var successivement chaque item dans la
squence retourne par exp.
Requte:
for $a in document("bib.xml")//author[la eq "Voisard"]
return $a
3

Rsultat:
<author><la>Voisard</la><fi>A.</fi></author>
Affectation densembles: let:
let $var := exp
Affecte la variable $var la squence entire retourne par exp.
Requte:
for $b in document("bib.xml")//book[1]
let $al := $b/author
return <livre nb_auteurs="{count($al)}">
{ $al }
</livre>
Rsultat:
<livre nb_auteurs="2">
<author><la>Amann</la><fi>B.</fi></author>
<author><la>Rigaux</la><fi>P.</fi></author>
</livre>
Slection : where:
where exp
Permet de filtrer le rsultat par rapport au rsultat boolen de
lexpression exp.
Requte:
<livre>
{ for $a in document("bib.xml")//book
where $a/author[1]/la eq "Abiteboul"
return $a/@title
}
</livre>
Rsultat:
<livre title="Data on the Web"/>
Trier avec Order by:
expr1 order by expr2 (ascending | descending)?

Trier les lments de la squence retourne par lexpression expr1


selon les valeurs retournes par expr2.
Requte:
<livres>
{ for $b in document("bib.xml")//book
order by $b/@year
return <livre> { $b/@title, $b/@year } </livre>
}
</livres>
Rsultat:
<livres>
<livre title="Comprendre XSLT"/>
<livre title="Data on the Web" year="2000"/>
<livre title="Spatial Databases" year="2001"/>
</livres>

2.4. Expressions conditionnelles:


XQuery autorise l'utilisation des expressions IF/THEN/ELSE.
Requte:
<livres>
{ for $b in document("bib.xml")//book
where $b/author/la = "Rigaux"
return if ($b/@year > 2000)
then <livre recent="true"> {$b/@title} </livre>
else <livre> {$b/@title} </livre>
}
</livres>

Rsultat:
<livres>
<livre title="Comprendre XSLT"/>
<livre recent="true" title="Spatial Databases"/>
</livres>

3. Conclusion:
XQuery, le langage de requte XML est XML ce que SQL pour
les bases de donnes relationnelles. Il reprsente le standard le
plus important produit par le W3C (World Wide Web Consortium).

Annexe : Document bib.xml


<bib>
<book title="Comprendre XSLT">
<author><la>Amann</la><fi>B.</fi></author>
<author><la>Rigaux</la><fi>P.</fi></author>
<publisher>OReilly</publisher>
<price>28.95</price>
</book>
<book year="2001" title="Spatial Databases">
<author><la>Rigaux</la><fi>P.</fi></author>
<author><la>Scholl</la><fi>M.</fi></author>
<author><la>Voisard</la><fi>A.</fi></author>
<publisher>Morgan Kaufmann Publishers</publisher>
<price>35.00</price>
</book>
<book year="2000" title="Data on the Web">
<author><la>Abiteboul</la><fi>S.</fi></author>
<author><la>Buneman</la><fi>P.</fi></author>
<author><la>Suciu</la><fi>D.</fi></author>
<publisher>Morgan Kaufmann Publishers</publisher>
<price>39.95</price>
</book>
</bib>
7

Rfrences
[1]. Le langage de requte XML : XQuery
Disponible sur:
http://abderrazakmkadmi.free.fr/liens/coursXML/xml_db/xquery.htm
[2]. Dan VODISLAV XQuery
Disponible sur:
http://depinfo.u-cergy.fr/~vodislav/Licence/XML/fichiers/xquery.pdf