Exercices du 16 mars 2005
Exercices IBD 1 / 3
Séance d'Exercices IBD N°1
Exercice 1 : Traitement de requêtes – Optimisation algébrique Soit le schéma relationnel suivant,
Student(STUID, STUname, Major, Credits) Faculty(FACID, FACname, Dept, Rank) Class(Course#, Facno, Sched, Room) Enroll(Coursno, STUno, Grade)
1) Considérer le graphe ci-dessous et utiliser les heuristiques pour trouver deux arbres optimaux. Vous donnerez l'expression algébrique résultante.
πSTUname,Credits
σSched='MWF9'
σGrade='A' XCourse#=Courseno
XSTUID=STUno Class
Enroll Student
1
πSTUname,Credits
σSched='MWF9'
σGrade='A'
XCourse#=Courseno
XSTUID=STUno
Class Enroll
Student
πCourse#
π[STUname,credits]((Student ×STUID=STUnoσ[Grade='A']Enroll) ×Course#=Coursenoπ[Course#]σ[Sched='MWF9']Class) or
Exercices du 16 mars 2005
Exercices IBD 2 / 3 2
πSTUname,Credits
σSched='MWF9' σGrade='A'
XCourse#=Courseno
XSTUID=STUno
Class Enroll
Student πSTUno
π[STUname,credits]( π[STUno]( σ[Sched='MWF9']Class × Course#=Coursenoσ[Grade='A']Enroll) × STUID=STUno Student) 2) Optimiser les requêtes suivantes en utilisant l'optimisation d'expression algébrique.
Q1=π[FACname,Dept] σ[ FACID=FACno](σ[Room='A205'] Class × Faculty) πFACname,Dept
σRoom='A205'
X
Class
Faculty σFACID=FACno
πFACname,Dept
σRoom='A205'
XFACID=FACno
Class
Faculty
π[FACname,Dept] (σ[Room='A205'] Class ×FACID Faculty) Q2= Select FACname, Sched, Course#
From Faculty, Class, Enroll, Student
Where STUname='Burns, Edward' and Class.Course#=Enroll.Courseno and Faculty.FACID=Class.FACno and Student.STUID=Enroll.STUno
π[FACname,Sched,Course#]σ[STUname='Burns,Edward']σ[Course#=Courseno]σ[FACID=FACno]σ[STUID=StU no](Faculty × Class × Enroll × Student)
devient
Exercices du 16 mars 2005
Exercices IBD 3 / 3
π[FACname,Sched,Course#]((π[Courseno](π[STUID]σ[STUname='Burns,Edward']Student ×STUID=STUno Enroll)
×Course#=Courseno Class) ×FACID=FACno Faculty) Q3= Select STUname, Grade, Course#
From Student, Enroll, Class, Faculty
Where FACname='Tanaka' and Sched='MTHF12' and Class.Course#=Enroll.Courseno and Faculty.FACID=Class.FACno and Student.STUID=Enroll.STUno
π[STUname,Grade,Course#]σ[FACname='Tanaka']σ[Sched='MTHF12']σ[Course#=Courseno]σ[FACID=FACno]
σ[STUID=StUno]( Student × Enroll × Class × Faculty) devient
π[STUname,Grade,Course#]((π[Course#](π[FACID]σ[FACname='Tanaka']Faculty ×FACID=FACno
σ[Sched='MTHF12']Class) ×Course#=Courseno Enroll) ×STUID=Stuno Student)