Sunteți pe pagina 1din 2

Bases de donnes relationnelles : Interface PL/SQL et JDBC Textes des Travaux pratiques

1 2 Objectifs et organisation du TP ------------------------------------------------------- 1 JDBC et PLSQL ----------------------------------------------------------------------------- 1 2.1 2.2 3 Solution base exclusivement sur JDBC --------------------------------- 2 Solution base exclusivement sur PL-SQL ------------------------------ 2

Synthse -------------------------------------------------------------------------------------- 2

Merci de communiquer toute correction ou remarque sur ce document : Philippe.Picouet@enst-bretagne.fr

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 solutions sont examines dans ce TP. Elles correspondent aux deux technologies types proposes pour dvelopper des applications bases de donnes, savoir JDBC et PL-SQL. Chaque tudiant dispose de sa propre base EMP-DEPT sur le serveur Oracle.

2 JDBC et PLSQL
On cherche trouver tous les suprieurs hirarchiques de tous les employs. Exprimer en SQL les 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)

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 la rponse (1) de faire un nombre de jointures gal au diamtre de ce graphe.

Philippe Picouet - LUSSI - ENST Bretagne

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 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.

2.1 Solution base exclusivement sur JDBC


Vous trouverez sous http://perso.enst-bretagne.fr/~picouet/french/sgbd/jdbc/ft_graphes/ un programme Java qui renvoie, pour tout numro demploy existant dans EMP, la liste des employs quil dirige, mme plusieurs niveaux hirarchiques dcart. Examinez et testez ce programme (voir le fichier Alire.txt) en modifiant ventuellement la relation EMP.

2.2 Solution base exclusivement sur PL-SQL


La solution dveloppe ici consiste utiliser un programme PL-SQL qui calcule une relation Management contenant tous les couples (employs suprieurs hirarhciques. PL-SQL est un langage de programmation intgr Oracle. Pour que la relation Management soit toujours cohrente avec la relation Emp partir de laquelle elle est calcule, un trigger (dclencheur en franais) recalcule management chaque mise jour de la relation EMP. Excutez le script http://perso/~picouet/french/sgbd/oracle/deduction/management.sql pour crer la table management, la procdure :NGT et le trigger trig_emp. Cherchez les infrieurs hirarchiques dun employ et vrifiez la cohrence des rsultats avec la solution base de JDBC. Vrifiez le comportement du triggers en mettant jour la relation EMP. Ecrivez, compilez et excutez le programme Java qui interroge la relation Management et qui renvoie, pour un numro demploy donn, la liste des employs quil dirige.

3 Synthse
Discutez les avantages et inconvnients des deux approches dcrites ci-dessus en terme de performances. Modifiez chacune des deux solutions pour rpondre la mme requte en ordonnant les employs en fonction de leur niveau hirarchique.

Philippe Picouet - LUSSI - ENST Bretagne

S-ar putea să vă placă și