Enoncé

Transcription

Enoncé
Cours de “Bases de données”
Année académique 2014-2015
Projet: Seconde Partie
Le schéma relationnel à utiliser pour la base de données est le suivant:
• plateforme(id plateforme, nom, version, bits)
• Console(id plateforme)
• Système(id plateforme)
• Emulateur (id emulateur, nom, version)
• Ami (id ami, nom, prenom, n tel)
• Jeu Vidéo(id jeu, style, note)
• Exemplaire(id jeu, id exemplaire, id plateforme)
• Exemplaire Physique(id jeu, id exemplaire, etat, emballage, livret)
• Exemplaire Virtuel (id jeu, id exemplaire, taille)
• plateforme du jeu(id jeu, id plateforme)
• Peut Emuler (id jeu, id exemplaire, id emulateur)
• Emulateur Fonctionne Sur (id plateforme, id emulateur)
• Emule(id emulateur, id plateforme)
• Prêt(id ami,id jeu, id exemplaire, date emprunt,date retour)
Les contraintes suivantes doivent être respectées pour assurer la cohérence de la base de
données:
• Une plateforme est soit une console, soit un système.
• Un exemplaire est soit physique, soit virtuel.
• Un exemplaire ne peut fonctionner que sur une plateforme pour laquelle le jeu vidéo
correspondant est disponible.
• Un exemplaire virtuel ne peut fonctionner que sur un émulateur capable d’émuler
la plateforme (console) de cet exemplaire.
Questions
Il vous est demandé de réaliser les tâches suivantes.
1. Ecrire un script MySQL générant la base de données (création et initialisation des
tables) sur un serveur MySQL à partir du fichier de données qui vous est fourni.
2. Ecrire les scripts correspondant à une interface web permettant d’accéder à la base
de données créée. Par simplicité, nous vous conseillons de privilégier l’utilisation
de PHP et son API MySQL. Sur demande, après accord confirmé, et après
avoir vérifié la compatibilité du langage sur le serveur nous permettant d’accéder à
votre site web, vous êtes autorisés à utiliser d’autres langages et API. L’interface
utilisateur devra permettre d’effectuer des opérations en veillant à toujours respecter
la cohérence de la base de données. L’interface comprendra un contrôle d’accès basé
sur un utilisateur et un mot de passe. Les utilisateurs s’étant correctement connectés
auront accès à un menu principal leur permettant d’effectuer les opérations suivantes.
(a) Pour chaque table, permettre la sélection et l’affichage des tuples en contraignant
la valeur d’un ou plusieurs de ses champs (tous les tuples si * est utilisé).
1
(b) Ajouter un nouvel exemplaire à la bibliothèque. Cette opération nécessite de
choisir le jeu vidéo, la plateforme, le type (virtuel ou physique), et, le cas échéant,
les émulateurs permettant de faire tourner l’exemplaire virtuel. Jeu, plateforme,
émulateurs et les relations correspondantes sont supposés déjà présents dans la
base de données.
(c) Pour chaque type de jeu, retrouver le nombre d’exemplaires fonctionnels dans
votre base de données. Un exemplaire physique est fonctionnel si son état est
strictement plus grand que 1. Un exemplaire virtuel est fonctionnel s’il est capable de fonctionner sur au moins un émulateur lui même capable de fonctionner
sur au moins un système.
(d) Trier les émulateurs par performance: la performance d’un émulateur est le
nombre d’exemplaires virtuels que l’émulateur peut faire fonctionner divisé par
le nombre total d’exemplaires virtuels censés pouvoir fonctionner sur une console
que l’émulateur est capable d’émuler.
(e) Créer une liste de recommandations pour un ami à partir de sa liste de prêts:
cette liste sera constituée des 5 jeux les mieux notés (au plus) qu’il n’a pas
encore empruntés, dont on possède au moins un exemplaire utilisable sur une
plateforme sur laquelle il a déjà joué avec l’un de vos exemplaires, et d’un type
identique à au moins un jeu qu’il vous a déjà emprunté.
Le travail sera réalisé par groupes de 3 à former avant le 11 avril 2016 (envoyer un
mail avec la composition du groupe à l’assistant [email protected]. Les travaux
sont à rendre avant le 2 mai 2016 à 23:59 sous forme d’une archive zip ou tar.gz en
utilisant la Plateforme de soumission de Montefiore1 et après avoir créé un compte si
nécessaire. Si vous rencontrez un problème avec la pateforme, contactez (remy.vandaele@
ulg.ac.be).Il ne sera toutefois pas tenu compte des problèmes qui apparaissent de façon
mystérieuse et inattendue juste avant l’heure limite de soumission.
L’archive à soumettre contiendra les scripts de votre interface web, le script d’initialisation
de la base de données ainsi qu’un rapport décrivant votre travail et contenant les requêtes
MySQL utilisées dans vos scripts. De plus, en vue de faciliter les tests, votre rapport contiendra un lien vers une version opérationnelle de votre application contenant uniquement
les informations du fichier de données. Tous les étudiants sont invités à utiliser le serveur
étudiant du Montefiore ms800. Un identifiant et un mot de passe pour accéder au serveur
SQL de ms800 vous sera fourni lors de l’inscription de votre groupe.
Si vous avez la moindre question, n’hésitez pas à envoyer un mail.
Bon travail!
1 http://submit.run.montefiore.ulg.ac.be/
2