20/09/2016
1
Bases de données avancées
Master 1 Informatique
2016-2017
Jérôme Darmont
http://eric.univ-lyon2.fr/~jdarmont/
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 2
Actualité du cours
http://eric.univ-lyon2.fr/~jdarmont/?page_id=3142
http://eric.univ-lyon2.fr/~jdarmont/?feed=rss2
https://twitter.com/darmont_lyon2
hashtag #bda
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 3
Objectifs du cours
SQL : langage de requêtes (bases de données relationnelles)
Standard
Optimisateurs de requêtes
Bas niveau
Programmation nécessaire pour :
Tâches complexes
Interfaces utilisateurs
80 % des données sont peu ou pas structurées
Description via le langage XML
Langage
PL/SQL
Langage
XQuery
PL/SQL
Partie 1
Bases de données avancées 4
20/09/2016
2
Introduction
Bases du langage
Curseurs
Gestion des erreurs
Procédures stockées
SQL dynamique
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 5
PL/SQL : Plan
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 6
PL/SQL : Requêtes SQL dans un programme
SQL encapsulé : Requêtes SQL incorporées dans le code source
(PL/SQL, T-SQL, PL/pgSQL, Pro*C…)
API : Requêtes SQL via des fonctions du langage
(Java Persistence API, PHP Data Objects…)
Interfaces de niveau appel : intergiciel entre le langage et le SGBD
(ODBC, JDBC, ADO…)
Procédures stockées : Fonctions SQL stockées dans la base de
données et exécutées par le SGBD
(écrites en PL/SQL, T-SQL, PL/pgSQL)
C
U
R
S
E
U
R
S
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 7
PL/SQL : Caractéristiques du langage
Langage de 4
e
génération (L4G = L3G + syntaxe type SQL)
Conçu comme une extension de SQL
Déclaration de variables et de constantes
Types abstraits (collections, enregistrements, objets)
Modularité (sous-programmes, paquetages)
Gestion des erreurs (Gestion des erreurs)
Interaction étroite avec Oracle/SQL (types identiques)
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 8
PL/SQL : Caractéristiques du langage
SQL dynamique (construction de requêtes à la volée)
Programmation orientée objet
Performance (traitement par lots)
Productivité (uniformité des outils Oracle)
Portabilité (sur tous systèmes Oracle)
Sécurité (procédures stockées, déclencheurs)
20/09/2016
3
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 9
PL/SQL : Architecture d’Oracle
SQL
PL/SQL
Serveur
Oracle
Génie logiciel Réseau
AdministrationLogiciels tiers
SQL Developer
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 10
PL/SQL : Moteur Oracle
Oracle Database PL/SQL
Users Guide and Reference
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 11
PL/SQL : Types de blocs
Bloc anonyme
Stocké dans un fichier
Compilé et exécuté à la volée
Procédure stockée
Compilée
a priori
Stockée dans la base de données
Déclencheur
Procédure stockée associée à une table
Exécution automatique à la suite d’un événement
BD
BA
PS
Déc
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 12
PL/SQL : Structure d’un bloc
[DECLARE
-- Types, constantes et variables]
BEGIN
-- Instructions PL/SQL
[EXCEPTION
-- Gestion des erreurs]
END;
20/09/2016
4
A.
Jusqu’ici, tout va bien.
B.
Je suis déjà perdu.
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 13
PL/SQL : Sondage express
Répondre sur http://toreply.univ-lille1.fr
Question n° 92
Introduction
Bases du langage
Curseurs
Gestion des erreurs
Procédures stockées
SQL dynamique
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 14
PL/SQL : Plan
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 15
PL/SQL : Variables et constantes
Déclaration dans la section DECLARE d’un bloc PL/SQL
Variables
ex. date_naissance DATE;
compteur INTEGER := 0; -- Initialisation
compteur2 INTEGER DEFAULT 0; -- Valeur par défaut
id CHAR(5) NOT NULL := ‘AP001’;
Constantes
ex. taux_tva CONSTANT REAL := 0.2;
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 16
PL/SQL : Types de données
Oracle Database PL/SQL
Users Guide and Reference
20/09/2016
5
Type d’une autre variable
ex. credit REAL;
debit credit%TYPE;
Type de l’attribut d’une table
ex. num_emp EMP.EMPNO%TYPE;
Type des n-uplets d’une table
ex. un_etudiant STUDENT%ROWTYPE;
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 17
PL/SQL : Référencer un type existant
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 18
PL/SQL : Affectation de variable
Affectation simple
ex. n := 0;
n := n + 1;
Valeur de la base de données
ex. SELECT custname INTO nom_client
FROM customer WHERE custnum = 10;
SELECT ename, sal INTO nom, salaire
FROM emp WHERE empno = 5000;
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 19
PL/SQL : Opérateurs arithmétiques et logiques
Opérateurs arithmétiques + - / * **
Opérateur de concaténation ||
Opérateurs de comparaison = < > <= >= <>
IS NULL LIKE BETWEEN IN
Opérateurs logiques AND OR NOT
Bases de données avancées http://eric.univ-lyon2.fr/~jdarmont/ 20
PL/SQL : Tests
IF-THEN,IF-THEN-ELSE ou IF-THEN-ELSIF
IF condition1 THEN
-- Statements
[ELSIF condition2 THEN
-- Instructions PL/SQL]
[ELSE
-- Instructions PL/SQL]
END IF;
1 / 33 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !