Pratique d`examen - Bienvenue au département d`informatique

Transcription

Pratique d`examen - Bienvenue au département d`informatique
UNIVERSITÉ DE SHERBROOKE
DÉPARTEMENT D’INFORMATIQUE
IFT 287
Exploitation de BD relationnelles et OO
EXAMEN FINAL 1
Le lundi 15 août 2016 de 9 h à 12 h
Enseignant : Vincent Ducharme
— Vous avez droit à deux feuilles de notes recto-verso manuscrites.
— Tout appareil électronique, incluant le téléphone cellulaire et l’ordinateur,
est interdit.
— Ne dégrafez pas ce questionnaire.
— Répondez dans le cahier de réponses qui vous est fourni.
— La correction est, entre autres, basée sur le fait que chacune de vos réponses soit :
— claire, c’est-à-dire lisible et compréhensible pour le correcteur ;
— précise, c’est-à-dire exacte ou sans erreur ;
— complète, c’est-à-dire que toutes les étapes de résolution du problème sont présentes ;
— concise, c’est-à-dire que la méthode de résolution est la plus courte possible.
Nom :
Prénom :
Signature :
Matricule :
Question
Barème
1
/10
2
/10
3
/10
4
/10
Total :
1. Ce questionnaire comporte quatre (4) pages.
1
/40
1. Modélisation (10 points)
a) (5 points) Donnez un avantage et une limitation pour chacun des types de bases
de données suivants :
— Base de données relationnelles
— Base de données orientée objets
— Base de données NoSQL
b) (5 points) Pour chacune des situations suivantes, indiquez quel système de base de
données serait le mieux adapté. Justifiez votre réponse.
i) Une application qui gère les transactions pour une banque.
ii) Un nouveau réseau social en pleine expansion.
iii) Un jeu vidéo qui sauvegarde l’état du monde de jeu dans une partie.
iv) Un système de discussion en ligne (forum) entre des utilisateurs d’un site web.
v) Une application d’apprentissage automatique qui contient une immense quantité
de données disparates.
2. Base de données objets (10 points)
Voici la description du système de gestion de séries télévisées de l’examen intra.
— Le système gère des Acteurs, des Series, des Episodes et une Distribution
d’acteur dans un épisode.
— Un Acteur est représenté par un nom d’acteur, une date de naissance et un lieu
de naissance.
— Une Serie est définie par un titre, une année de début, une année de fin, une
description et un nombre de saisons.
— Un Episode est composé d’un titre, d’un numéro de saison, d’un numéro d’épisode,
d’une description et d’une durée en minutes.
— La Distribution liste les liens entre les acteurs et les épisodes dans lesquels ils
jouent.
— Un épisode ne peut faire partie que d’une seule série.
2
— Plusieurs séries peuvent avoir le même nom, mais elles ne doivent pas avoir commencées la même année.
a) (5 points) Écrivez la déclaration des classes de la base de données en utilisant la
notation ODL. Vous n’avez pas à donner les méthodes des classes.
b) (3 points) Écrivez les commandes OQL qui permettent d’effectuer les requêtes
suivantes en vous basant sur les classes définies en a) :
— Obtenir tous les épisodes de la série Arrow.
— Obtenir pour chaque acteur, toutes les séries dans lesquelles il joue.
— Obtenir tous les acteurs ayant joué dans la série Once Upon a Time.
c) (2 points) Écrivez le code de définition de la classe Acteur en Java en utilisant
ObjectDB. Vous n’avez pas à faire les méthodes, ni les constructeurs. Votre réponse
doit contenir la déclaration de la classe et des variables seulement.
3. MongoDB (10 points)
Donnez le code Java pour le gestionnaire de collections Serie. Les méthodes que vous
devez donner sont les suivantes :
— La méthode AjoutEpisodeDansSerie. Les paramètres sont (TupleEpisode e,
String titreSerie, Date dateDebut). L’objet TupleEpisode e contient les informations sur l’épisode qui devra être ajouté dans la série. La méthode ajoute
un nouveau sous-document à la série. Les sous-documents sont à la propriété
Episodes.
— La méthode AjoutSerie(TupleSerie s). Cette méthode ajoute une nouvelle
série à la base de données.
— La méthode getSerie(String nomSerie, Date dateDebut). Cette méthode retourne la série associée au nom et à la date spécifiés en paramètres.
Vous devez donner le code des méthodes et des constructeurs que vous appelez sur
vos classes Tuples. La correction sera basée sur la logique du code ainsi que sur la
bonne utilisation des classes et non sur le fait que votre code compile.
3
4. Servlet et JSP (10 points)
Codez un servlet et une page JSP qui permet d’afficher tous les acteurs jouant dans
un épisode d’une série. Pour calculer la liste des acteurs, votre servlet ou votre page
JSP doit appeler la méthode suivante :
List<String> getListeNomActeurs(int idEpisode);
de l’objet de type EpisodeSerie stocké dans le contexte à l’attribut episode. Vous
devez vous assurer qu’un seul servlet à la fois utilise cet objet. Ne donnez que le code
de la méthode doPost du servlet et seulement la partie de la page JSP qui affiche la
liste des noms des acteurs, selon les en-têtes suivants :
<table><tbody>
<tr><td>Acteur</td></tr>
... votre code JSP irait ici ...
</tbody></table>
Fin de l’examen
4