Révisions MRD initiation SQL Contexte 1

publicité
Contexte de SI n° 1 – La SSII InfoDev
Dossier 3 : la Base de Données GESTPROJ (découverte)
A. Étude du schéma relationnel et de la base de données
Documents à exploiter :
 Base de données Gestproj sous MS Access
 Présentation de la base de données de suivi des projets
(schéma relationnel et modèle physique des données sous Access)
3.1. Qu’est-ce qui définit une relation ?
3.2. À quoi correspondent les clés primaires ? (NumCLient, CodeProjet…)
3.3. Pour une valeur connue de NumClient, quelles informations sur le client peut-on
obtenir ?
3.4. Que peut-on en déduire sur la relation entre NumClient et NomClient ou entre
NumClient et Telclient ?
3.5. Observez la relation PROJET : Quels sont les attributs connus grâce à une valeur du
CodeProjet ?
3.6. Que peut-on en déduire sur la relation entre CodeProjet et NumClient ?
Terminale STG GSI
Contexte 1 – Dossier 3
page 11
Voici la table PROJET en affichage "mode création" sous Access.
3.7. Quelles informations sont données ?
Quelles contraintes d'intégrité devra-t-on respecter pour remplir la table ?
Voici un extrait de la table CLIENT
3.8. Pourrait-on ajouter l’enregistrement suivant ?
Corbat, 15 rue de la Gaieté, 17700, BOISSE, 05 49 xx xx xx, 05 49 xx xx xx , Amélie Lecoeur
Pourquoi ?
Et celui-ci ?
41, Corbat, 15 rue de la Gaieté, 17700, BOISSE, 05 49 xx xx xx, 05 49 xx xx xx , Amélie Lecoeur
Pourquoi ?
Que pouvez-vous en conclure ?
3.9. Que doit-on vérifier avant d’ajouter l‘enregistrement suivant dans la table PROJET ?
P050321 ; ResCollLang ; 120 ; 1 ; mise en place d’un réseau… : Marchés ; 15/09/2006 ; 10/12/2006 ;
02/03/2006 ; Candidat
Terminale STG GSI
Contexte 1 – Dossier 3
page 12
Les contraintes d'intégrité
Les questions précédentes ont fait ressortir différentes contraintes d’intégrité du système :
Intégrité de domaine
Principe
Exemple
Intégrité d’entité
Principe
Exemple
Intégrité référentielle
Principe
Exemple
Terminale STG GSI
Contexte 1 – Dossier 3
page 13
B. Rappels sur les opérateurs relationnels (Prog. de 1STG)
3.10. Voici le résultat d'une requête faite à partir de la relation CLIENT.
Quelle opération relationnelle a-t-on faite ?
3.11. Voici le résultat d'une requête faite à partir de la relation PROJET
(NB la partie droite de l'écran a été coupée uniquement pour gagner de la place).
Quelle opération relationnelle a-t-on faite ?
3.12. Quelle information est fournie dans l’écran page suivante ?
De quelles tables sont issues ces données ?
Quels champs ont permis de rapprocher les données issues de ces tables. ?
Comment s’appelle ce rapprochement entre les tables ?
Terminale STG GSI
Contexte 1 – Dossier 3
page 14
Terminale STG GSI
Contexte 1 – Dossier 3
page 15
C. Rappels sur le SQL de base (Prog. de 1STG)
écran 1
écran 1 bis
NB il y a plus de lignes dans la réponse, elles ont été coupées uniquement pour le gain de place
écran 2
écran 2bis
NB il y a plus de lignes dans la réponse,
elles ont été coupées uniquement
pour le gain de place
Terminale STG GSI
Contexte 1 – Dossier 3
page 16
3.13. Que contiennent chacun des écrans page précédente ?
3.14. Déduisez-en la signification des instructions SELECT et FROM
3.15. Que représente l’étoile dans la requête 1 ?
3.16. Combien y aura-t-il de lignes en réalité dans la réponse à la requête 1 ? dans la
réponse à la requête 2 ?
3.17. À quel besoin d'information répond la requête 3 ?
3.18. Que pouvez-vous en déduire sur l’instruction WHERE ?
Terminale STG GSI
Contexte 1 – Dossier 3
page 17
3.19. À quel besoin d'information répond la requête 4 ?
3.20. Que pouvez-vous en déduire sur l’instruction ORDER BY ?
Quel est son rôle ?
Quelle est l’utilité du mot ASC ?
3.21. À quel besoin d'information répond la requête 5 (page suivante)?
3.22. Combien d’enregistrements donne cette requête ?
Cela vous semble-t-il cohérent ? Pourquoi ?
3.23. Quelle opération manque-t-il ?
3.24. Modifier la requête pour corriger cette erreur ?
Terminale STG GSI
Contexte 1 – Dossier 3
page 18
3.25. À quel besoin d'information répond la requête 6 ?
3.26. Déduisez-en l’utilité de l’opérateur LIKE et du caractère * dans "17*"
Terminale STG GSI
Contexte 1 – Dossier 3
page 19
D. Modification de requêtes existantes
Voici une liste de requêtes. Pour chacune d’elles, vous disposez du besoin d’information initial auquel elles
répondent, et du code SQL correspondant.
Le besoin d’information ayant évolué, il vous est demandé de modifier la requête existante afin qu’elle
réponde à ce nouveau besoin.
a) La liste des clients pour lesquels aucun contact n’est enregistré dans la base de données.
SELECT NumClient, NomClient
FROM Client
WHERE NomContactClient IS NULL;
Nouveau besoin : La liste des clients pour lesquels on connaît le contact (ce contact doit apparaître dans le
résultat, ainsi que le numéro de téléphone).
Requête modifiée
b) La liste des projets par client à l’état ‘candidat’ ou ‘en cours’.
SELECT CodeProjet, NomProjet, Client.NumClient, NomClient
FROM Projet, Client
WHERE Projet.NumClient=Client.NumClient
AND EtatProjet IN ("Candidat","Encours");
Nouveau besoin : La liste des projets par client à l’état ‘Candidat’ ou ‘En cours’ qui proviennent d’un appel
d’offres.
Requête modifiée
c) La liste des projets pour lesquels la réponse a été envoyée en Mars 2006
(le résultat est identique pour les 2 solutions ci-dessous à une condition, laquelle ?)
SELECT CodeProjet, NomProjet
FROM Projet
WHERE DateReponse BETWEEN #01/03/2006# AND #31/03/2006#;
SELECT CodeProjet, NomProjet
FROM Projet
WHERE Month(DateReponse) = 3;
Nouveau besoin : La liste des projets pour lesquels la réponse a été envoyée en Mars 2006 et qui doivent
débuter en Mai 2006.
Requête modifiée
Terminale STG GSI
Contexte 1 – Dossier 3
page 20
d) La liste des clients qui ne sont pas des établissements scolaires.
SELECT NumClient, NomClient
FROM CLient
WHERE NomClient NOT LIKE "*Collège *" AND NomClient NOT LIKE "*Lycée*";
Nouveau besoin : La liste des clients qui ne sont pas des établissements scolaires et pour lesquels il existe
un projet ‘En cours’.
Requête modifiée
E. Écriture de requêtes interrogation
Rédiger les requêtes SQL qui répondent aux besoins d’information suivants :
1. La liste des clients (Numéro, nom et ville) classée par ville, puis par ordre alphabétique.
2. La liste des clients situés à Vignolles et Yves
3. La liste des intervenants encore en activité dans l’entreprise
4. La liste des clients pour lesquels un projet réseau est à l’étude.
5. La liste des intervenants embauchés en 2005.
6. La liste des employés susceptibles d’intervenir sur le projet Hermione.
Terminale STG GSI
Contexte 1 – Dossier 3
page 21
Téléchargement