TCFE ERR Cas Tennis : le logiciel ACCESS et le langage SQL Vous effectuez un stage au sein de la direction technique régionale de tennis du Limousin. Votre responsable de stage, M. Vilas, vous demande de l aider dans sa tâche gestion d une base de données relationnelle. Vous disposez de la base de données Tennis sur le répertoire du réseau local du lycée. Copiez celle-ci dans votre répertoire personnel, ouvrez ce fichier puis effectuez les travaux suivants Premier travail : Observation de la base de données. 1. Combien d objets peut-on distinguer dans le logiciel ACCESS? Ouvrez chacun des objets, observez puis complétez l annexe 1. 2. Ouvrez le menu Outils, sélectionnez Relations puis répondez aux questions suivantes : a) Combien de tables compte la base de donnés TENNIS? b) Les tables sont-elles indépendantes les unes des autres? Comment sont réalisées les relations? c) Complétez l annexe 2 (sauf pour la table Tournoi ). 3. A l aide de l annexe 2 et de vos connaissances sur la notion de dépendance fonctionnelle, déterminez si les affirmations suivantes sont vraies ou fausses. Vous devez justifier vos réponses. a) À un nom de club peut correspondre plusieurs numéros d affiliation. b) À un numéro de club peut correspondre plusieurs noms (de club). c) Un club est situé dans un seul département. d) Un licencié est licencié dans un seul club. 4. Revenez sur l objet Table et complétez l annexe 3 (sauf pour la table Tournoi ). Pourquoi chaque table comporte-t-elle une clé primaire? 5. Précisez la commande (Ouvrir / Modifier / Nouveau) à utiliser dans l objet Table afin de pouvoir : - Saisir, modifier ou supprimer un enregistrement ; - Saisir, modifier ou supprimer un champ (ou un attribut) ; - Créer une table. Cas «Tennis» Page 1 sur 8
Deuxième travail : modification de la base de données M. Vilas décide qu il faut intégrer à la base de données les différents tournois qui se déroulent dans la région Limousin. M. Vilas vous précise que : La participation éventuelle de licenciés et aux tournois n est pas prise en compte dans la base ; Pour chaque tournoi, on doit disposer des informations suivantes : son nom, la ville et le département dans lesquels il se déroule, les dates de début et de fin du tournoi. Vous disposez, en annexe 4, de la liste des principaux tournois limousins. 1. Finissez de compléter les annexes 2 et 3. 2. Comment allez-vous mettre en relation la table Tournoi dans la base de données? Pourquoi? 3. Créez cette table dans votre base de données puis mettez la en relation (relation avec contrainte d intégrité référentielle) avec la table définie précédemment. 4. Saisissez les enregistrements de cette table. Troisième travail : Interrogation des tables Vous disposez des tableaux d analyse des requêtes (partiellement complétés) en annexe 5. Certaines requêtes ont, par ailleurs, été exécutées. 1. Finissez de compléter les tableaux d analyse des requêtes (annexe 5). 2. Exécutez les requêtes manquantes. Quatrième travail : Modification et conception d états 1. Améliorez la présentation des deux états qui ont été commencés par M. Vilas. 2. Créez un état à partir de la requête n 4 Liste des licenciés nés entre 1980 et 1984. Cas «Tennis» Page 2 sur 8
ANNEXE 1 : LES PRINCIPAUX OBJETS D ACCESS FORMULAIRE SGBD classique REQUETE TABLE ETAT Cas «Tennis» Page 3 sur 8
ANNEXE 3 : STRUCTURE DES TABLES Table Champ Nom du champ sous ACCESS Type de donnée Format de la donnée Taille Clé primaire (oui/non) Affiliation n Num_affiliation CLUB Nom du club Nom_club Ville Ville_club Département Nom_dep DEPARTE MENT Département Nombre de licenciés Nom_dep Nombre_lic N de licence Num_lic Nom Nom_lic LICENCIE Prénom Date de naissance Affiliation n Prenom_lic Date_nais Num_affiliation Nom du tournoi Nom_tourn Ville du tournoi Ville_tourn TOURNOI Département Date de début du tournoi Date de fin du tournoi Nom_dep Debut_tourn Fin_tourn Cas «Tennis» Page 4 sur 8
ANNEXE 2 : MODÈLE RELATIONNEL DES DONNÉES (Forme textuelle) CLUB ( Num_affiliation, Nom_club, Ville_club, LICENCIE ( Num_lic, DEPARTEMENT ( Nom_dep TOURNOI ( ANNEXE 4 :LES DIFFERENTS TOURNOIS Nom du tournoi Ville Département Date de début Date de fin Passing shot Panazol Haute-Vienne 15/05/08 30/05/08 Le petit Roland Garros Limoges Haute-Vienne 15/03/08 30/03/08 Open correzien Brive Correze 01/10/08 15/10/08 Tulle Open Tulle Correze 01/07/08 15/07/08 Tournoi de la Marche Bellac Haute-Vienne 01/07/08 15/07/08 Gueret Open Gueret Creuse 15/06/08 30/06/08 Ussel indoor Ussel Correze 01/11/08 15/11/08 Cas «Tennis» Page 5 sur 8
ANNEXE 5 : TABLEAUX D ANALYSE DES REQUÊTES Requête : Liste alphabétique des licenciés (Nom et prénom) Programmation en langage SQL Attribut(s) projeté(s) Table(s) nécessaire(s) Critère(s) de tri SELECT Nom_lic, prenom_lic FROM licencie ORDER BY Nom_lic ASC; Requête : Liste des clubs du département de la Haute-Vienne (Noms du club et du département) Programmation en langage SQL Attribut(s) projeté(s) Table(s) nécessaire(s) Critère(s) de restriction SELECT Nom_club, nom_departement FROM club WHERE Nom_departement like Haute-Vienne ; Requête : Liste alphabétique des licenciés de l ASPTT GUERET (n, nom et prénom du licencié) Attribut(s) projeté(s) Programmation en langage SQL Table(s) nécessaire(s) Critère(s) de jointure Critère(s) de restriction AND WHERE Club.num_affiliation = Licencie.num_affiliation Critère(s) de tri Cas «Tennis» Page 6 sur 8
ANNEXE 5 (suite) Requête : Liste chronologique des licenciés nés entre 1980 et 1984 (Nom, prénom, date de naissance) Attribut(s) projeté(s) Table(s) nécessaire(s) Critère(s) de restriction Critère(s) de tri Programmation en langage SQL Requête : Nom et prénom du licencié n 10 Programmation en langage SQL Requête : Liste alphabétique des licenciés de Corrèze (Nom, prénom, nom et ville du club) Programmation en langage SQL Cas «Tennis» Page 7 sur 8
ANNEXE 5 (suite et fin) Requête : Département(s) ayant plus de 5 000 licenciés (Nom du département, nombre de licenciés) Programmation en langage SQL Requête : Liste des tournois qui se déroulent en Haute-Vienne (Nom et ville des tournois) Programmation en langage SQL Requête : Programmation en langage SQL SELECT Nom_tourn, debut_tourn, fin_tourn FROM Tournoi WHERE debut_tourn between #01/03/2006# and #30/06/2006#; Requête : Programmation en langage SQL SELECT licencie.nom_lic, licencie.prenom_lic, club.nom_club FROM licencie, club WHERE Club.num_affiliation = Licencie.num_affiliation AND nom_dep like creuse ORDER BY licencie.nom_lic asc; Cas «Tennis» Page 8 sur 8