Académique Documents
Professionnel Documents
Culture Documents
1 2 3 Objectifs et organisation du TP---------------------------------------------------------1 Position du problme-----------------------------------------------------------------------1 JDBC et PLSQL -------------------------------------------------------------------------------2 3.1 3.2 3.3 Solution base exclusivement sur JDBC --------------------------------- 2 Solution base exclusivement sur PL-SQL ------------------------------ 2 Synthse-------------------------------------------------------------------------- 2
1 Objectifs et organisation du TP
Lobjectif de ce TP est dillustrer lincapacit de SQL dexprimer des requtes dductives. Face de telles requtes, il ny a pas dautre solution que de dvelopper une application qui permet dvaluer ce que SQL ne permet pas dexprimer. Deux technologies sont examines pour traiter ce problme : une solution base sur le codage dun programme distant (ici en Java via JDBC) et une autre utilisant le PL-SQL (et les triggers), lextension Oracle de SQL. Le TP est organis de la manire suivante : - La section 2 pose le contexte applicatif du problme trait, il sagit de rpondre des requtes dductives. - la section 3 est consacre la mise en uvre et la comparaison des deux solutions proposes. Chaque tudiant dispose de sa propre base EMP-DEPT sur le serveur Oracle.
2 Position du problme
On cherche trouver tous les suprieurs hirarchiques de tous les employs. Exprimer en SQL les deux requtes suivantes : trouver les couples (nom demploy N, nom du suprieur hirarchique N+1) trouver les couples (nom demploy N, nom du suprieur hirarchique N+2)
1
On peut donc, en SQL, obtenir tous les suprieurs hirarchiques un niveau fix. Ainsi, il savre que si le graphe reprsentant les liens hirarchiques immdiats (N, N+1) a un diamtre connu, alors il suffit, pour trouver tous les suprieurs hirarchiques, de faire un nombre de jointures gal au diamtre de ce graphe.
3 JDBC et PLSQL
Supposons maintenant que lon veuille crire un programme qui calcule les couples (employ, suprieur hirarchique de niveau quelconque). Il est dlicat, au moment o lon crit le programme, de supposer un nombre limite de niveaux hirarchiques dans la base (si lhypothse ne vous parat pas choquante pour les suprieurs hirarchiques, imaginez si vous souhaitiez faire le mme type dopration sur un graphe reprsentant un rseau routier ou de tlcoms). Dans la suite de ce TP, nous vous prsentons deux solutions alternatives pour obtenir ce type dinformation. Vous devrez examiner chacune des solutions proposes et les analyser.
pour
Cherchez les infrieurs hirarchiques dun employ et vrifiez la cohrence des rsultats avec la solution base de JDBC. Vrifiez le comportement du trigger en mettant jour la relation EMP. Ecrivez, compilez et excutez un programme Java qui interroge la relation management et qui renvoie, pour un numro demploy donn, la liste des employs quil dirige.
3.3 Synthse
Discutez les avantages et inconvnients des deux approches dcrites ci-dessus en terme de performances.
Modifiez la deuxime solution pour rpondre la mme requte en ordonnant les employs en fonction de leur niveau hirarchique. Que pensez vous de la mme modification pour la solution Java ?