Professional Documents
Culture Documents
Exercice 1
Considrons le schma de relations suivant
Cours (IdCours, Jour, Heure)
Se deroule (IdCours, IdSalle)
Etudiant (IdEtudiant, Nom, Adresse)
note (IdCours, IdEtudiant, Note)
Ces quatre schmas forme le schma de la base de donnes qui servira pour lexercice. Un
exemple de valeur courante possible pour la base de donnes figure ci-dessous.
R2
IdEtudiant
100
200
300
100
algo
200
A
Page 1
Res = R1 R2
Donner les couples (jour, heure) pour lesquels la salle S1 est occupe par un cours
R1 = cours sederoule (cours.CS.IdCours = sederoule.IdCours)
R2 = R1 (IdSalle = S1)
RES = R2 (Jour, Heure)
Exercice 2
Soit les relations Employ(numScu, nom, prnom, salaire). Ami(nom, prnom,
adresse, ge) Donnez une expression algbrique quand on souhaite trouver :
1. tous les employs.
prnom, salaire)
R2=Ami(nom, prnom)
salaire
dpassant
15000.
R3
nom
Martin
Prnom
Paul
gade
3
Legrand
Marcel
legrand
madeleine
R2
nom
Prnom
Martin
Paul
Legrand
Marcel
durand
laetitia
legrand
madeleine
R3
nom
Prnom
gade
Martin
Paul
3
Page 4
Marcel
Legrand
2
laetitia
Durand
1
madeleine
Legrand
3
Patricia
Duval
R4
nom
Prnom
gade
Martin
Paul
Legrand
madeleine
nom
Prnom
gade
Legrand
Marcel
Durand
laetitia
R5
R6 (produit cartsien)
Nom
prnom
Employs_salle.grade
Salaire.grade
salaire
Martin
Paul
1200
Martin
Paul
1400
Martin
Paul
1600
Legrand
Marcel
1200
Legrand
Marcel
1400
Legrand
Marcel
1600
Durand
Laetitia
1200
Durand
laetitia
1400
Page 5
Durand
laetitia
1600
Legrand
madeleine
1200
Legrand
madeleine
1400
Legrand
madeleine
1600
Nom
prnom
Employs_salle.grade
Salaire.grade
salaire
Martin
Paul
1600
Legrand
Marcel
1400
Durand
Laetitia
1200
Legrand
madeleine
1600
R7 (jointure)
R8= R9
nom
Prnom
Martin
Paul
Legrand
madeleine
Exercice 4
Soit le schma relationnel suivant :
employe(Nom, Prenom, DateDeNaissance, Adresse, NumeroSecuriteSociale,
Salaire, NumeroDepartement, Superieur)
departement(NomDepartement, NumeroDepartement, Directeur)
projet(NomProjet, NumeroProjet, Lieu, NumeroDepartement)
travaille(NumeroSecuriteSociale, NumeroProjet, Heures)
Lattribut Superieur dun employ contient le numro de scurit sociale du suprieur
direct de lemploy.
Traduire en franais les requtes suivantes qui sont exprimes en algbre relationnelle :
1.
3.
afficher les noms et adresse des employs qui sont encadrs par Rochat
Julliette
4. Nom[employe (Heures>10 travaille) (Lieu=SophiaAntipolis
(NumeroProjet,Lieuprojet))]
les noms des employs travaillant plus de 10 heures dans des projets ayant
lieu la ville de sophiaantipolis
5. NomProjet [projet travaille (
(NumeroSecuriteSociale[Nom=Muller,Prenom=Jean employe]) U [
(NumeroSecuriteSociale [Nom=Grandjean, Prenom=Annie employe]))]
Citer tous les noms des projets dans lesquels les employs (Muller Jean et Grandjean
Annie) travaillent.
Nom,Prenom [
Exercice 5
Soit une base de donnes de gestion des projets qui contient les relations suivantes:
Employe(Matr, NomE, Grade, DatEmb, Sup, Salaire, Commission, NDept)
Dpartement (NumDept, NomDept, Lieu)
Projet(CodeP, NomP)
Participation(MatrEmp, CdeP, Heures)
Exprimer les requtes suivantes en algbre relationnelle.
1) Donner les numros des dpartements qui participent tous les projets.
R1.1= jointure (employ, participation / matrEmp.employ =
matremp.participation)
R1.2= projection (R1.1, ndept)
2) Donner les noms de dpartements qui ont tous les grades (comptable,
programmeur, analyste).
R2.1 = Slection (employ / grade = 'comptable' or grade =programmeur or grade
=analyste)
R2.2 = jointure (R2.1, dpartement / R2.1. ndept=dpartement. ndept)
R2.3=projection(R2.2/ nomdept)
3) Donner les noms des employs qui ont le plus gros salaire de leur dpartement.
Comme on ne peut pas utiliser les fonctions dagrgat en algbre donc pas de
solution pour cette requte.
4) Donner le nom du (ou des) dpartement(s) qui a (ont) le plus grand nombre
d'employs.
Page 7
Comme on ne peut pas utiliser les fonctions dagrgat en algbre donc pas de
solution pour cette requte.
Exercice 6
PILOTE (NUMPIL, NOMPIL, ADR, SAL)
AVION (NUMAV, NOMAV, CAPACITE, LOC)
VOL (NUMVOL, NUMPIL, NUMAV, VILLE_DEP, VILLE_ARR, H_DEP, H_ARR)
NUMPIL: cl de PILOTE, nombre entier, NOMPIL: nom du pilote, chane de caractres
ADR: ville de la rsidence du pilote, chane de caractres
SAL: salaire du pilote, nombre entier, NUMAV: cl de AVION, nombre entier
CAPACITE: nombre de places d'un avion, nombre entier
LOC: ville de l'aroport, chane de caractres, NUMVOL: cl de VOL, nombre entier
VILLE_DEP: ville de dpart du vol, chane de caractres
VILLE_ARR: ville d'arrive du vol, chane de caractres
H_DEP: heure de dpart du vol, nombre entier entre 0 et 23
H_ARR: heure d'arrive du vol, nombre entier entre 0 et 23
Requtes en algbre relationnelle.
1. Expression des projections et slections
(a) Donnez la liste des avions dont la capacit est suprieure 350 passagers.
R1=Slection(AVION/CAP>350)
(b) Quels sont les numros et noms des avions localiss Nice ?
R2.1=Slection(AVION/LOC='NICE')
R2.2=Projection(R2.1/NUMAV,NOMAV)
(c) Quels sont les numros des pilotes en service et les villes de dpart de leurs vols ?
R3=Projection(VOL/NUMPIL,VILLE_DEP)
(d) Donnez toutes les informations sur les pilotes de la compagnie.
R4=PILOTE
(e) Quel est le nom des pilotes domicilis Paris dont le salaire est suprieur 15000 ?
R5.1=Slection(PILOTE/ADR='PARIS')
R5.2=Slection(R5.1/SAL>15000)
R5.3=Projection(R5.2/NOMPIL)
2. Utilisation des oprateurs ensemblistes
(a) Quels sont les avions (numro et nom) localiss Nice ou dont la capacit est infrieure
350 passagers ?
R6.1=Slection(AVION/CAP<350)
R6.2=Projection(R6.1/NUMAV,NOMAV)
R6.2=Union(R2.2,R6.2)oR2.2estlarelationtemporaire
gnrepourQ2
(b) Liste des vols au dpart de Nice allant Paris aprs 18 heures ?
R7.1=Slection(VOL/VILLE_DEP='NICE')
R7.2=Slection(VOL/VILLE_ARR='PARIS')
R7.3=Slection(VOL/H_DEP>18.00)
R7.4=Intersection(R7.1,R7.2)
R7.5=Intersection(R7.3,R7.4)
(c) Quels sont les numros des pilotes qui ne sont pas en service ?
R8.1=Projection(PILOTE/NUMPIL)
Page 8
R8.2=Projection(VOL/NUMPIL)
R8.3=Diffrence(R8.1,R8.2)
(d) Quels sont les vols (numro, ville de dpart) effectus par les pilotes de numro 100 et 204
R9.1=Slection(VOL/NUMPIL=100)
R9.2=Slection(VOL/NUMPIL=204)
R9.3=Union(R8.1,R8.2)
R9.4=Projection(R8.3/NUMVOL,VILLE_DEP)
3. Expression des jointures
(a) Donnez le numro des vols effectus au dpart de Nice par des pilotes Niois ?
R10.1=Slection(PILOTE/ADR='NICE')
R10.2=Jointure(R10.1,R7.1/NUMPIL=NUMPIL)R7.1gnre
pour2.b
R10.3=Projection(R10.2/NUMVOL)
(b) Quels sont les vols effectus par un avion qui nest pas localis Nice ?
R11.1=Slection(AVION/LOC 'NICE')
R11.2=Jointure(VOL,R11.1/NUMAV=NUMAV)
R11.3=Projection(R11.2/NUMVOL,VILLE_DEP,VILLE_ARR)
(c) Quels sont les pilotes (numro et nom) assurant au moins un vol au dpart de Nice avec un
avion de capacit suprieure 300 places ?
R12.1=Slection(AVION/CAP>300)
R12.2=Jointure(R7.1,R12.1/NUMAV=NUMAV)R7.1gnre
pour2.b
R12.3=Jointure(R12.2,PILOTE/NUMPIL=NUMPIL)
R12.4=Projection(R12.3/NUMPIL,NOMPIL)
(d) Quels sont les noms des pilotes domicilis Paris assurant un vol au dpart de Nice avec
un Airbus ?
R13.1=Slection(AVION/NOMAV='AIRBUS')
R13.2=Jointure(R7.1,R13.1/NUMAV=NUMAV)R7.1gnre
pour2.b
R13.3=Jointure(R13.2,R5.1/NUMPIL=NUMPIL)R5.1gnre
pour1.e
R13.4=Projection(R13.3/NOMPIL)
(e) Quels sont les numros des vols effectus par un pilote Niois au dpart ou larrive de
Nice avec un avion localis Paris ?
R14.1=Slection(VOL/VILLE_ARR='NICE')
R14.2=Union(R14.1,R7.1)
R14.3=Slection(AVION/LOC='PARIS')
R14.4=Jointure(R14.2,R14.3/NUMAV=NUMAV)
R14.5=Jointure(R14.4,R10.1/NUMPIL=NUMPIL)R10.1Cf3.a
R14.6=Projection(R14.5/NUMVOL)
(f) Quels sont les pilotes (numro et nom) habitant dans la mme ville que le pilote Dupont ?
R15.1=Slection(PILOTE/NOMPIL='DUPONT')
R15.2=Jointure(PILOTE,R15.1/ADR=ADR)
R15.3=Projection(R15.2/NUMPIL,NOMPIL)
(g) Quels sont les numros des pilotes en service diffrents de celui de Durand ?
R16.1=Slection(PILOTE/NOMPIL 'DURAND')
R16.2=Jointure(VOL,R16.1/NUMPIL=NUMPIL)
R16.3=Projection(R16.2/NUMPIL)
Page 9
(h) Quelles sont les villes desservies partir de la ville darrive dun vol au dpart de Paris ?
R17.1=Slection(VOL/VILLE_DEP='PARIS')
R17.2=Jointure(VOL,R17.1/VILLE_DEP=VILLE_ARR)
R17.3=Projection(R17.2/VILLE_ARR)
(i) Quels sont les appareils (leur numro) localiss dans la mme ville que lavion numro 100
R18.1=Slection(AVION/NUMAV=100)
R18.2=Jointure(AVION,R18.1/LOC=LOC)
R18.3=Projection(R18.2/NUMAV)
R18.4=Slection(R18.3/NUMAV 100)
Page 10