INF 1250 Introduction aux bases de données Module 3 Le langage SQL TRAVAIL PRATIQUE 2
TRAVAIL PRATIQUE 2 Étude de cas Université Le Savoir LA SITUATION En tant qu associé de l entreprise Professionnels en conception de modèles de bases de données, vous devez prendre en charge le projet que la compagnie développe pour l université Le Savoir. Les intrants pour votre travail sont les suivants : une lettre que l université a adressée à l entreprise pour lui indiquer ses besoins; un modèle entité-association que l on a préparé pour vous à partir des informations tirées de cette lettre. Vous trouverez ci-après la lettre du responsable des systèmes d information de l université et une figure présentant le modèle entité-association. Montréal, le 12 mai 2010 Professionnels en conception de modèles de bases de données 7234, rue Saint-Denis Montréal (Québec) H3D 4R5 Objet : Besoins de l université LeSavoir Madame, Monsieur, Comme convenu lors de notre dernière rencontre, nous vous faisons parvenir les informations concernant nos besoins quant à la gestion académique de notre université. En ce qui concerne la population qui fréquente l université, elle est composée de deux catégories de personnes : les employés et les étudiants. 2
Nos employés sont les professeurs et tout le personnel (administratif, de soutien, etc.) qui travaille à l université. Pour chaque employé, nous avons son numéro d identification (un numéro entre 100 000 et 350 000), son nom, son prénom, son adresse, son code postal, son salaire actuel, son numéro d assurance sociale, le code du département auquel il appartient et, optionnellement, son courrier électronique. Cette information étant confidentielle, nous voulons que les consultations ne se fassent que par le numéro d identification de l employé. Pour chaque étudiant, nous avons aussi un numéro d identification unique (entre 500 000 et 1 000 000), son nom, son prénom, son adresse, son code postal et sa date de naissance. En ce qui a trait à la formation, l université offre des programmes dans quatre cycles d études : le baccalauréat, la maîtrise, le doctorat et le postdoctorat. Un programme est rattaché à un département. Les départements sont identifiés par un code de quatre lettres et un nom; les programmes sont identifiés par un code du programme (numéro entre 1000 et 4000, 1XXX pour le baccalauréat 2XXX pour la maîtrise et 3XXX pour le doctorat et le postdoctorat). Chaque programme a un professeur comme directeur. La durée maximale d un programme correspond au nombre maximal de trimestres auxquels l étudiant peut être inscrit. Certains programmes ont aussi une durée minimale qui correspond au nombre minimal de trimestres auxquels l étudiant doit être inscrit. Un étudiant peut être inscrit à plusieurs programmes et il est important pour nous d avoir de l information qui concerne chaque étudiant dans chaque programme. Nous voulons avoir accès à sa moyenne pour le programme, à son statut dans le programme (A Actif, T Terminé, R Retiré), à la date de début et à la date de terminaison de son programme, s il l a déjà fini, et au nombre de crédits réussis dans le programme; nous voulons aussi avoir la moyenne globale de l étudiant. Par ailleurs, l information sur les cours est aussi très importante pour nous. Tous nos cours sont identifiés par un sigle composé des quatre premières lettres du département et d un numéro entre 2000 et 4000; nous gardons aussi le code du département auquel le cours est rattaché, le nombre de crédits du cours et l information sur le professeur responsable du cours. Un cours peut figurer dans différents programmes, soit comme cours obligatoire ou comme cours optionnel. Un cours peut avoir plusieurs groupes chaque trimestre. Bien que chaque cours ait un professeur responsable, les différents groupes de chaque trimestre peuvent être sous la responsabilité d autres professeurs. Chaque trimestre nous avons différents cours offerts. Nous voulons sauvegarder les informations suivantes d un trimestre (A Automne, H Hiver et E été) : la date de début et la date de fin du cours, ainsi que la note moyenne obtenue pour le cours dans 3
le trimestre. Finalement, nous avons besoin de connaître les cours qu un étudiant a pris dans chaque programme et la note finale qu il a obtenue. Si vous avez des questions, n hésitez pas à communiquer avec moi. Je vous prie d agréer, Madame, Monsieur, mes salutations distinguées. Pierre Delosier Responsable des systèmes d information Université Le Savoir 4
Figure 1 Modèle entité-association de l université.
VOTRE TRAVAIL Ce travail comprend deux parties. Vous devez d abord créer la base de données du cas et la peupler, en faisant les quatre exercices de la première partie. Veuillez demander, par courriel, à votre personne tutrice le fichier qui contient les données qui serviront à peupler la base de données. Vous devez ensuite générer des commandes pour répondre à une série de recherches sur cette base, en faisant les cinq exercices de la seconde partie. Votre travail doit être entièrement réalisé avec le langage SQL et testé avec la version que vous aurez installée de MySQL. Enfin, comme il est détaillé plus bas, vous devez présenter dans votre travail toutes les commandes créées ainsi que les résultats produits par MySQL lors de l exécution de chaque commande de recherche (exercices de la seconde partie du travail). Partie 1 : Définition du schéma À l aide du langage SQL, faites et exécutez les commandes SQL suivantes pour : 1. Créer le schéma universite. 2. Créer les tables de la figure 1, en incluant les contraintes d unicité de clé, référentielles, de domaine et de non-nullité. Attention! Il peut être mieux de représenter certaines tables par des vues. 3. Générer les commandes pour insérer l information contenue dans le fichier qui vous sera transmis par votre personne tutrice à votre demande. 4. Générer la commande pour faire la mise à jour du champ nombrecreditacquis de la table Etudiant_Programme. Vous pouvez calculer ce champ à partir des cours que l étudiant a pris dans le programme. Partie 2 : Recherche de données Écrivez avec le langage SQL les requêtes suivantes pour : 1. Obtenir la liste de tous les cours ayant un nom en lien avec les bases de données (pour chaque cours trouvé, donnez le sigle et le nom). Cette requête pourrait servir à un étudiant qui chercherait des informations sur les cours dans le domaine de bases de données. 2. Trouver les noms des professeurs responsables d au moins un cours pour le trimestre d automne 2008. 6
3. Trouver l identificateur, le prénom, le nom, l option d études et le nom du département des étudiants qui ont réussi plus de 15 cours dans un programme. 4. Vérifier que tous les étudiants ont suivi leurs cours pendant la période de validité de leur programme. 5. Vérifier qu un étudiant donné a suivi les cours obligatoires d un programme particulier. INFORMATIONS À ENVOYER À VOTRE PERSONNE TUTRICE Partie 1 : Pour chaque exercice, vous devez envoyer le code SQL écrit. Partie 2 : Pour chaque exercice, vous devez envoyer le code SQL écrit et le résultat de l exécution de ce code sur la base créée dans la partie 1. GRILLE D ÉVALUATION QUESTION Partie 1, question 1 Partie 1, question 2 Partie 1, question 3 Partie 1, question 4 PONDÉRATION 2 points 40 points 3 points 5 points PARTIE 1 50 points Partie 2, question 1 Partie 2, question 2 Partie 2, question 3 Partie 2, question 4 Partie 2, question 5 PARTIE 2 50 points TOTAL 100 points 7