les systèmes de gestion de bases de données (sgbd) pl-sql

9
Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

Upload: marine-poulet

Post on 03-Apr-2015

109 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

Les Systèmes de Gestion de Bases de Données (SGBD)

PL-SQL

Page 2: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

2006-2007

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, 1999. G. GARDARIN, Bases de Données, Eyrolles, 6ème tirage, 2005. 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

Page 3: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

2006-2007

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 d’une BD Notions sur l'interfaçage avec les langages évolués Les différents types de SGBD

Page 4: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

Le langage PL/SQL

Page 5: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

2006-2007

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.

Page 6: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

2006-2007

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 <nom> ( <list-arg> )

AS

<declarations>

BEGIN

<<instructions PL/SQL>

END; La liste d ’arguments contient les noms des arguments avec leur

type et le mode, qui peut être IN, OUT, IN OUT

Page 7: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

2006-2007

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.

Page 8: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

2006-2007

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 <cond> THEN

<instructions>

ELSE

<instructions>

END IF

Appeler une procédure

Page 9: Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL

2006-2007

B.Sadeg Le Havre

Rmq : Si branchements imbriquées : utiliser ELSEIF (au lieu de ELSE IF)

Boucles :LOOP

…..

EXIT WHEN <condition>

…..

ENDLOOP;