SQL PL et SQL/PSM: développer d'applications bases de données

SQL/PSM (SQL/Persistent Stored Modules) est une norme ISO pour la "logique procédurale" dans SQL (depuis SQL:1999). SQL/PSM est donc un langage de programmation, utilisé principalement pour l'implémentation de procédures stockées, triggers (déclencheurs), et fonctions définies (UDF) dans plusiers bases de données relationnelles.

SQL PL (utilisé par Db2) était la première implémentation commerciale de SQL/PSM. Aussi MySQL et MariaDB utilisent SQL/PSM pour leurs procédures stockées, triggers et UDF; et en PostgreSQL ont peut utiliser le module PL/pgPSM.

Malheureusement, Oracle utilise un autre langage procédural: PL/SQL (voir Développement d'applications avec PL/SQL), qui n'est pas traité dans ce cours-ci. Aussi PostgreSQL utilise PL/SQL par défaut. Un troisième langage existe : Transact-SQL (t-SQL), aussi non compatible avec SQL/PSM, et utilisé par SQL Server et d'autres produits Microsoft.

SQL/PSM est particulièrement utile pour créer des procédures stockées, qui ont de plus en plus remplacé les applications qui étaient principalement écrites en (pour Unix/Linux) Java, C, C++, (pour MS-Windows) Java, C#, (pour z/OS) COBOL, PL/I REXX. SQL/PSM est ainsi devenu le langage de programmation par excellence pour intégrer la logique applicative avec "embedded" SQL. Dans Db2, cela implique en outre que la procédure sera de l'SQL statique: interprété/compilé une seule fois, exécuté plusieurs fois, ce qui est important pour la performance.

Ce cours traite donc d'abord la langage de programmation SQL/PSM; tous les détails et possibilités syntaxiques seront traités en grand détail. Nous examinons bien entendu l'interaction entre les éléments de l'environnement de programmation (comme les variables, le "program flow", la gestion des exceptions) et le DML tels que les instructions SELECT ou les curseurs. Pendant le cours, les participants auront l'opportunité de développer des procédures stockées en SQL/PSM, soit en Db2, soit en soit en MySQL, soit en MariaDB, afin de se trouver à l'aise avec ce matériel.

Lors de ce cours,

  • les participants connaîtront la syntaxe de base de SQL/PSM, alias SQL PL;
  • on pourra développer, corriger, et exécuter de nouveaux programmes;
  • on saura ce qui est important quand on récrira un programme existant dans une différente langue programmatoire;
  • les participants sauront utiliser des curseurs at des "exception handlers" d'une manière intelligente.

Calendrier

Il n'y a pas de sessions publiques à ce moment. Nous organisons volontiers un cours en entreprise ou une session publique supplémentaire (en cas d'un nombre suffisant de participants). Intéressé? Contactez-nous.

Participants

Ce cours s'adresse en premier lieu aux développeurs des programmes se servant de Db2, MySQL ou MariaDB, et qui veulent apprendre comment écrire ce genre de programmes en SQL/PSM.

Également, les DBA peuvent agrandir pendant ce cours leur expérience pour écrire ou installer des procédures stockées, des triggers ou des fonctions scalaires et tabulaires, ou pour automatiser les tâches de DBA d'une façon assez simple.

Connaissances préalables

De l'expérience avec SQL et avec Db2 (cf. Db2 for z/OS: cours de base ou Db2 for LUW: cours de base), MySQL ou MariaDB (cf MySQL & MariaDB: cours de base) est conseillé. La connaissance d'un autre langage de programmation procédural peut être un avantage mais n'est pas obligatoire.

Contenu

  • Introduction SQL/PSM
  • Variables

les déclarer, initialiser, utiliser; blocs BEGIN ... END

  • Contrôle du déroulement de programmes

structures conditionnelles IF...THEN...ELSE; CASE;

itérations: WHILE..DO loop • FOR...DO loop • ITERATE • REPEAT...UNTIL • LOOP • cursor-based FOR-loop

  • Travailler avec des données de la base de données; curseurs

SELECT INTO • déclaration et utilisation des curseurs • parametrisation • insert, delete, update 'where current of'

  • Traitement des erreurs

exceptions prédéfinis • déroulement du programme à l'aide d'exceptions • SIGNAL • GET DIAGNOSTICS

  • Objets procédurales

fonctions scalaires • procédures SQL • triggers; l'instruction SQL CALL;

possibilités pour la déclaration des paramètres et des 'locators'; options comme 'commit on return'

  • L'SQL dynamique:

PREPARE et EXECUTE d'une requête construite dynamiquement

Pédagogie

Répartition d'exposés théoriques et de travaux pratiques.

Durée

2 jours.

Formateur

Peter Vanroose.


INFO SESSION ET INSCRIPTION