Exemple d'examen intra - LabUnix - UQAM

Pour chacune des requêtes proposées, vous devez indiquer si l'exécution de la
requête SQL soulève une exception ou non avec les exemples de données ...

Part of the document


Nom | | |
|Code permanent | |
Examen Intra (30pts)
Durée : 180 minutes
N.B. Répondez sur le questionnaire. 1 (5 pts)
Script SQL*plus du schéma DossierEtudiantUQAM :
CREATE TABLE Cours
(sigle CHAR(7) NOT NULL, titre VARCHAR(50) NOT NULL,
nbCredits INTEGER NOT NULL,
PRIMARY KEY (sigle))
/
CREATE TABLE SessionUQAM
(codeSession INTEGER NOT NULL, dateDebut DATE NOT NULL,
dateFin DATE NOT NULL,
PRIMARY KEY (codeSession))
/
CREATE TABLE Professeur
(codeProfesseur CHAR(5) NOT NULL, nom VARCHAR(10) NOT
NULL,
prenom VARCHAR(10) NOT NULL,
PRIMARY KEY (codeProfesseur))
/
CREATE TABLE GroupeCours
(sigle CHAR(7) NOT NULL, noGroupe INTEGER NOT NULL,
codeSession INTEGER NOT NULL, maxInscriptions INTEGER NOT
NULL,
codeProfesseur CHAR(5) NOT NULL,
PRIMARY KEY (sigle,noGroupe,codeSession),
FOREIGN KEY (sigle) REFERENCES Cours,
FOREIGN KEY (codeSession) REFERENCES SessionUQAM,
FOREIGN KEY(codeProfesseur) REFERENCES Professeur )
/
CREATE TABLE Etudiant
(codePermanent CHAR(12) NOT NULL, nom VARCHAR(10) NOT
NULL,
prenom VARCHAR(10) NOT NULL, codeProgramme INTEGER,
PRIMARY KEY (codePermanent))
/
CREATE TABLE Inscription
(codePermanent CHAR(12) NOT NULL, sigle CHAR(7) NOT NULL,
noGroupe INTEGER NOT NULL, codeSession INTEGER NOT NULL,
dateInscription DATE NOT NULL, dateAbandon DATE,
note INTEGER,
PRIMARY KEY (codePermanent,sigle,noGroupe,codeSession),
FOREIGN KEY (sigle,noGroupe,codeSession) REFERENCES GroupeCours,
FOREIGN KEY (codePermanent) REFERENCES Etudiant)
/ Exemples de données pour les tables SQL> SELECT * FROM Cours ; SIGLE TITRE NBCREDITS ------- -------------------------------------------------- ---------- INF3180 Fichiers et bases de données 3 INF5180 Conception et exploitation d'une base de données 3 INF1110 Programmation I 3 INF1130 Mathématiques pour informaticien 3 INF2110 Programmation II 3 INF3123 Programmation objet 3 SQL> SELECT * FROM SessionUQAM ; CODESESSION DATEDEBUT DATEFIN ----------- ---------- ---------- 32003 03/09/2003 17/12/2003 12004 08/01/2004 02/05/2004 SQL> SELECT * FROM Professeur ; CODEP NOM PRENOM ----- ---------- ---------- TREJ4 Tremblay Jean DEVL2 De Vinci Leonard PASB1 Pascal Blaise GOLA1 Goldberg Adele KNUD1 Knuth Donald GALE9 Galois Evariste CASI0 Casse Illa SQL> SELECT * FROM GroupeCours ; SIGLE NOGROUPE CODESESSION MAXINSCRIPTIONS CODEP ------- ---------- ----------- --------------- ----- INF1110 20 32003 100 TREJ4 INF1110 30 32003 100 PASB1 INF1130 10 32003 100 PASB1 INF1130 30 32003 100 GALE9 INF2110 10 32003 100 TREJ4 INF3180 30 32003 50 DEVL2 INF3180 40 32003 50 DEVL2 INF1110 20 12004 100 TREJ4 INF1110 30 12004 100 TREJ4 INF2110 10 12004 100 PASB1 INF2110 40 12004 100 PASB1 INF3180 10 12004 50 DEVL2 INF3180 30 12004 50 DEVL2 INF5180 10 12004 50 DEVL2 INF5180 40 12004 50 GALE9 SQL> SELECT * FROM Etudiant ; CODEPERMANEN NOM PRENOM CODEPROGRAMME ------------ ---------- ---------- ------------- TREJ18088001 Tremblay Jean 7416 TREL14027801 Tremblay Lucie 7416 DEGE10027801 Degas Edgar 7416 MONC05127201 Monet Claude 7316 VANV05127201 Van Gogh Vincent 7316 MARA25087501 Marshall Amanda STEG03106901 Stephani Gwen 7416 EMEK10106501 Emerson Keith 7416 DUGR08085001 Duguay Roger LAVP08087001 Lavoie Paul SQL> SELECT * FROM Inscription ; CODEPERMANEN SIGLE NOGROUPE CODESESSION DATEINSCRI DATEABANDO
NOTE
------------ ------- ---------- ----------- ---------- ---------- ---------- TREJ18088001 INF1110 20 32003 16/08/2003
80
LAVP08087001 INF1110 20 32003 16/08/2003
80
TREL14027801 INF1110 30 32003 17/08/2003
90
MARA25087501 INF1110 20 32003 20/08/2003
80
STEG03106901 INF1110 20 32003 17/08/2003
70
TREJ18088001 INF1130 10 32003 16/08/2003
70
TREL14027801 INF1130 30 32003 17/08/2003
80
MARA25087501 INF1130 10 32003 22/08/2003
90
DEGE10027801 INF3180 30 32003 16/08/2003
90
MONC05127201 INF3180 30 32003 19/08/2003
60
VANV05127201 INF3180 30 32003 16/08/2003 20/09/2003 EMEK10106501 INF3180 40 32003 19/08/2003
80
DUGR08085001 INF3180 40 32003 19/08/2003
70
TREJ18088001 INF2110 10 12004 19/12/2003
80
TREL14027801 INF2110 10 12004 20/12/2003
90
MARA25087501 INF2110 40 12004 19/12/2003
90
STEG03106901 INF2110 40 12004 10/12/2003
70
VANV05127201 INF3180 10 12004 18/12/2003
90
DEGE10027801 INF5180 10 12004 15/12/2003
90
MONC05127201 INF5180 10 12004 19/12/2003 22/01/2004 EMEK10106501 INF5180 40 12004 19/12/2003
80
DUGR08085001 INF5180 10 12004 19/12/2003
80 Formulez les demandes a et b en SQL, et la demande c, en SQL et algèbre
relationnelle. Le résultat recherché avec les exemples de données
précédents est indiqué après la demande. a) Les numéros de groupe du INF3180 à la session 12004 (1 pt) NOGROUPE ---------- 10 30 Réponse (code SQL) :
b) Les sigles des cours (sans répétition) donnés à la session 32003 (1
pt) SIGLE ------- INF1110 INF1130 INF2110 INF3180 Réponse (code SQL) :
c) La liste des sigles et numéro de groupe des cours suivis par Lucie
Tremblay à la session dont le codeSession est 32003 (3 pts) SIGLE NOGROUPE ------- ---------- INF1110 30 INF1130 30
Réponse (code SQL) :
Réponse (algèbre relationnelle) :
Chacune des demandes suivantes est suivie d'une série de requêtes SQL
(dialecte Oracle 9i) avec le résultat recherché pour les exemples de
données.
Pour chacune des requêtes proposées, vous devez indiquer si l'exécution de
la requête SQL soulève une exception ou non avec les exemples de données
(encerclez la bonne réponse). Dans le cas contraire, vous devez dire si
l'exécution produit le bon résultat quelles que soit les données. Sinon,
vous devez indiquer si l'exécution produit le bon résultat pour les
exemples de données.
Dans le cas où le résultat produit avec les exemples est différent de celui
qui est prévu, indiquez le résultat produit par l'exécution de la requête
(ajoutez ou supprimez des lignes dans le résultat proposé.
2. (2 pts) Afficher les sigles et titres des cours dont le titre contient
le mot « programmation » mais pas le mot «objet» (peu importe la casse).
NB La fonction UPPER convertit une chaîne en majuscules. a.
SELECT sigle,titre
FROM Cours
WHERE UPPER(titre) LIKE '%PROGRAMMATION%' AND
NOT EXISTS
(SELECT sigle,titre
FROM Cours
WHERE UPPER(titre) LIKE '%OBJET%') Cette requête SQL produit toujours une exception : V F
sinon
produit toujours le bon résultat : V F
sinon
produit le bon résultat avec les exemples : V F
sinon, le résultat de l'exécution avec les exemples est :
SIGLE TITRE ------- -------------------------------------------------- INF1110 Programmation I INF2110 Programmation II b.
SELECT sigle,titre
FROM Cours
WHERE UPPER(titre) LIKE '%PROGRAMMATION%' AND
NOT UPPER(titre) LIKE '%OBJET%' Cette requête SQL produit toujours une exception : V F
sinon
produit toujours le bon résultat : V F
sinon
produit le bon résultat avec les exemples : V F
sinon, le résultat de l'exécution avec les exemples est : SIGLE TITRE ------- -------------------------------------------------- INF1110 Programmation I INF2110 Programmation II
3. (2 pts) Pour chaque étudiant dont la moyenne est supérieure à 80 pour
les cours suivis à la session 32003, afficher le code permanent avec la
moyenne.
a.
SELECT codePermanent, AVG(note)
FROM Inscription
WHERE codeSession = 32003 AND AVG(note) > 80
GROUP BY codePermanent Cette requête SQL produit toujours une exception : V F
sinon
produit toujours le bon résultat : V F
sinon
produit le bon résultat avec les exemples : V F
sinon, le résultat de l'exécution avec les exemples est : CODEPERMANEN AVG(NOTE) ------------ ---------- DEGE10027801 90 MARA25087501 85 TREL14027801 85
b.
SELECT codePermanent, AVG(note)
FROM Inscription
WHERE codeSession = 32003
GROUP BY codePermanent
HAVING AVG(note) > 80 Cette requête SQL produit toujours une exception : V F
sinon
produit toujours le bon résultat : V F
sinon
produit le bon résultat avec les exemples : V F
sinon, le résultat de l'exécution avec les exemples est : CODEPERMANEN AVG(NOTE) ------------ ---------- DEGE10027801 90 MARA25087501 85 TREL14027801 85
c.
SELECT codePermanent, AVG(note)
FROM Insc