(4-705-96) Les bases de données La base de données BIBLIO contient la description d'un système de prêt développé pour une petite bibliothèque communautaire. Comme toute bibliothèque, elle met à la disposition de ses membres des volumes. La base de données est donc composée comme suit: 1. la table des auteurs: AUTEURS 2. la table des livres: LIVRES 3. la table des exemplaires disponibles: EXEMPLAIRES 4. la table des transactions d'emprunt: EMPRUNTS 5. la table des emprunteurs: MEMBRES La table des auteurs (AUTEURS) répertorie les (30) auteurs des oeuvres littéraires que l'on peut trouver à la bibliothèque. Chaque auteur est décrit par une fiche contenant son nom, son pays d'origine, ainsi qu'un code d'identification unique (clef primaire). La table des livres (LIVRES) répertorie les (49) oeuvres littéraires dont la bibliothèque dispose d'au moins un exemplaire. Chaque fiche contient un numéro d'identification unique, le titre de l'oeuvre et le code d'identification de l'auteur. La table des copies de livres (EXEMPLAIRES) constitue la liste des (82) volumes disponibles aux emprunteurs. Chaque volume est décrit par un code d'identification unique et le code du livre (tel que listé dans la table LIVRES) ainsi que la date de l'achat, le prix et le nombre de pages. La table des transaction (EMPRUNTS) constitue l'historique de tous les (154) emprunts effectués par les membres de la bibliothèque. Chaque fiche d'emprunt contient le numéro de l'emprunteur, le code du volume emprunté, la date de l'emprunt (Date_Sortie) ainsi que la date de retour si le volume a été retourné (vide sinon). Enfin, la table des emprunteurs (MEMBRES) répertorie les (23) membres de la bibliothèque qu'il identifie à l'aide d'un numéro unique (clef primaire), et contient en plus son nom (et son prénom), son sexe et sa date de naissance. K. Malenfant page 1
Description de la base de données: Table MEMBRES : Num_Membre Texte 4 Clé primaire Membre Texte 30 Nom, prénom du membre Sexe Texte 1 "F"/"M" Date_Naiss Date/Heure Date de naissance Table EMPRUNTS : N Transaction Compteur Clé primaire : numéro automatique Ref_Membre Texte 4 Numéro du membre Ref_Exempl Texte 4 Code du volume emprunté Date_Sortie Date/Heure Date de l'emprunt Date_Retour Date/Heure Date du retour (vide si non retourné) Table EXEMPLAIRES : Num_Exempl Texte 4 Clé primaire Ref_Oeuvre Texte 4 Code du «livre» Date_Achat Date/Heure Date de l'achat Prix Monétaire Coût de l'exemplaire Nb_Pages Numérique Octet Nombre de pages... Table LIVRES Num_Livre Texte 4 Clé primaire Ref_Auteur Texte 4 Code de l'auteur Titre Texte 40 Titre de l'oeuvre Table AUTEURS : Num_Auteur Texte 4 Clé primaire Auteur Texte 30 Nom de l'auteur Pays Texte 3 Pays d'origine de l'auteur K. Malenfant page 2
Examinez la structure de chacune des tables pour vous familiariser avec les champs qu'elles contiennent. Remarquez que plusieurs des tables contiennent un champ de référence. On désire la liste des emprunts faits par chacun des membres. Créez une première requête incluant les deux tables MEMBRES et EMPRUNTS. Établissez la relation entre le champ Num_Membre de la table MEMBRES et le champ Ref_Membre de la table EMPRUNTS. Placez dans la requête de sélection le champ Membre doté d'une clé de tri croissant, ainsi que tous les champs de la table EMPRUNTS. Affichez. On obtient le contenu de la table d'emprunts auquel on a ajouté le nom du membre. On désire ajouter à notre liste le titre du volume emprunté. Ce titre se trouve dans la table LIVRES mais il n'y a pas de lien direct entre cette table et la table d'emprunts. On doit donc établir ce lien au travers la table des exemplaires. Par le menu Requête (en mode «Création), Ajoutez les deux tables EXEMPLAIRES et LIVRES. Établissez les liens entre, d'une part, Ref_Exempl de la table EMPRUNTS et Num_Exempl de la table EXEMPLAIRES; et d'autre part entre Ref_Oeuvre de la table EXEMPLAIRES et le champ Num_Livre de la table LIVRES. Enlevez de la requête tous les champs de la table emprunts, sauf la date de sortie de l'exemplaire et ajoutez le titre du livre emprunté. Puis affichez le résultat. Notez que le nombre d'enregistrements affichés est toujours de 154 soit le nombre total d'emprunts enregistrés jusqu'ici. Ajoutez à votre liste le nom de l'auteur... Il suffit d'ajouter la table des auteurs, d'établir le lien entre la référence du fichier des livres et le code de l'auteur, puis on ajoute le champ Auteur à la requête. Fermez et sauvegardez cette requête sous le nom _Liste des livres empruntés_. À partir de la requête précédente, affichez la liste des membres qui ont le plus utilisé la bibliothèque en ordre décroissant du nombre d'emprunts. Créez une nouvelle requête à partir de la précédente, et faites un «regroupement» sur le nom du membre et un «compte» du champ TITRE muni d'une clé (descendante) de tri. Fermer votre requête (nommez-la _Liste d'assiduité_) et votre base de données. K. Malenfant page 3
PARTIE 1 - ACCESS A FAIRE POUR VOTRE TP Questions théoriques : /1 Q-1. Justifiez pourquoi on a défini deux tables indépendantes pour décrire les volumes et les oeuvres littéraires. /2 Q-2. Si on devait absolument maintenir les informations suivantes, dans quelle table devrait-on les placer: a) La date de parution de la première édition du livre. b) Le nombre d'exemplaires de chaque ouvrage. c) La durée (en jours) d'un emprunt. d) Le nombre de jours d'emprunt maximum auquel a droit un membre. /3 Q-3a. Mise à jour de la base de données Dans le cas où une mise à jour nécessite l'ajout d'une fiche dans un fichier comportant une clef primaire NON AUTOMATIQUE (pas de type compteur), le numéro d'identification attribué sera égal à celui du plus grand identificateur existant augmenté de 3. On demande d'effectuer les mises à jours suivantes: Achat d'ouvrages: La bibliothèque a acquis les volumes suivants le 2 mai 95: L'histoire de France par San-Antonio (F), 284 pages, 29$, La vie secrète du chacal par Daniel de Foe (2 exemplaires), 232 pages, 26$. Transactions d'emprunt: Lors de la période de réparation du disque rigide du microordinateur, les préposés ont noté sur des cartes (à la main, vaille que vaille) les transactions suivantes. Si une erreur s'est glissée (Hé! oui) et qu'elle peut facilement être corrigée (ex. nom, date, nouveau membre) corrigez la transaction avant de la traiter. Si on ne peut la corriger (transaction impossible ou volume inexistant), écartez la transaction. Notez que les transactions ci-dessous n'ont pas été triées. Date Emprunteur Volume Empr/retour 5 Mai 95 MATUVU ALFRED 222 E (Né le 2 Mai 1959) 5 Mai 95 ROULEAU SERGE 15 E 7 Mai 95 HARRY GRISBY 78 E 8 Mai 95 FLINTSTONE WILMA 5 E 4 Mai 95 222 R 7 Mai 85 30 R 5 Mai 95 15 R K. Malenfant page 4
/2 Q-3b. Diagramme de structure de données Faites le diagramme de structure de données complet de la base de données Biblio et identifier la cardinalité entre les tables. Requêtes (N.B. Utilisez des requêtes successives au besoin) /2 Q-4. On veut obtenir la liste (unique) alphabétique des membres qui ont un ou plusieurs volumes en leur possession (date de retour vide dans le fichier EMPRUNTS). /2 Q-5. On veut la liste de tous les volumes (oeuvres) par ordre alphabétique du nom de l'auteur et du titre de l'oeuvre. /2 Q-6. On veut une liste qui, pour chaque pays, affiche en ordre les oeuvres qui en sont originaires. /3 Q-7. Si on classe les emprunteurs en 4 groupes d'âge (0 à 20 ans, 20 à 40, 40 à 60, 60 et plus), comptez combien chaque groupe a emprunté de volumes et combien de pages il (l'ensemble du groupe) a lu. Prenez l'âge en date du 7 mai 1995 et comptez 365,25 jours par an. On suppose qu'il n'y a personne âgé de plus de 80 ans. Utilisez la division entière (\) pour produire vos groupes d'âges. /3 Q-8. On désire la liste de tous les membres de la bibliothèque par ordre décroissant de l'assiduité de lecture (nombre de volumes empruntés) et par ordre de nom. On désire donc aussi ceux qui n'ont rien emprunté. À remettre: Après avoir fait les modifications et vérifié la valeur de votre démarche, préparez et imprimez les résultats des REQUÊTES. Remettez la description de vos requêtes sur une feuille. Remettez vos questions théoriques en format Word. K. Malenfant page 5
PARTIE 2 - LA NORMALISATION /10 Faites le diagramme de structure de données et tracez le diagramme de dépendances associé à la situation suivante: Le gouvernement de la Sylvanie veut développer une base de données qui lui permettra de conserver les données sur les permis de conduire qu'il a émis à ses citoyens. Le permis de conduire contient, en plus d'une photo du citoyen, les éléments d'information suivants: Numéro de référence Date d'entrée en vigueur Date d'expiration Classe. Il existe plusieurs classes de permis (autobus, véhicule d'urgence, véhicule automobile, motocyclette, etc.). La classe est indiquée sur le permis par un code dont la signification est donnée au verso du permis. Les classes ne sont pas exclusives, c 'est-à-dire qu'un même individu peut en détenir plusieurs. Par exemple, la plupart des citoyens détiennent les classes 5, Véhicule automobile et 6A, Motocyclette. Condition(s). Le citoyen peut être tenu de respecter une ou plusieurs conditions (lunettes ou lentilles cornéennes, conduite de jour seulement, appareil auditif transmission automatique, etc.). Les conditions à respecter sont indiquées par une lettre dont la signification est donnée au verso du permis. Sexe Couleur des yeux Taille Nom du citoyen Adresse civique Rue Ville Province Code postal Numéro de dossier. Code inventé par le gouvernement qui débute par la première lettre du nom du citoyen et qui contient entre autres sa date de naissance. K. Malenfant page 6