BD2 TP5 : XQuery
Transcription
BD2 TP5 : XQuery
BD2 TP5 : XQuery Yoann Couillec 30 mars 2015 1 Introduction Le but de ce TP est d’apprendre à manipuler le langage de requête XQuery. XQuery s’exécute sur des fichiers de données XML. 2 Installation Installer le logiciel BaseX (http://files.basex.org/releases/). Pour ceux qui ont Mac, exécuter le fichier JAR est suffisant. Pour Windows, installer avec le fichier .exe. Importer les fichiers movies_alone.xml et artists_alone.xml. 3 Langage XQuery 3.1 Exemple de requête let $ms:=doc("movies_alone.xml") return <movies> { for $m in $ms/movies/movie return <movie> {$m/title} </movie> } </movies> Résultat : <movies> <movie> <title>A History of Violence</title> </movie> ... 1 3.2 Question 1 Le titre et l’année des films sortis après 2002. <movies> <movie> <title>A History of Violence</title> <year>2005</year> </movie> ... 3.3 Question 2 Le nom de tous les rôles avec le titre du film. <results> <result> <title>A History of Violence</title> <role>Tom Stall</role> </result> ... 3.4 Question 3 Le nom du film dans lequel le réalisateur est aussi acteur. <results> <result> <title>Unforgiven</title> </result> </results> 3.5 Question 4 Une liste des genres avec les titres des films correspondant. <results> <genre name="Action"> <title>Spider-Man</title> </genre> <genre name="Crime"> <title>A History of Violence</title> <title>Heat</title> <title>Match Point</title> </genre> ... 2 3.6 Question 5 Pour chaque acteur, la liste des films dans lesquels il a joué. <results> <actor>2,<title>A History of Violence</title> </actor> ... <actor>16,<title>Match Point</title> <title>Lost in Translation</title> </actor> ... 3.7 Question 6 Pour chaque film, le nom et le prénom du réalisateur. <results> <movie> <title>A History of Violence</title> <director> <last_name>Cronenberg</last_name> <first_name>David</first_name> </director> </movie> ... 3.8 Question 7 La liste des films avec seulement les deux premiers rôles. <results> <result> <title>A History of Violence</title> <actor id="2" role="Tom Stall"/> <actor id="3" role="Eddie Stall"/> <et-al/> </result> ... 3