Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL
B.Sadeg Le Havre Bibliographie S. Abiteboul, R. Hull, V. Vianu, Foundations of Databases, Addison- Wesley J.C. Date, A Guide to the SQL Standard, Addison-Wesley J.C. Date, A Guide to DB2, Addison-Wesley R. Elmasri, S. Navathe, Conception et architecture des bases de données, 4ème ed., publié par Pearson Education. H. Garcia-Molina, J. Ullman and J. Widom, Implementation of Database Systems, Prentice Hall, G. GARDARIN, Bases de Données, Eyrolles, 6ème tirage, R. Ramakrishnan et J. Gehrke DATABASE MANAGEMENT SYSTEMS, MacGraw Hill M. SCHOLL, B. AMANN, P. RIGAUX, V. CHRISTOPHIDES, D. VODISLAV, Polycopié de Bases de Données, librairie des Arts et Métiers. Ullman J.D. and Widom J. A First Course in Database Systems, Prentice Hall, 1997 Ullman J.D. Principles of Database and Knowledge-Base Systems, 2 volumes, Computer Science Press
B.Sadeg Le Havre Sommaire Rappels BD et SGBD relationnels Postgresql, pl/pgsql Algèbre relationnelle Dépendances fonctionnelles et normalisation Architecture d'un SGBD Optimisation dune BD Notions sur l'interfaçage avec les langages évolués Les différents types de SGBD
Le langage PL/SQL
B.Sadeg Le Havre On le trouve dans le processeur SQL d Oracle (SQLPLUS) Compromis entre un langage complètement procédural et un SQL de très haut niveau, mais avec un nombre limité d instructions. Permets d utiliser des variables locales, des boucles, des procédures, le traitement des relations ligne par ligne. Forme général : DECLARE déclarations BEGIN instructions exécutables END;. Run; - - pour exécuter le bloc La section DECLARE est optionnelle le point ou run (ou /) sont nécessaire pour terminer l instruction et l exécuter.
B.Sadeg Le Havre Exemple simple séquence de modifications : Soit la relation AIME (buveur, biere) => manipulation de AIME : Begin insert into AIME values ( Sally, Bud ); Delete from AIME Where buveur = Fred and biere = Miller; end;. Run; Procédures : des objets stockés dans la BD qui utilisent des instructions PL/SQL. ==>Forme générale : CREATE OR REPLACE PROCEDURE ( ) AS BEGIN END; La liste d arguments contient les noms des arguments avec leur type et le mode, qui peut être IN, OUT, IN OUT
B.Sadeg Le Havre Puisque les types dans la procédure doivent correspondre aux types de colonnes dans la BD, on utilise souvent pour déclarer les types d arguments et d autres variables des expressions comme : variable relation.attribut%TYPE; Exemple : une procédure qui prend une bière et un prix et l ajoute à Joe. Soit la relation : VENDRE (bar, biere, prix) Create or replace procedure joemenu (b IN vendre.biere%TYPE; p IN vendre.prix%TYPE) AS Begin Insert into vendre values(Bar de Joe, b, p); End;. Run; Rmq : le run ici ne fait que stocker la procédure. Il ne l exécute pas.
B.Sadeg Le Havre L appel d une procédure apparaît dans le corps d une instruction PL/SQL. Exemple : Begin Joemenu( Bud, 2.50); Joemenu( Moosdrool, 5.00); End;. Run; Assignation : variable := expression; Branchements : –IF THEN ELSE END IF Appeler une procédure
B.Sadeg Le Havre Rmq : Si branchements imbriquées : utiliser ELSEIF (au lieu de ELSE IF) Boucles : LOOP ….. EXIT WHEN ….. ENDLOOP;