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
1
SELECT R.NOM, R.PRENOM
2
FROM RESPONSABLE R
3
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"))