12.07.2015 Views

CONTEXTE N° 2 – Requêtes d'interrogation de la ... - Réseau Certa

CONTEXTE N° 2 – Requêtes d'interrogation de la ... - Réseau Certa

CONTEXTE N° 2 – Requêtes d'interrogation de la ... - Réseau Certa

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>CONTEXTE</strong> <strong>N°</strong> 2 <strong>–</strong> <strong>Requêtes</strong> <strong>d'interrogation</strong> <strong>de</strong> <strong>la</strong> base <strong>de</strong> donnéesFORMATIONCompréhension, développement et mise au point <strong>de</strong> requêtes<strong>d'interrogation</strong>PropriétésIntitulé longFormationconcernéeMatièrePrésentationNotionsTransversalitéPré-requisRessourcesMots-clésDuréeRemarqueAuteur(es)DescriptionMobiliser les ordres SQL adaptés à un besoin d'information.C<strong>la</strong>sses <strong>de</strong> terminale Sciences et Technologies <strong>de</strong> <strong>la</strong> Gestion (STG) GSIGestion <strong>de</strong>s Systèmes d'InformationTrouver, par observation dans les tables, les informations <strong>de</strong>vant être fournies parune requête SQL.Modifier une requête SQL dont le résultat n'est pas conforme à <strong>la</strong> <strong>de</strong>man<strong>de</strong>formulée.Écrire et imp<strong>la</strong>nter <strong>de</strong>s requêtes SQL qui répon<strong>de</strong>nt à un besoin <strong>de</strong> gestion; encontrôler <strong>la</strong> conformité.B 1.1 Définition, interrogation et mise à jour <strong>de</strong>s données.Connaissance <strong>de</strong>s ordres SQL <strong>d'interrogation</strong> d'une base <strong>de</strong> données.Schéma re<strong>la</strong>tionnel <strong>de</strong> <strong>la</strong> base <strong>de</strong> données FORMATIONBase <strong>de</strong> données FORMATIONSELECT, FROM, WHERE, MIN, MAX, GROUP BY, HAVING, AS, SUM, COUNT,AVG,CREATE VIEW; SQL2 heuresVersion v 1.0Date <strong>de</strong>publicationSylvaine ThéryJanvier 2007http://www.reseaucerta.org © CERTA <strong>–</strong> janvier 2007<strong>–</strong> v0.1 Page 1/5


Au service Formation du Personnel <strong>de</strong> <strong>la</strong> Direction Régionale <strong>de</strong> <strong>la</strong> SNCF <strong>de</strong> BOr<strong>de</strong>aux, toutes lesdonnées nécessaires à <strong>la</strong> gestion <strong>de</strong>s formations sont enregistrées dans une base <strong>de</strong> donnéesre<strong>la</strong>tionnelle présentée ci-<strong>de</strong>ssous.Schéma re<strong>la</strong>tionel <strong>de</strong> <strong>la</strong> base bddFormationActionco<strong>de</strong>numeroActiviteintitulecoutdureedateCreationSessionnumeroco<strong>de</strong>ActionidLieunombreMaxParticipantdateSessioncoutPrevucoutReelforfaitJournalierdistanceMinInscriptionnumeroSessionco<strong>de</strong>AgentpresencefraisHebergementActivitenumerolibelleLieuidlibelleco<strong>de</strong>PostaltelephonetypeLieuAgentco<strong>de</strong>idAdminLieuciviliteprenomnomadresse1adresse2co<strong>de</strong>PostalvilledateNaissancedateEmbaucheAction.cout :Session.coutPrevu :Session.coutReel :Lieu.typeLieu :Inscription :coût fixe estimé pour un participant et une actionmontant estimé prévisionnel <strong>de</strong>s frais d’hébergementsmontant effectivement remboursé pour les frais d’hébergementsindique si un lieu est une rési<strong>de</strong>nce administrative ou un lieu <strong>de</strong> formationfraisHebergement : montant <strong>de</strong> <strong>la</strong> facture d’hébergement fournie par un agentpour une sessionLecture et compréhension <strong>de</strong>s requêtes SQLPour chacune <strong>de</strong>s requêtes suivantes :• Décrire le besoin d'information auquel elle répond• L'imp<strong>la</strong>nter sur le SGBD• Contrôler que le résultat obtenu est conforme au besoin exprimé.Requête <strong>N°</strong>1 :SELECT libelle,nom,prenomFROM Agent,LieuWHERE Agent.idAdminLieu=Lieu.idORDER BY libelle,nom;http://www.reseaucerta.org © CERTA <strong>–</strong> janvier 2007<strong>–</strong> v0.1 Page 2/5


Requête <strong>N°</strong>2 :SELECT libelleFROM ActiviteWHERE numero NOT IN( SELECT numeroActiviteFROM Action,SessionWHERE Action.co<strong>de</strong>=Session.co<strong>de</strong>Actionand dateSession>'2005-12-11')Remarque : on remp<strong>la</strong>cera 2005 par l’année en cours <strong>de</strong> <strong>la</strong> table session.Requête <strong>N°</strong>3 :SELECT nom,prenom,distanceEntreLieuFROM Agent,Inscription,Session,DistanceWHERE Agent.co<strong>de</strong>=Inscription.co<strong>de</strong>AgentAND Inscription.numeroSession=Session.numeroAND Session.idLieu = Distance.idLieuFormationAND Agent.idAdminLieu=Distance.idLieuAdministratifAND distanceEntreLieu >350;Requête <strong>N°</strong>4 :SELECT numero,intitule ,libelleFROM Session,Action,LieuWHERE Action.co<strong>de</strong>=Session.co<strong>de</strong>ActionAND Session.idLieu=Lieu.idAND libelle="Bor<strong>de</strong>aux";Requête <strong>N°</strong>5 :SELECT DISTINCT libelleFROM Distance,LieuWHERE Distance.idLieuFormation=Lieu.idORDER BY libelle;Requête <strong>N°</strong>6 :SELECT COUNT(*) as nbrInscritsFROM Inscription,Session,Action,ActiviteWHERE Inscription.numeroSession=Session.numeroAND Session.co<strong>de</strong>Action=Action.co<strong>de</strong>AND Action.numeroActivite=Activite.numeroAND libelle= "Informatique";Requête <strong>N°</strong>7 :SELECT MIN(cout) AS coutMinFROM Action;Requête <strong>N°</strong>8 :SELECT intitule,AVG(coutPrevu-coutReel)FROM Action,SessionWHERE Action.co<strong>de</strong>=Session.co<strong>de</strong>ActionAND coutReel is not nullGROUP BY intitule;http://www.reseaucerta.org © CERTA <strong>–</strong> janvier 2007<strong>–</strong> v0.1 Page 3/5


Lecture et modification <strong>de</strong> requêtes SQL incorrectes.Les cas suivants présentent :• L'expression d'un besoin d'information• La requête SQL fournie en réponse à ce besoinDans chacun <strong>de</strong>s cas :• Expliquer en quoi cette requête n'est pas conforme à <strong>la</strong> <strong>de</strong>man<strong>de</strong>• Proposer une modification <strong>de</strong> <strong>la</strong> requête• Imp<strong>la</strong>nter et contrôler cette requête dans le SGBDCas <strong>N°</strong> 1On souhaite obtenir l'intitulé et le coût <strong>de</strong>s actions dont le coût est le plus petit.La requête suivante a été imp<strong>la</strong>ntée.SELECT intitule , MIN(cout)AS coutMinFROM ActionWHERE cout = (SELECT cout FROM Action)GROUP BY intituleCas <strong>N°</strong> 2On souhaite obtenir le nombre <strong>de</strong> sessions par activité.La requête suivante a été imp<strong>la</strong>ntée.SELECT libelle, intitule ,COUNT(Session.numero)FROM Activite,Action,SessionWHERE Activite.numero=Action.numeroActiviteAND Action.co<strong>de</strong>=Session.co<strong>de</strong>Action;Cas <strong>N°</strong>3On souhaite obtenir <strong>la</strong> liste <strong>de</strong>s actions (intitulés) pour lesquelles il y a plus <strong>de</strong> 3 inscrits.La requête suivante a été imp<strong>la</strong>ntée.SELECT intitule ,COUNT(*) as nbrInscritFROM Action,SessionWHERE Action.co<strong>de</strong>=Session.co<strong>de</strong>ActionAND nbrInscrit>3GROUP BY Intitule;Cas <strong>N°</strong>4On souhaite obtenir le montant total <strong>de</strong>s frais d'hébergement par session.La requête suivante a été imp<strong>la</strong>ntée.SELECT numeroSession,COUNT(fraisHebergement)FROM InscriptionGROUP BY numeroSession;http://www.reseaucerta.org © CERTA <strong>–</strong> janvier 2007<strong>–</strong> v0.1 Page 4/5


Écriture et imp<strong>la</strong>ntation <strong>de</strong> requêtes SQL:Pour chacun <strong>de</strong>s besoins exprimés suivants :• Écrire et imp<strong>la</strong>nter <strong>la</strong> requête correspondante• Contrôler que le résultat obtenu est conforme à <strong>la</strong> <strong>de</strong>man<strong>de</strong>.1. Liste <strong>de</strong>s inscriptions triée par nom et prénom.2. Liste <strong>de</strong>s actions d'une durée supérieure à 60 heures.3. Liste <strong>de</strong>s dates et <strong>de</strong>s lieux <strong>de</strong>s sessions dont le contenu porte sur les "<strong>Réseau</strong>x".4. Liste <strong>de</strong>s agents inscrits à aucune session.5. Création d'une vue <strong>de</strong>s sessions par activité (libellé <strong>de</strong> l’activité, intitulé <strong>de</strong> l'action,date <strong>de</strong> session).6. Liste <strong>de</strong>s agents déc<strong>la</strong>rant <strong>de</strong>s frais d'hébergement supérieurs à1000.7. Nombre <strong>de</strong> sessions qui se déroulent à "Bor<strong>de</strong>aux"8. Liste <strong>de</strong>s activités pour lesquelles le coût moyen <strong>de</strong>s actions est inférieur à 3000.9. Liste <strong>de</strong>s sessions pour lesquelles le coût réel est supérieur au coût prévu avecl’écart.10. Nombre total <strong>de</strong> p<strong>la</strong>ces pour les sessions portant sur l'activité "informatique".11. Nombre total <strong>de</strong> p<strong>la</strong>ces par action12. Durée moyenne <strong>de</strong>s actions par activité.http://www.reseaucerta.org © CERTA <strong>–</strong> janvier 2007<strong>–</strong> v0.1 Page 5/5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!