Académique Documents
Professionnel Documents
Culture Documents
Page -1-
A. Comment peut-on affecter le privilège à l’utilisateur U1 pour consulter quelques colonnes de la table
TECHNICIEN (toutes les colonnes à l’exception des colonnes NUM_TELEPHONE et SALAIRE) et
quelques lignes de cette même table (les techniciens résidents à Tunis).
1ère Opération : (/ 2 points)
Création de vue (V1) qui projette le MATRICULE le NOM et la VILLE des techniciens dont la ville est
‘TUNIS’ :
CREATE VIEW V1
AS
SELECT MATRICULE, NOM, VILLE
FROM TECHNICIEN
WHERE VILLE = ‘Tunis’ ;
GRANT SELECT
ON V1
TO U1;
Quelles sont les contrôles effectués par le SGBD lors de l’exécution de la commande UPDATE permettant la
mise à jour d’une ligne de la table DEMANDE ? (/ 4 points)
Les contrôles effectués pour la mise à jour d’une ligne dans une table sont :
-…
Page -2-
B. Résoudre les requêtes suivantes en SQL :
3. Nombre d’interventions par technicien (MATRICULE, NOM) depuis le début de l’année 2012 qui
ont fait plus que 10 interventions. (/ 3 points)
Page -3-
4. Quelles sont les demandes (NUM_DEMANDE, DATE_DEMANDE) non encore satisfaites.
(/ 3 points)
Forme 1
SELECT NUM_DEMANDE, DATE_DEMANDE
FROM DEMANDE
MINUS
SELECT d.NUM_DEMANDE, DATE_DEMANDE
FROM DEMANDE d, INTERVENTION i
WHERE d.NUM_DEMANDE = i.NUM_DEMANDE ;
Forme 2
SELECT NUM_DEMANDE, DATE_DEMANDE
FROM DEMANDE
WHERE NUM_DEMANDE NOT IN ( SELECT NUM_DEMANDE
FROM INTERVENTION ) ;
Forme 3
SELECT d.NUM_DEMANDE, DATE_DEMANDE
FROM DEMANDE d, INTERVENTION i
WHERE d.NUM_DEMANDE = i.NUM_DEMANDE (+)
AND i.NUM_DEMANDE IS NULL ;
Page -4-
5. Les techniciens (MATRICULE) qui ont intervenu le 02/01/2012 pour la maintenance des logiciels
Numéro 100 et 200. (/ 2 points)
Forme 1
SELECT MATRICULE
FROM INTERVENTION i, DUREE d
WHERE i1.NUM_INTERVENTION = d1.NUM_INTERVENTION
AND DATE_INTERVENTION = ‘02/01/2012’
AND NUM_LOGICIEL = 100
INTERSECT
SELECT MATRICULE
FROM INTERVENTION i, DUREE d
WHERE i1.NUM_INTERVENTION = d1.NUM_INTERVENTION
AND DATE_INTERVENTION = ‘02/01/2012’
AND NUM_LOGICIEL = 200
Forme 2
SELECT MATRICULE
FROM INTERVENTION i1, DUREE d1,
INTERVENTION i2, DUREE d2
WHERE i1.NUM_INTERVENTION = d1.NUM_INTERVENTION
AND i1.DATE_INTERVENTION = ‘02/01/2012’
AND d1.NUM_LOGICIEL = 100
AND i2.NUM_INTERVENTION = d2.NUM_INTERVENTION
AND i2.DATE_INTERVENTION = ‘02/01/2012’
AND d2.NUM_LOGICIEL = 200
AND i1.MATRICULE = i2.MATRICULE ;
Forme 3
SELECT i1.MATRICULE
FROM INTERVENTION i, DUREE d
WHERE i1.NUM_INTERVENTION = d1.NUM_INTERVENTION
AND DATE_INTERVENTION = ‘02/01/2012’
AND NUM_LOGICIEL = 100
AND i1.MATRICULE IN ( SELECT MATRICULE
FROM INTERVENTION i, DUREE d
WHERE i1.NUM_INTERVENTION = d1.NUM_INTERVENTION
AND DATE_INTERVENTION = ‘02/01/2012’
AND NUM_LOGICIEL = 200
Page -5-
Université de Tunis El Manar Partiel n°: 1
Faculté des Sciences de Tunis Date : 10/12/2012
Département des sciences de l’Informatique
Module : Fichiers & Bases de données
Section : IF4
Durée : 1h30mn
Documents : non autorisés
Correction
Schéma de base de données
TECHNICIEN
MATRICULE CLIENT
NOM CODE_CLIENT
VILLE NOM_CLIENT
NUM_TELEPHONE ADRESSE_CLIENT
SALAIRE
INTERVENTION DEMANDE
NUM_INTERVENTION NUM_DEMANDE
MATRICULE CODE_CLIENT
NUM_DEMANDE DATE_DEMANDE
DATE_INTERVENTION
LOGICIEL
DUREE NUM_LOGICIEL
NOM_LOGICIEL
NUM_INTERVENTION
NUM_LOGICIEL
DUREE_INTERVENTION
Page -6-