Vous êtes sur la page 1sur 3

BDD - E42 - 2022-2023

TP N°2 - NoSQL : OffRoad Trail , résoudre une problématique d’évolution de modèle de données

Auteur : Isabelle Le Glaz

Contexte : Nous utilisons le modèle de données et la base de données relationnelle étudiée lors du TP
concernant les traitements côté serveur. L’objectif du présent TP est de répondre à de nouveaux besoins
applicatifs en utilisant une base de données NoSql

Les utilisateurs sont à présent satisfaits des développements réalisés pour gérer les compétitions
organisées par Off Road Trail. Ils ont cependant de nouveaux besoins :

● Les supporters doivent pouvoir ajouter autant de mots clés (hashtag) qu’ils le souhaitent dans
leurs commentaires sur les passages des compétiteurs à des points de contrôle. Concrètement,
les supporters disposent d’une page sur le site web qui leur permet de saisir des mots clefs
associés à un passage (ils choisissent un point géographique) et un compétiteur (son N° de
dossard) . Un commentaire est donc un texte, accompagné d’un ou plusieurs mots clefs.Les
commentaires sont horodatés. Les commentateurs doivent être identifiés sur le site pour
pouvoir commenter.
● Un supporter doit pouvoir ajouter un commentaire en réponse à un autre commentaire. Il n’y a
pas de limite au nombre de niveaux des réponses.
● Les équipes d’offroad trail veulent pouvoir visualiser, durant une compétition, le nuage de
hashtag saisis depuis le début de déroulement de la course.

Question 1 : Ajouter ces nouvelles informations dans votre modèle relationnel

Question 2 : Générer un jeu d’essai de gros volume ne concernant que les commentaires et les mots
clefs ( vous ne cherchez pas à obtenir une exactitude avec les inscriptions / passages de coureur, vous
pouvez supprimer vos contraintes référentielles pour réaliser cet exercice).
Volume ciblé :
On considère l’existence d’environ 30 compétitions / an
Pour chaque compétition, en moyenne 3 courses
Pour chaque course, en moyenne 5 points de contrôle passage
Pour chaque course, en moyenne 1000 compétiteurs
Pour chaque point de passage d’une course, en moyenne 300 commentaires, tous compétiteurs
confondus. Chaque commentaire reçoit en moyenne 2 réponses, sur 2 niveaux.
Total des commentaires dans le jeu d’essai : 30 x 3 x 5 x 300 x2 = 270 000 commentaires

hashtag : environ 300 hashtags différents présents dans les commentaires, en moyenne 2 hashtags par
commentaire.

Question 3 : Établir la requête SQL permettant, depuis votre base relationnelle, d’obtenir la liste des
mots clés (hashtag) sur une course donnée. Établissez des statistiques de temps de réponse à vos
requêtes dans un environnement figé ( configuration matérielle et logicielle de votre mesure).

Question 4 : Créer une base de données MongoDB et importez les données issues de la base de
données MySql qui vous permettent de travailler sur ce sujet (c'est-à-dire les commentaires et les
hashtags associés). Quel problème rencontrez-vous pour l’intégration de vos commentaires et hashtag
dans ce SGBD NoSQL ? Votre import de données reflète-t-il ce que vous auriez modélisé ?
Quelle pourrait être une stratégie de construction de votre jeu d’essai sur MongoDB pour vérifier les
performances de Mongodb, en exploitant sa capacité à représenter des objets ? Disposez-vous des
outils en SQL et/ou PL/SQL pour effectuer cette translation de MySQL vers MongoDB ?
Vous pouvez faire appel aux langages que vous maîtrisez déjà à IG2I ( Java, JS ou PHP … ou python ?)
pour générer un fichier json respectant une modélisation objet exploitable dans MongoDB.

Question 5 : Construisez le script javascript permettant d’obtenir la liste des mots clefs ( hashtag) sur
une course donnée. Établissez des statistiques de temps de réponse à vos requêtes dans un
environnement figé ( configuration matérielle et logicielle de votre mesure).
Tester cette requête avec les deux formes de modélisation dans MongoDB de la collection des
commentaires.(avec ou sans objet).

NB : Les Questions 6, 7 et 8 feront l’objet d’un compte-rendu par groupe et d’une présentation orale.

Question 6 : Une fois la compétition terminée, les compétiteurs sont invités à mettre des notes sur le
déroulement de leur compétition ( il s’agit d’une note de la prestation de Off Road Trail). Ces notes sont
décrites comme suit par les compétiteurs :
-un sujet, décrit par un hashtag
- une note comprise entre 0 et 5

Chaque coureur doit pouvoir trouver un hashtag déjà existant, ou bien en créer un nouveau à défaut.
Modéliser une ou plusieurs collections permettant d’assurer cette fonctionnalité.
Question 7 : Écrire deux programmes permettant chacun de construire un jeu d’essai sur chaque
moteur de base de données (MySql et MongoDB), le premier en SQL pour MySql, le second en javascript
pour MongoDB, vous permettant de construire le même jeu d’essai concernant les notes. ( Vous viserez
un volume d’au moins 500 000 notes).

Question 8 : Présenter un ensemble de mesures constituant un benchmark entre mySql et MongoDB


pour cette fonctionnalité de fabrication d’un jeu d’essai sur les notes

Vous aimerez peut-être aussi