13.07.2013 Views

Requêtes OLAP sur une base de données XML native - Cercle ...

Requêtes OLAP sur une base de données XML native - Cercle ...

Requêtes OLAP sur une base de données XML native - Cercle ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.4 Autres langages d’interrogation 38<br />

L’avantage principal d’XQuery rési<strong>de</strong> en sa facilité d’utilisation et <strong>de</strong> compréhension, dans<br />

son typage fort <strong>de</strong>s <strong>données</strong> et sa capacité d’optimisation. En effet, les expressions FLWR sont<br />

faciles à lire et à écrire. Les différentes clauses sont bien séparées, comme en SQL. En XSLT, les<br />

règles tiennent en <strong>une</strong> seule ligne, les conditions étant mélangées avec l’expression, ce qui les rend<br />

difficiles à lire et à comprendre. XQuery utilise un typage fort <strong>de</strong>s <strong>données</strong>, ce qui permet d’avoir<br />

<strong>une</strong> programmation plus sûre, les erreurs <strong>de</strong> type étant détectées au moment <strong>de</strong> la compilation<br />

<strong>de</strong> la requête. Pour finir, <strong>de</strong> par la séparation <strong>de</strong>s clauses <strong>de</strong>s expressions FLWR, XQuery peut<br />

bénéficier d’optimisations physiques, logiques ou <strong>de</strong> réécritures comme celles proposées dans [43].<br />

4.4.2 Lorel<br />

Lorel [23] a été conçu comme un langage <strong>de</strong> requêtes pour <strong>de</strong>s <strong>données</strong> semi-structurées, puis<br />

a été étendu pour <strong>XML</strong>. Il est inspiré <strong>de</strong> SQL et <strong>de</strong> OQL. La syntaxe <strong>de</strong> <strong>base</strong> d’<strong>une</strong> requête<br />

Lorel est <strong>une</strong> expression <strong>de</strong> la forme :<br />

select constructeur<br />

from motif<br />

where filtre<br />

Un motif définit <strong>une</strong> relation en associant <strong>de</strong>s variables à <strong>de</strong>s sous-ensembles, comme en<br />

OQL, le langage <strong>de</strong>s <strong>base</strong>s <strong>de</strong> <strong>données</strong> objets. Le constructeur crée un nouvel objet complexe<br />

pour chaque tuple <strong>de</strong> cette relation. La clause where est classique, il s’agit d’un filtre.<br />

Cette syntaxe est plus déclarative que le FLWR <strong>de</strong> XQuery mais reste assez verbeuse. Lorel<br />

dispose d’expressions <strong>de</strong> chemin très puissantes (dans un graphe ou dans un arbre <strong>XML</strong>) mais<br />

n’est pas typé et repose <strong>sur</strong> <strong>une</strong> utilisation intensive <strong>de</strong> règles <strong>de</strong> conversion.<br />

4.4.3 CDuce<br />

CDuce est un langage fonctionnel pour la transformation <strong>de</strong> structures. Il est orienté <strong>XML</strong>,<br />

centré <strong>sur</strong> les types et basé <strong>sur</strong> le filtrage par expressions régulières. Il est issu d’<strong>une</strong> thèse <strong>de</strong><br />

l’ENS <strong>de</strong> Paris en 2003. CDuce [21] est élaboré <strong>sur</strong> <strong>base</strong> <strong>de</strong> XDuce (prononcez transduce), un<br />

langage fonctionnel pour la manipulation <strong>de</strong> structures <strong>XML</strong>.<br />

La particularité principale <strong>de</strong> CDuce est l’accent mis <strong>sur</strong> les types. En effet, les types sont<br />

utilisés partout : dans la validation <strong>de</strong>s requêtes, dans la sémantique <strong>de</strong>s fonctions et dans la<br />

compilation, qui est dirigée et optimisée selon les types, un peu comme XQuery.<br />

A l’heure actuelle, CDuce est encore un outil d’expérimentation et n’est pas totalement<br />

opérationnel.<br />

4.4.4 SQL/<strong>XML</strong><br />

SQL/<strong>XML</strong> [44] n’est pas, à proprement parlé, un langage d’interrogation <strong>XML</strong>. Il s’agit<br />

principalement d’extensions et <strong>de</strong> fonctions pour SQL <strong>de</strong>stinées à traiter <strong>de</strong>s documents <strong>XML</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!