Cours SGBD Faîçal Felhi felhi_fayssal@yahoo.fr Faculté des Sciences de Gabès Pl

Cours SGBD Faîçal Felhi felhi_fayssal@yahoo.fr Faculté des Sciences de Gabès Plan de cours 1. Chapitre1: Introduction à SGBD et PLSQL 2. Chapitre2: Les structures de contrôle (PLSQL) 3. Chapitre3: Interaction avec Oracle et curseurs explicites 4. Chapitre4: Gestion des exceptions 5. Chapitre5: Les sous programmes 6. Chapitre6: Les sous programmes stockés et les packages 7. Chapitre7: Les déclencheurs 2 Chapitre 1 : Introduction à SGBD et PLSQL Faîçal Felhi felhi_fayssal@yahoo.fr Faculté des Sciences de Gabès Cours SGBD La gestion des bases de données Pour contrôler les données ainsi que les utilisateurs, le besoin d'un système de gestion s'est vite fait ressentir. La gestion de la BD se fait grâce à un système appelé Système de Gestion de Bases de Données (SGBD). Le SGBD est une collection de logiciels permettant de créer, gérer et interroger de manière efficace une BD indépendamment du domaine d’application. 4 Mono ou multiordinateur. En général, peut gérer plusieurs BDs. Peut aussi accéder aux BDs d’autres SGBDs. 5 Années 1970 : premiers SGBD commerciaux (hiérarchique, réseau) couplage encore assez fort entre données et programmes difficulté d'accès aux données Années 1970-1980 : premiers SGBD relationnels modèle fondé sur une théorie mathématique langage déclaratif d'accès aux données, "simple" à utiliser Années 1990 : premiers SGBD orientés-objets (OO) intégration de types de données plus divers Historique des SGBD Avantages de l’utilisation d’un SGBD Centralisation des données intégrité des données Contrôle centralisé de l'accès aux données sécurité accrue Instructions de traitement très puissantes grande rapidité de développement Indépendance vis-à-vis de la structure physique et logique des données maintenance facilitée 6 Les types de SGBDs Les SGBD peuvent être classés selon les modèles des BD (hiérarchique, réseau, relationnel; relationnel objet, objet, … Les SGBD les plus connus sont : Oracle, SQLServer, MySQL, PostgreSQL, Microsoft Access, Informix, DB2, Sybase, …. Introduction au langage PL/SQL PL/SQL (Procedural Language / Structured Query Language) est une extension procédurale à SQL : PL/SQL intègre parfaitement le langage SQL en lui apportant une dimension procédurale. En effet, le langage SQL est un langage déclaratif non procédural permettant d'exprimer des requêtes dans un langage relativement simple. En contrepartie il n'intègre aucune structure de contrôle permettant par exemple d'exécuter une boucle itérative. Le langage PL/SQL permet de définir un ensemble de commandes contenues dans ce que l'on appelle un "bloc" PL/SQL. Un bloc PL/SQL peut lui-même contenir des sous-blocs. Le bloc PL/SQL est analysé et exécuté par le moteur PL/SQL. 7 8 Lorsque le moteur PL/SQL reçoit un bloc pour exécution, il effectue les opérations suivantes : Séparation des ordres SQL et PL/SQL Passage des commandes SQL au processeur SQL ( SQL Statement Executor) Passage des instructions procédurales au processeur d’instructions procédurales (Procedural Statement Executor) Introduction au langage PL/SQL Les blocs PL/SQL Le bloc est l'unité de programmation PL/SQL. Structure d'un bloc PL/SQL : [DECLARE # déclarations et initialisation] BEGIN # instructions exécutables [EXCEPTION # interception des erreurs] END; Les blocs PL/SQL peuvent être imbriqués les uns dans les autres: DECLARE # BEGIN DECLARE #.. BEGIN ## BEGIN ### END ; ### END ; ##.. END ; 9 Les blocs PL/SQL PL/SQL distingue deux types de blocs : Bloc « anonyme », il correspond à une séquence qui s’exécute à l’endroit où elle existe. Bloc « nommé », c’est sous-programme : procédure ou fonction, et pouvant être appelée autant de fois que nécessaire. Chaque bloc PL/SQL peut être constitué de 3 sections : Une section facultative de déclaration et initialisation de types, variables et constantes Une section obligatoire contenant les instructions d'exécution Une section facultative de gestion des erreurs 10 Section de déclaration Section déclarative optionnelle (facultative) d'un bloc Débute par le mot clé DECLARE Elle contient toutes les déclarations des variables qui seront utilisées localement par la section exécutable, ainsi que leur éventuelle initialisation. Cette section ne peut pas contenir d'instructions exécutables. Toutefois, il est possible de définir dans cette section des procédures ou des fonctions contenant une section exécutable. Toute variable doit avoir été déclarée avant de pouvoir être utilisée dans la section exécutable. Exemple : DECLARE LC$Chaine VARCHAR2(15) := 'Salut Monde' ; BEGIN DBMS_OUTPUT.PUT_LINE( LC$Chaine ) ; END ; Une variable LC$Chaine est déclarée de type VARCHAR2(15) et initialisée avec la valeur 'Salut Monde' ; Dans la section exécutable, cette variable est transmise à la fonction DBMS_OUTPUT() pour être affichée à l'écran 11 Section exécutable Section obligatoire d'un bloc Débute par le mot clé BEGIN et se termine par END Elle contient les instructions de programme et la section de gestion des erreurs Chaque instruction doit être suivi du terminateur d'instruction ; 12 Section de gestion des exceptions Section de gestion des erreurs optionnelle (facultative) débute par le mot clé EXCEPTION Elle contient le code exécutable mis en place pour la gestion des erreurs Lorsqu'une erreur intervient dans l'exécution, le programme est stoppé et le code erreur est transmis à cette section Exemple : DECLARE V_Chaine VARCHAR2(15) := 'Hello World' ; BEGIN DBMS_OUTPUT.PUT_LINE( V_Chaine ) ; EXCEPTION When ….then END ; Les erreurs doivent être interceptées avec le mot clé WHEN suivi du code erreur ciblé. 13 14 Les types PL/SQL se répartissent en deux classes : scalaire et composé. Types scalaires PL/SQL supporte les types du langage SQL (CHAR, VARCHAR2 , NUMBER , DATE) et offre des types supplémentaires pour déclarer des variables et des constantes ainsi que des sous types. Types PL/SQL et déclarations Type Explication BINARY_INTEGER Nombre entier compris entre -2 147 483 647 et +2 147 483 647 NUMBER[(e,d)] Nombre réel avec e chiffres significatifs stockés et d décimales BOOLEN Une variable booléenne peut recevoir les valeurs TRUE FALSE NULL. NATURAL Sous-ensemble de BINARY_INTEGER des entiers de 0 à 2147483647 POSITIVE Sous-ensemble de BINARY_INTEGER des entiers de 0 à 2147483647 INT, INTEGER, SMALLINT, DEC, REAL, DECIMAL Sont des sous-types du type NUMBER ROWID Permet de stocker l'adresse absolue d'une ligne dans une table sous la forme d'une chaîne de caractères . Le format d'une telle variable est le suivant : 000000FFFBBBBBBRRR 000000 représente le numéro de l'objet qui possède cette ligne (dans le cas de cluster, plusieurs objets peuvent partager le même segment) FFF représente le numéro du fichier qui contient la ligne BBBBBB représente le numéro du bloc dans le fichier RRR représente le numéro de ligne dans le bloc 15 Types PL/SQL et déclarations Déclaration d’une variable Syntaxe: Nom_variable type [NOT NULL] [ { :=| DEFAULT} expression ] ; nom variable représente le nom de la variable composé de lettres, chiffres, $, ou # . Le nom de la variable ne peut pas excéder 30 caractères NOT NULL interdit d’affecter une valeur nulle dans la variable durant toute sa vie et exige obligatoirement son initialisation à la déclaration.  [ { :=| DEFAULT} expression ] initialise une variable dès sa déclaration Leur initialisation, facultative, s'effectue avec l'opérateur := Exemples : age integer; nom varchar(30); dateNaissance date; Date _demain date DEFAULT SYSDATE+1; ok boolean := true; 16 Déclaration d’une variable Il est important de noter que : Les déclarations multiples sont interdites (une seule déclaration par ligne): i, j integer; Les identificateurs de variables et de constantes doivent être différents des noms de colonnes; PL/SQL n'est pas sensible à la casse. Pour lui les expressions suivantes sont équivalentes : NOM_VARIABLE NUMBER ; Nom_Variable Number ; nom_variable number ; Commentaires  -- Pour une fin de ligne  /* Pour plusieurs lignes */ 17 Déclaration d’une variable Identificateurs Préfixe Exemple Variables V_ V_Salaire Exceptions E_ E_Stock_Insuffisant Curseurs C_ C_Etudiant Paramètre P_ P_Chno 18 Pour une meilleur lisibilité des programmes, il est recommandé de préfixer les identificateurs selon les conventions suivantes : Déclaration d’une variable L’attribut %TYPE référence à un type existant qui est soit une colonne d'une table soit un type défini précédemment %TYPE : se lit de même type que Syntaxe: nom_variable1 nom_variable2%TYPE ; Exemple: -- variable de même type que la colonne ENAME de la table EMP V_Nom EMP.ENAME%TYPE ; -- variable de même type qu'une ligne de la table EMP V_EMP EMP%ROWTYPE ; V_Dat1 DATE ; -- variable de même type que V_Dat1 (DATE) V_Dat2 V_Dat1%TYPE ; 19 Déclaration des constante Une constante est une variable dont l'initialisation est obligatoire et dont la valeur ne pourra pas être modifiée en cours d'exécution Elle est déclarée avec le mot clé : CONSTANT qui doit précéder le type Syntaxe: Nom_constante CONSTANT nom_de_type [ { :=| DEFAULT} expression ] ; Exemple : Pie CONSTANT NUMBER := 3. 14159 ; 20 Les types  Les types PL/SQL se répartissent en deux classes : scalaire et composé. Types composés  PL/SQL offre deux types composés : le type enregistrement (RECORD) et le type table (TABLE). Un enregistrement peut être défini de deux façons, soit en définissant ses éléments, soit en se référant à une structure de données (table de la base ou curseur) 21 Les types Type enregistrement (RECORD)  La déclaration se fait en deux étapes : a/ Déclaration du type enregistrement Syntaxe TYPE nom-type IS RECORD ( champ1 type1, champ2 type2, …); b/ Déclaration d’une variable du type enregistrement Syntaxe nom_variable nom_type; Exemple uploads/Management/ chap1-plsql 1 .pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jul 02, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.5523MB