6.3.1. Pourquoi PL/SQL ?
Le langage SQL est un langage "ensembliste",
c'est-à-dire qu'il ne manipule qu'un ensemble de données
satisfaisant des critères de recherche. PL/SQL est un langage
"procédural", il permet de traiter de manière conditionnelle les
données retournées par un ordre SQL.
Le langage PL/SQL, abréviation de
"Procedural Language extensions to SQL", comme son nom l'indique, étend
SQL en lui ajoutant des éléments, tels que :
Les variables et les types.
Les structures de contrôle et les boucles. Les
procédures et les fonctions.
Les types d'objets et les méthodes.
Ce ne sont plus des ordres SQL qui sont transmis un à
un au moteur de base de données Oracle, mais un bloc de programmation.
Le traitement des données est donc interne à la base, ce qui
réduit considérablement le trafic entre celle-ci et
l'application.
Combiné à l'optimisation du moteur PL/SQL, cela
diminue les échanges réseau et augmente les performances globales
de vos applications.
Toutes les bases de données Oracle comportent un moteur
d'exécution PL/SQL. Comme Oracle est présent sur un très
grand nombre de plates-formes matérielles, le PL/SQL permet une grande
portabilité des applications. Le langage PL/SQL est simple
d'apprentissage et de mise en oeuvre. Sa syntaxe claire offre une grande
lisibilité en phase de maintenance des applications. De nombreux outils
de développement, en dehors de ceux d'Oracle, autorisent la
programmation en PL/SQL dans la base de données.
Mise en place d'un système d'information pour
la gestion des ressources humaines
Ci-après un schéma simple illustrant l'envoie des
requêtes PL/SQL d'un client vers le serveur oracle :
Figure 8 : Requête PL/SQL vers un
serveur
6.3.2. Architecture de PL/SQL
Le moteur de base de données, Oracle,
coordonne tous les appels en direction de la base. Le SQL et le PL/SQL
comportent chacun un "moteur d'exécution" associé, respectivement
le SQL STATEMENT EXECUTOR et le PROCEDURAL STATEMENT EXECUTOR.
Lorsque le serveur reçoit un appel pour exécuter
un programme PL/SQL, la version compilée du programme est chargée
en mémoire puis exécutée par les moteurs PL/SQL et
SQL. Le moteur PL/SQL gère les structures mémoire
et le flux logique du programme, tandis que le moteur SQL transmet à la
base les requêtes de données.
Le PL/SQL est utilisé dans de nombreux produits Oracle,
parmi lesquels : Oracle Forms et Oracle Reports ;
Oracle Application Express
Oracle Warehouse Builder ;
Les programmes PL/SQL peuvent être appelés à
partir des environnements de développement Oracle suivants :
SQL*Plus ;
Oracle Enterprise Manager;
les pré compilateurs Oracle (tels que Pro*C, Pro*COBOL,
etc.) ; Oracle Call Interface (OCI) ;
Server Manager;
Java Virtual Machine (JVM).
Un bloc PL/SQL peut être traité dans un outil de
développement Oracle (SQL*Plus, Oracle Forms, Oracle Reports). Dans ce
cas, seules les instructions sont traitées par le moteur PL/SQL
embarqué dans l'outil de développement, les ordres SQL
incorporés dans les blocs PL/SQL sont toujours traités par la
base de données. Ci-suit un schéma simple illustrant
l'architecture de PL/SQL :
Mise en place d'un système d'information pour
la gestion des ressources humaines
Figure 9 : Architecture de PL/SQL
|