Enseignants donnant des cours au département d'informatique
Question
Il faudra ici faire deux requêtes dont le sens est proche :
1) Donnez le nom et prénom de tous les enseignants du département informatique.
2) Donnez le nom et prénom de tous les enseignants qui enseignent un cours du département informatique.
Indice
Dans le premier cas, on cherche la valeur de DPT de l'enseignant. Dans le 2e cas, on cherche la valeur de DPT du cours, et l'enseignant qui donne le cours. Le 2e cas fait apparaître une jointure.
Solution
SQL : requête 1
SELECT R.NOM, R.PRENOM
FROM RESPONSABLE R
WHERE R.DPT = "Informatique"
Solution
Calcul relationnel : requête 1
Res = {NOM, PRENOM}|\(\exists\){NR}(RESPONSABLE(NR, NOM, PRENOM, "Informatique"))
Solution
SQL : requête 2
SELECT R.NOM, R.PRENOM
FROM RESPONSABLE R, COURS C
WHERE R.NR = C.NR
AND C.DPT = "Informatique"
Solution
Calcul relationnel : requête 2
Res = {NOM, PRENOM}|\(\exists\){NR, NC, CODE_COURS, INTITULE, ECTS, DPT}(RESPONSABLE(NR, NOM, PRENOM, DPT)\(\wedge\)COURS(NC, CODE_COURS, INTITULE, ECTS, NR, "Informatique"))