ALSI S25 DA – EVALUATION – Cas TRANSPORT SCOLAIRE STS2 IG Base de données Le sujet comporte 5 pages. Durée du devoir : 1 H Le 22/04/2002 page 1/5 Lexique SQL autorisé Tous les exercices sont indépendants 1. DOSSIER 1 : ORGANISATION D’UN MODELE DE DONNEES Le Conseil Général d’un département rural du Sud de la France souhaite mettre en place une application informatique prévoyant que chaque mairie ou mairie annexe (jusqu’à 6 pour les plus grandes villes du département) sera équipée d’au moins un ordinateur et d’un moyen de connexion au serveur du Conseil Général. La première application qui sera mise en place et qui servira de projet pilote concerne le transport scolaire pour les liaisons internes au département. Le Conseil Général a le souci de faire travailler en priorité les compagnies de car du département. Chaque année un appel d’offre local est lancé en précisant qu’une ligne ne sera attribuée qu’à une seule compagnie. Une entreprise de transport peut postuler sur une ou plusieurs lignes en fonction de ses possibilités. Le Conseil Général attribue les marchés. Le Conseil Général subventionne en partie les transports scolaires des élèves vers leurs établissements, une part restant à la charge des familles. Le Conseil Général centralise les inscriptions issues des Mairies et se charge de l’édition et de la diffusion des cartes de transport. Il tient à ce que ces cartes soient individuelles et non falsifiables. L’inscription, la facturation aux familles ainsi que son suivi sont assurés par les mairies. Une facture concerne tous les enfants d’une même famille. A partir du tarif de base dépendant de la zone de tarification, les mairies peuvent accorder 2 types de remise différents. Ces taux de remise varient suivant les mairies. TRAVAIL A FAIRE 1. Dans une base de donnée qu’est-ce qu’une procédure stockée ? Quel en est l’intérêt ? 2. Qu’est-ce qu’un déclencheur (trigger) ? Quel en est l’intérêt ? 3. Décrire le déclencheur donné en Annexe 1. (période de déclenchement et travail réalisé) 2. EXERCICE 2 : ARCHITECTURE CLIENT/SERVEUR On se place dans l’optique d’un serveur de Base de données. Répondre aux questions suivantes. D:\769794240.doc ALSI S25 DA – EVALUATION – Cas TRANSPORT SCOLAIRE STS2 IG Base de données Le 22/04/2002 page 2/5 1. Quelles sont les 3 grandes familles de Client/Serveur identifiées par le Gartner Group ? (3 lignes maxi par famille) 2. Dans un client/serveur de traitement, comment un traitement peut-il être réalisé sur le serveur de BD et lancé depuis le client ? (3 lignes maxi) 3. Expliquer ce qu’est un middleware. (10 lignes maxi) Quel(s) middleware(s) connaissez- vous ? 3. EXERCICE 3 : ARCHITECTURE CLIENT/SERVEUR On souhaite réaliser la gestion des cotisations d’un club sportif. Les tables de la base de données se trouvent sur un serveur SQL Server 7.0. On décide de réaliser les interfaces : formulaires de saisie et états, sur ACCESS. On pense donc à une architecture client/serveur. Répondre aux questions suivantes en utilisant l’annexe 2. 1. Quels sont les logiciels à mettre en place sur le serveur ? Quels sont les logiciels à mettre en place sur le client ? On souhaite remplacer l’interface ACCESS par des formulaires et des états en HTML 2. Quelles sont les modifications à réaliser sur le serveur ? Quelles sont les modifications à réaliser sur le client ? 4. EXERCICE 4 : BASE DE DONNEES Le rayon Bandes dessinées de la CANF souhaite réaliser le suivi de ses ventes de Bandes dessinées par série. Pour chaque série, elle veut connaître en temps réel le nombre d’albums vendus et l’album record de ventes dans la série pour le mois en cours. Dans ce but, 3 tables existent dans la base de données : ALBUM : contient la liste des albums en rayon avec, pour chacun d’eux, le nombre total d’exemplaires vendus au cours du mois. Un album ne fait pas forcément partie d’une série. SERIE : contient la liste des séries de BD et, pour chacune d’elle, l’album record de ventes. STAT : mémorise pour chaque mois et pour chaque série, le titre de la série, le titre de l’album record de vente et le nombre d’album vendus pour le mois. Les informations contenues dans cette table sont calculées à la fin du mois à partir de la table ALBUM. 4.1. Schéma physique des tables D:\769794240.doc ALSI S25 DA – EVALUATION – Cas TRANSPORT SCOLAIRE STS2 IG Base de données Le 22/04/2002 page 3/5 Sur cet exemple, on s’aperçoit que Tintin au Tibet est record de vente pour la série Tintin avec 654 albums vendus en mars 1999. 4.2. Scénario d’organisation Vente d’un album : l’interface graphique de Facturation incrémente le compteur ALB_NBVENTE de la table ALBUM. Retour d’un album : l’interface graphique de Gestion des retours décrémente le compteur ALB_NBVENTE de la table ALBUM. Le 1er de chaque mois, le chef de rayon lance le calcul des statistiques du mois précédent. Ce calcul vient ajouter une ligne dans la table STAT pour chaque série d’album. 4.3. Travail à réaliser 1. Quelle solution proposez-vous pour que le calcul du record de vente dans la série (colonne ALB_RECORDVENTE dans la table SERIE) se fasse automatiquement ? (5 lignes maxi.) 2. Proposer une solution pour réaliser le calcul des statistiques chaque mois.(1 ligne) 3. Donner la requête SQL permettant de réaliser le calcul des statistiques chaque mois (c’est à dire créer chaque ligne dans la table STAT). La date du jour est donnée par la fonction GetDate(). D:\769794240.doc ALSI S25 DA – EVALUATION – Cas TRANSPORT SCOLAIRE STS2 IG Base de données Le 22/04/2002 page 4/5 4. Donner la requête SQL permettant de lister les albums qui se sont mieux vendus que Tintin au Congo 5. ANNEXE 1 Schéma relationnel : VENTE (num_pie, qte_vent) PIECE (num_pie, qte_stk) La table :NEW contient la ligne à traiter (équivalent de la table INSERTED pour SQL Server) CREATE TRIGGER AJOUTVENTE BEFORE INSERT ON VENTE FOR EACH ROW DECLARE stock INTEGER; ‘Variable utilisée dans le déclencheur BEGIN SELECT qte_stk INTO stock FROM WHERE num_pie = :new.num_pie; IF :new.qte_vent > stock then piece PRINT ‘Stock insuffisant’; ELSE UPDATE piece SET qte_stk=qte_stk WHERE num_pie=:new.num_pie; END IF; END; D:\769794240.doc - :new.qte_vent ALSI S25 DA – EVALUATION – Cas TRANSPORT SCOLAIRE STS2 IG Base de données page 5/5 NOM et Prénom : 6. ANNEXE 2 : Application initiale avec ACCESS CLIENT SERVEUR 7 - Application 6 - Présentation 5 - Session TCP 4 - Transport TCP IP 3 - Réseau IP Carte Ethernet 2 - Liaison Carte Ethernet Paire torsadée 1 - Physique Paire torsadée Réseau Application avec HTML CLIENT SERVEUR 7 - Application 6 - Présentation 5 - Session TCP 4 - Transport D:\769794240.doc TCP IP 3 - Réseau IP Carte Ethernet 2 - Liaison Carte Ethernet Paire torsadée 1 - Physique Paire torsadée Réseau Le 22/04/2002