EXAMEN BD Access Lundi 16 Mai 2011 (8h-9h30) L examen a une durée de 1h30. Aucun document (quel qu il soit) n est autorisé durant l épreuve. Le soin apporté à la rédaction (écriture, schémas, etc.) sera pris en compte. EXERCICE 1(4,5 pts) Répondez au Questionnaire à Choix Multiples (QCM) suivant. Attention, chaque question peut comporter plusieurs réponses correctes. Les points seront obtenus pour une question si toutes les bonnes réponses sont données. Les deux dernières questions demandent un classement : vous numéroterez donc les choix suivant l ordre que vous jugerez correct. 1. Qu est-ce qu un S.G.B.D? un ensemble de programmes qui permet la gestion et l accès à une base de données un ensemble structuré et organisé permettant le stockage de grandes quantités d informations le nom d un logiciel 2. Quels sont les niveaux de la méthode MERISE? niveau conceptuel niveau organisationnel (logique) niveau physique 3. De quel(s) élément(s) est composée une table dans un MCD? association(s) attribut(s) cardinalité(s) identifiant(s) 4. Quelle association se transforme en une table lorsque l on passe du MCD au MLD? 1 :1 1 :n n :m 5. Quelle peut être est la cardinalité maximale associée à une combinaison donnée d entités? 1 ou n 0 ou 1 1 n 6. Dans quel ordre doit-on généralement réaliser ces différents modèles? MLD MCD MPD 7. Classez ces notions de la plus fine à la plus importante (en terme de volume d information) : une entité une base de données une table EXERCICE 2 (3,5 pts) Répondez au Questionnaire à Choix Multiples (QCM) suivant. Attention, certaines questions correspondent à plusieurs réponses et une seule réponse erronée annule les réponses justes lorsqu il s agit de la même question.
1. Quelles sont les utilisations des états? / éditer la structure de la base de données et modifier les relations entre les tables. Mettre en forme le contenu d une base de données pour des fins d impression. les données à l écran, naviguer dans une base de données et modifier ou ajouter des données dans des tables. Créer d une façon dynamique des requêtes au moment de l exécution. 2. On a une base avec les vols effectuées par des pilotes. Chaque pilote est identifié par un numéro de pilote et chaque vol par un numéro de vol. Pour obtenir le nombre total de vols effectuées pour chaque pilote, on doit : D abord appliquer regrouper par le numéro de pilote et, ensuite, appliquer compter pour les numéros de vol. D abord appliquer compter les numéros de vol et, ensuite, appliquer regrouper pour le numéro de pilote. D abord appliquer regrouper par le numéro de pilote et, ensuite, appliquer somme pour les numéros de vol. D abord appliquer somme pour les numéros de vol et, ensuite, appliquer regrouper par le numéro de pilote. 3. Dans la création de requêtes, le symbole * permet : de sélectionner tous les champs de toutes les tables sur lesquelles la requête se base. de sélectionner tous les champs de toutes les tables ET les requêtes sur lesquelles la requête se base. de sélectionner tous les champs d une tables OU d une requête sur laquelle la requête se base. de sélectionner à l exécution un champs qu on souhaite afficher. 4. On veut créer une requête pour afficher seulement les enregistrement qui, pour un champ donné A, contient, d un côté, a et c sur la deuxième et quatrième position (exemple 1a2c456 ) et, d un autre côté, qui contient b et d sur les deux dernières position (exemple 1234bd ). Cela est-il possible? Comment? Oui. Dans le mode création, à l intersection de la ligne Critère et de la colonne A on met la formule Comme?a?c* Et Comme *bd. Non. Il faut d abord créer une requête intermédiaire pour appliquer la première condition et, en suite, créer la deuxième requête pour la deuxième condition. Oui. Dans le mode création, à l intersection de la ligne et de la colonne A on met la formule Comme?a?c* Et Comme *bd. Oui. On ajoute 2 fois la colonne A. A l intersection de la ligne Critère et de la première colonne A, on met la formule Comme?a?c*. A l intersection de la ligne Critère et de la deuxième colonne A, on met la formule Comme *bd. 5. On a une base de données qui contient deux tables déjà remplies avec des données. On essaie d ajouter une relation entre le champ A de la première table (clef primaire de cette table) et le champ B de la deuxième table. Lorsqu on coche Appliquer l intégrité référentielle on obtient une erreur. Quelle est la cause de cette erreur? Est-ce qu il est possible de créer la relation? Comment? Les deux champs A et B ne sont pas de même type. Non, on ne peut pas créer la relation. Access ne permet pas de créer des relations entre des tables déjà remplies. Oui, on peut créer la relation mais uniquement après avoir vidé les deux tables. Dans le champ B de la deuxième table existent des valeurs qui ne se trouvent pas dans le champ A de la première table. Oui, on doit enlever l option concernant la violation de l intégrité. De manière alternative, on peut soit ajouter les valeurs manquantes dans la première table, soit les enlever de la deuxième table. La relation est de type n : m, ce qui ne peut être géré par Access. Il faut recréer la structure de la base de données pour éliminer toutes les relations de type n : m. 6. Une relation entre deux tables se concrétise sous Access en reliant une clef primaire à une clef étrangère. Faut-il indiquer la clef étrangère avant la création de la relation? Si oui, comment? 2
Oui. Basculer en mode affichage en utilisant le menu Affichage/Création, cliquer droit sur le champ et sélectionner l option Clef étrangère. Non. Au moment de la création de la relation, Access propose un menu pour choisir directement la clef étrangère. Non. Access n utilise pas directement les clefs étrangères ; elles sont uniquement des concepts théoriques. Oui. Basculer en mode création en utilisant le menu Affichage/Création, sélectionner le champ et donner à la propriété Indexé la valeur Oui Avec doublons. EXERCICE 3 (12 pts) On souhaite implanter sous Access une Base de Données afin de gérer un petit restaurant. Cette BD comportera des informations sur les différents plats proposés à la carte, les menus disponibles, mais également les repas qui sont effectivement servis à la clientèle. 1. Pour cela, on vous demande de construire un MCD qui réponde aux contraintes suivantes : (a) Vous devez utilisez le modèle E/R vu en cours. (b) Le modèle comporte les entités suivantes, associées à un certain nombre d attributs précisés entre parenthèses : les ingrédients (nom, quantité disponible, date d achat et date de péremption), les plats (nom, prix, référence de la recette), les menus (nom, prix, durée de préparation, uniquement le midi, uniquement la semaine sauf le week-end), le type de plat (nom du type), les repas (nombre de clients, jour et heure de réservation). (c) Le modèle comporte plusieurs associations basées sur les assertions suivantes : Un ingrédient entre dans la composition de plusieurs plats. Et, bien sûr, un plat est composé la plupart du temps de plusieurs ingrédients. Il ne faut pas oublier de préciser la quantité d ingrédient nécessaire précisée dans la recette. Les menus sont composés de plusieurs plats, tandis qu un plat peut faire partie d un ou de plusieurs menus. Un plat est associé à un unique type de plat, à savoir : apéritif, entrée, plat de résistance, etc.. Un repas est composé de plats et de menus. Un conseil : n oubliez pas les cardinalités et précisez (voire ajoutez si nécessaire) un identifiant pour chaque entité. 3
t Dessinez ici votre MCD : 2. Donnez ci-dessous le MLD correspondant au MCD que vous avez construit précédemment : t 3. Donnez ci-dessous la requête (au format Access) permettant d afficher la liste des ingrédients périmés encore présents dans les stocks du restaurant : 4. Donnez ci-dessous la requête (au format Access) permettant d afficher le prix moyen dépensé pour tous les repas commandés dans le restaurant après le 1er mai 2011 : 4
5. Donnez la requête de calcul (au format Access) permettant de calculer le prix total correspondant uniquement aux plats à la carte commandés pour un repas (pour rappel, un repas correspondant à une table, c est-à-dire à un ensemble de clients) dont le numéro est demandé à l utilisateur avec une boîte de dialogue : Ecrivez ci-dessous en quelques phrases pourquoi vous ne pouvez pas ajouter un champs prix total à la table des repas. t 6. Donnez ci-dessous la requête (au format Access) permettant de calculer le prix total à la fois des plats et des menus commandés pour un repas donné (i.e., on précise l identifiant du repas dans la requête). Attention, vous aurez certainement à recourir à plusieurs requêtes afin de résoudre cette question. 5