Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:master:mlbda:tmes:xquery [22/11/2020 14:36] amine |
site:enseignement:master:mlbda:tmes:xquery [22/11/2023 11:28] (Version actuelle) amine |
||
---|---|---|---|
Ligne 22: | Ligne 22: | ||
==== Récupération des données ==== | ==== Récupération des données ==== | ||
* Créer un répertoire de travail pour ce tme. | * Créer un répertoire de travail pour ce tme. | ||
- | * Télécharger et décompresser, dans votre répertoire de travail, le fichier {{ :site:enseignement:master:mlbda:tmes:tmexquery.tgz |tmexquery.tgz}}, cela va créer le répertoire **tmexpath** | + | * Télécharger et décompresser, dans votre répertoire de travail, le fichier [[https://nuage.lip6.fr/s/TZtW59sCxTMHqCN|tmexquery.tgz]], cela va créer le répertoire **tmexquery** |
| | ||
Ligne 42: | Ligne 42: | ||
4- Tester la requête ci-dessous et appuyer sur le triangle vert pour exécuter la requête. Les résultats de cette requete sont en rouge dans l'arbre original. | 4- Tester la requête ci-dessous et appuyer sur le triangle vert pour exécuter la requête. Les résultats de cette requete sont en rouge dans l'arbre original. | ||
+ | <code xquery> | ||
for $r in //rencontre | for $r in //rencontre | ||
return $r | return $r | ||
+ | </code> | ||
**Remarque 1** Il est évident que si le résultat de votre requete est un nouvel élément construit par copie d'autres éléments de votre document interrogé, les éléments de ce dernier ne seront pas coloriés. | **Remarque 1** Il est évident que si le résultat de votre requete est un nouvel élément construit par copie d'autres éléments de votre document interrogé, les éléments de ce dernier ne seront pas coloriés. | ||
Ligne 59: | Ligne 60: | ||
* Les éléments //auction// sous <fc #008000>closed_auctions</fc> correspondent à des enchères <fc #008000>terminées</fc>. | * Les éléments //auction// sous <fc #008000>closed_auctions</fc> correspondent à des enchères <fc #008000>terminées</fc>. | ||
- | Afin de faciliter la formulation des requêtes, vous pouvez vous appuyer sur structure globale du document XMark représentée ci-dessous. | + | Afin de faciliter la formulation des requêtes, vous pouvez vous appuyer sur structure globale du document XMark représentée ci-dessous ou sur la **définition de schéma** fournie en [[site:enseignement:master:mlbda:tmes:xquery:adapted-xmark-xsd|XSD]] |
{{ :site:enseignement:master:mlbda:xmark-schema.png?direct&700 |}} | {{ :site:enseignement:master:mlbda:xmark-schema.png?direct&700 |}} | ||
+ | |||
+ | |||
+ | |||
Ligne 69: | Ligne 73: | ||
- La valeur initiale (élément initial) des trois premières enchères <fc #ff0000>en cours</fc>. | - La valeur initiale (élément initial) des trois premières enchères <fc #ff0000>en cours</fc>. | ||
- La valeur de la première et de la dernière augmentation (élément increase de bidder) effectuée sur les trois premières des enchères en cours, selon l'ordre des enchères défini dans les données xml (ne pas trier les enchères chronologiquement). | - La valeur de la première et de la dernière augmentation (élément increase de bidder) effectuée sur les trois premières des enchères en cours, selon l'ordre des enchères défini dans les données xml (ne pas trier les enchères chronologiquement). | ||
- | - Le prix des objets vendus à plus de 480. | + | - Le nom et le prix des objets vendus à plus de 480. |
- Le nom des objets du continent africain | - Le nom des objets du continent africain | ||
- Le nom des objets du continent africain avec leur prix de vente | - Le nom des objets du continent africain avec leur prix de vente | ||
Ligne 95: | Ligne 99: | ||
</code> | </code> | ||
- | - Le prix des objets vendus à plus de 480. | + | - Le nom et le prix des objets vendus à plus de 480. |
<code xquery> | <code xquery> | ||
for $x in //closed_auctions/auction, | for $x in //closed_auctions/auction, | ||
$y in //item | $y in //item | ||
where $x/price/text()>480 and $x/itemref/@item =$y/@id | where $x/price/text()>480 and $x/itemref/@item =$y/@id | ||
- | return $x/price | + | return <result>{ $y/name, $x/price}</result> |
</code> | </code> | ||
Ligne 128: | Ligne 132: | ||
===== Exercice 2 ===== | ===== Exercice 2 ===== | ||
Ecrire en XQuery les requêtes sur la base tennis (fichiers joueur.xml, gain.xml, rencontre.xml). | Ecrire en XQuery les requêtes sur la base tennis (fichiers joueur.xml, gain.xml, rencontre.xml). | ||
- | + | - afficher tous les tournois (lieu,année) triés par année, puis lieu. Utiliser la fonction distinct-values(...) pour obtenir un ensemble sans doubles. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res0.txt]] | |
- | * afficher tous les tournois (lieu,année) triés par année, puis lieu. Utiliser la fonction distinct-values(...) pour obtenir un ensemble sans doubles. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res0.txt]] | + | - pour chaque tournoi (lieu, année) donner les nom et prénom des participants qui sont dans le fichier gain.xml. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res1.txt]] |
- | * pour chaque tournoi (lieu, année) donner les nom et prénom des participants qui sont dans le fichier gain.xml. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res1.txt]] | + | - pour chaque année, donner le nombre tournois auxquels chaque joueur a participé. pour chaque année, donner le nombre tournois auxquels chaque joueur a participé. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res2.txt]] |
- | * pour chaque année, donner le nombre tournois auxquels chaque joueur a participé. pour chaque année, donner le nombre tournois auxquels chaque joueur a participé. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res2.txt]] | + | |
<showif isloggedin> **<fc #ff0000>Réponses</fc>** | <showif isloggedin> **<fc #ff0000>Réponses</fc>** | ||
- | + | * afficher tous les tournois (lieu,année) triés par année, puis lieu. Utiliser la fonction distinct- values(...) pour obtenir un ensemble sans doubles. | |
- | - afficher tous les tournois (lieu,année) triés par année, puis lieu. Utiliser la fonction distinct- values(...) pour obtenir un ensemble sans doubles. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res0.txt]] | + | |
<code xquery> | <code xquery> | ||
<tournois> | <tournois> | ||
Ligne 148: | Ligne 150: | ||
</tournois> | </tournois> | ||
</code> | </code> | ||
- | |||
ou bien | ou bien | ||
- | <code xquery> | ||
<code xquery> | <code xquery> | ||
<tournois> | <tournois> | ||
Ligne 163: | Ligne 163: | ||
</tournois> | </tournois> | ||
</code> | </code> | ||
- | |||
ou bien | ou bien | ||
- | |||
<code xquery> | <code xquery> | ||
<tournois> | <tournois> | ||
Ligne 181: | Ligne 179: | ||
</tournois> | </tournois> | ||
</code> | </code> | ||
- | + | ||
- | - pour chaque tournoi (lieu, année) donner les nom et prénom des participants qui sont dans le fichier gain.xml. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res1.txt]] | + | * pour chaque tournoi (lieu, année) donner les nom et prénom des participants qui sont dans le fichier gain.xml. |
<code xquery> | <code xquery> | ||
<tournois> | <tournois> | ||
Ligne 205: | Ligne 203: | ||
</code> | </code> | ||
- | - pour chaque année, donner le nombre tournois auxquels chaque joueur a participé. pour chaque année, donner le nombre tournois auxquels chaque joueur a participé. Le résultat doit être [[site:enseignement:master:mlbda:tmes:xquery:res2.txt]] | + | * pour chaque année, donner le nombre tournois auxquels chaque joueur a participé. |
<code xquery> | <code xquery> | ||
<reponse> | <reponse> | ||
Ligne 225: | Ligne 223: | ||
} | } | ||
</reponse> | </reponse> | ||
- | |||
</code> | </code> | ||
- | + | </showif> | |
- | </showif > | + | |
===== Exercice 3 ===== | ===== Exercice 3 ===== |