site:enseignement:master:mlbda:tmes:couchbase
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| site:enseignement:master:mlbda:tmes:couchbase [15/12/2021 17:08] – amine | site:enseignement:master:mlbda:tmes:couchbase [09/12/2024 12:00] (Version actuelle) – hubert | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| {{indexmenu_n> | {{indexmenu_n> | ||
| + | |||
| + | |||
| ====== TME N1QL sous Couchbase | ====== TME N1QL sous Couchbase | ||
| Ligne 5: | Ligne 7: | ||
| Ce TME utilise le système Couchbase qui pourra être installé suivant les instructions ci-dessous. | Ce TME utilise le système Couchbase qui pourra être installé suivant les instructions ci-dessous. | ||
| Il est recommandé d' | Il est recommandé d' | ||
| + | ===== Description des données ===== | ||
| - | |||
| - | ==== Description des données ==== | ||
| Le TME utilise 4 collections de données décrites ci-dessous : | Le TME utilise 4 collections de données décrites ci-dessous : | ||
| Ligne 23: | Ligne 24: | ||
| A toutes fins utiles, il est possible télécharger les données du TME depuis {{ : | A toutes fins utiles, il est possible télécharger les données du TME depuis {{ : | ||
| + | ===== Documentation N1QL ===== | ||
| - | ==== Documentation N1QL ==== | ||
| [[https:// | [[https:// | ||
| [[https:// | [[https:// | ||
| ]] | ]] | ||
| + | ===== Questions ===== | ||
| + | ==== Exercice 1 ==== | ||
| - | ===== Requêtes simples ===== | + | === Projection |
| - | ==== Projection ==== | ||
| 1. L' | 1. L' | ||
| Ligne 46: | Ligne 48: | ||
| </ | </ | ||
| - | 2. La liste des prix des 10 premiers produits. | + | 2. La liste des prix des 10 premiers produits |
| <showif isloggedin> | <showif isloggedin> | ||
| <code sql> | <code sql> | ||
| Ligne 56: | Ligne 58: | ||
| </ | </ | ||
| - | ==== Sélection | + | === Sélection === |
| - | 3. Les identifiants des produits (productId) ayant une note (rating) de 5. | + | |
| + | 3. Les identifiants des produits (productId) ayant au moins une note (rating) de 5. Les identifiants de produits sont tous distincts dans le reéultat. | ||
| - | <fc # | + | <fc # |
| <showif isloggedin> | <showif isloggedin> | ||
| <code sql> | <code sql> | ||
| - | SELECT productId | + | SELECT |
| FROM reviews | FROM reviews | ||
| where rating = 5 | where rating = 5 | ||
| Ligne 113: | Ligne 116: | ||
| 7. Les identifiants des clients (customerId) dont tout les produits achetés le sont avec une quantité > 4. | 7. Les identifiants des clients (customerId) dont tout les produits achetés le sont avec une quantité > 4. | ||
| + | Ne retourner que les customerId uniques. | ||
| - | <fc # | + | <fc # |
| <showif isloggedin> | <showif isloggedin> | ||
| <code sql> | <code sql> | ||
| - | SELECT customerId | + | SELECT |
| FROM purchases | FROM purchases | ||
| WHERE EVERY item IN purchases.lineItems SATISFIES item.count > 4 END | WHERE EVERY item IN purchases.lineItems SATISFIES item.count > 4 END | ||
| Ligne 125: | Ligne 129: | ||
| + | === Aplatissement des listes, parcours des listes === | ||
| - | ==== Aplatissement des listes, parcours des listes ==== | ||
| 8.a) Les paires identifiants de produits (productId) et catégorie. Retourner une paire pour chaque combinaison de '' | 8.a) Les paires identifiants de produits (productId) et catégorie. Retourner une paire pour chaque combinaison de '' | ||
| Ligne 181: | Ligne 185: | ||
| </ | </ | ||
| | | ||
| - | ==== Jointure ==== | + | === Jointure === |
| + | | ||
| 10. L' | 10. L' | ||
| Ligne 214: | Ligne 219: | ||
| </ | </ | ||
| </ | </ | ||
| - | ==== Agrégation ==== | + | |
| + | |||
| + | === Agrégation === | ||
| 11. L' | 11. L' | ||
| Ligne 259: | Ligne 267: | ||
| </ | </ | ||
| </ | </ | ||
| - | ===== Requetes complexes ===== | + | |
| + | |||
| + | ==== Exercice 2 ==== | ||
| 1. Donner la liste de 10 produits qui se trouvent dans la catégorie " | 1. Donner la liste de 10 produits qui se trouvent dans la catégorie " | ||
| + | Indice : utiliser LIMIT et OFFSET | ||
| <showif isloggedin> | <showif isloggedin> | ||
| Ligne 384: | Ligne 396: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | <fc # | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| 7. Afficher les noms et les prix unitaires des produits dont le prix unitaire est inférieur à 6.99 et qui se trouvent dans la catégorie " | 7. Afficher les noms et les prix unitaires des produits dont le prix unitaire est inférieur à 6.99 et qui se trouvent dans la catégorie " | ||
| Ligne 397: | Ligne 480: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | <fc # | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| 8. Afficher les 10 produits les plus vendus. Pour chacun de ces produits afficher son nom et le nombre d' | 8. Afficher les 10 produits les plus vendus. Pour chacun de ces produits afficher son nom et le nombre d' | ||
| Ligne 411: | Ligne 510: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | <fc # | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| 9. Afficher les 5 produits les mieux notés (en fonction de la note moyenne). Pour chaque produit afficher son nom et sa note moyenne. | 9. Afficher les 5 produits les mieux notés (en fonction de la note moyenne). Pour chaque produit afficher son nom et sa note moyenne. | ||
| Ligne 424: | Ligne 572: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | <fc # | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| 10. Pour le document " | 10. Pour le document " | ||
| Ligne 437: | Ligne 614: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | <fc # | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | "Pet Supplies" | ||
| + | ], | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ], | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ], | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| 11. Afficher les 10 clients qui ont dépensé le plus d' | 11. Afficher les 10 clients qui ont dépensé le plus d' | ||
| Ligne 456: | Ligne 764: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | <fc # | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| 12. Donner les nombre total de clients par région. Le résultat doit être trié par ordre décroissant du nombre de clients. | 12. Donner les nombre total de clients par région. Le résultat doit être trié par ordre décroissant du nombre de clients. | ||
| Ligne 483: | Ligne 870: | ||
| </ | </ | ||
| + | <fc # | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| 14. Afficher les produits dont la note moyenne est inférieure à 1. Pour chaque produit on veut connaître son som, son identifiant et la note moyenne. | 14. Afficher les produits dont la note moyenne est inférieure à 1. Pour chaque produit on veut connaître son som, son identifiant et la note moyenne. | ||
| Ligne 495: | Ligne 892: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| 15. Pour chaque date d' | 15. Pour chaque date d' | ||
| Ligne 509: | Ligne 944: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| 16. Donner les achats au mois d' | 16. Donner les achats au mois d' | ||
| Ligne 527: | Ligne 1021: | ||
| + | < | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | ===== Utilisation de Couchbase en local (facultatif) ===== | ||
| - | ==== Utilisation de Couchbase depuis les machines de la PPTI (facultatif)==== | ||
| Couchbase est pré-installé sur les machines de le PPTI. Il suffit de le lancer depuis un navigateur Web à l' | Couchbase est pré-installé sur les machines de le PPTI. Il suffit de le lancer depuis un navigateur Web à l' | ||
| + | ==== Depuis machines personnelles ==== | ||
| - | ==== Installation Couchbase sur vos machines personnelles (facultatif) ==== | ||
| * Télécharger | * Télécharger | ||
| Ligne 544: | Ligne 1272: | ||
| {{: | {{: | ||
| - | ==== Lancement de Couchbase en local ==== | ||
| Ligne 550: | Ligne 1277: | ||
| * Suivre ces [[https:// | * Suivre ces [[https:// | ||
| + | === Création des buckets === | ||
| - | ==== Création des buckets ==== | ||
| * Créer 4 nouveaux buckets avec les noms suivants (voir leur description ci-après): **product, customer, purchases et reviews**. Voir les instruction de création des buckets à cette [[https:// | * Créer 4 nouveaux buckets avec les noms suivants (voir leur description ci-après): **product, customer, purchases et reviews**. Voir les instruction de création des buckets à cette [[https:// | ||
| Ligne 564: | Ligne 1291: | ||
| * **reviews**: | * **reviews**: | ||
| - | ==== Importation des données ==== | + | === Importation des données === |
| * Télécharger et décompresser {{ : | * Télécharger et décompresser {{ : | ||
| Ligne 587: | Ligne 1315: | ||
| - | | ||
| ===== Données du TD (pour les révisions) ===== | ===== Données du TD (pour les révisions) ===== | ||
| + | |||
| + | |||
| Dés-archiver {{ : | Dés-archiver {{ : | ||
site/enseignement/master/mlbda/tmes/couchbase.1639584489.txt.gz · Dernière modification : de amine
