Test

Disponible uniquement sur Etudier
  • Pages : 5 (1007 mots )
  • Téléchargement(s) : 0
  • Publié le : 18 novembre 2011
Lire le document complet
Aperçu du document
SQL et XQuery : faire le bon choix - JDN Développeurs

Page 1 of 2

http://www.journaldunet.com/developpeur/tutoriel/sql/060902-sql-xquerycomparaison.shtml

Lancer l'impression

SQL et XQuery : faire le bon choix
Opter pour un modèle de données implique également l'adoption du langage de requête adéquat. Syntaxe, possibilité, limites : les clefs pour décider. 02/09/2006 Aujourd'huiparvenu au stade de recommandation candidate au W3C, le document XQuery 1.0 représente l'aboutissement du travail du W3C pour produire un langage de requête agissant sur les documents XML. Dans cette optique, il est donc l'équivalent XML du langage SQL, qui lui s'applique aux données contenues dans des bases de données relationnelles. La similitude ne s'arrête cependant pas là. Issu d'un projet interneà IBM, XQuery en hérite d'un grand nombre de propriétés. On constate qu'il emprunte des idées à d'autres langages de requêtes, parmi lesquels SQL. Dans un monde où la syntaxe XML devient de plus en plus présente, le langage SQL ne pouvait plus être la seule réponse aux problématiques de traitement de données. Si SQL peut parcourir des données XML, il reste conçu avant tout pour les donnéesrelationnelles, et peut rapidement être dépassé par des documents trop complexes. Les données XML, de leur côté, sont stockées de manière hiérarchique ou sous forme d'arbre. XQuery est ainsi la voie proposée par le W3C pour répondre à un certain niveau de complexité. Mais si les modèles de données sont différents, ces deux langages de requêtes de haut niveau partagent quelques similitudes, ce qui aideentre autres à passer de l'un à l'autre au sein d'un même système de stockage supportant les deux formats. Similitudes L'utilisation première d'un langage de requête est de récupérer un jeu de données parmi celles disponibles dans la base. SQL propose pour cela l'instruction SELECT, qui dispose de plusieurs précisions possibles, parmi lesquelles FROM pour choisir une table, WHERE pour filtrer lecontenu ou ORDER BY pour trier les informations extraites. Cette instruction SELECT se retrouve directement dans les expressions d'itération FLWOR de XQuery, utilisées pour parcourir et agréger les informations du document. Ces expressions sont les clauses FOR et LET (parcours des données), WHERE (filtrage des données), ORDER BY (tri des données) et RETURN (renvoi d'une donnée). Les clauses XQuerysont donc très proches de l'instruction SQL SELECT, mais, de toute évidence, adaptée à la gestion de données XML. Chaque langage peut impliquer une syntaxe de plus en plus complexe selon que les données voulues sont stockées au sein d'un grand nombre de tables, ou qu'elles supposent de traverser de nombreuses relations XML. Comparons les requêtes de chaque langage pour accéder à des donnéesstockées de manière proche. Voici la table SQL pour les clients d'une boulangerie :
Table "clients" Colonne "id" 007 1337 42 Colonne "nom" Bond, James Holmes, Sherlock Lupin, Arsène Colonne "adresse" 21, Jump Street 21b, Baker Street L'Aiguille, Creuse

Et le document XML : 1. 2. 3. Bond, James

http://www.journaldunet.com/imprimer/developpeur/tutoriel/sql/060902-sql-xquery-c... 15/11/2011

SQLet XQuery : faire le bon choix - JDN Développeurs

Page 2 of 2

4. 21, Jump Street 5. 6. 7. Holmes, Sherlock 8. 21b, Baker Street 9. 10. 11. Lupin, Arsène 12. L'Aiguille, Creuse 13. 14. Pour obtenir l'adresse du client "42", il faudrait en SQL écrire : 1. SELECT adresse FROM clients WHERE id="42" Tandis que pour XQuery, ce sera : 1. for $client in $clients/cient[id = '42'] 2.return $client/adresse Différences En dehors du langage de requête, cependant, SQL et XQuery naviguent dans des eaux bien différentes. Tout d'abord, comme indiqué précédemment, chacun agit sur un modèle de données différent : SQL pour les données relationnelles, XQuery pour les données hiérarchiques. Plus prosaïquement, SQL parcourt des collections de tuples, tandis que XQuery agit sur des...
tracking img