18/01/2022 1 Bases de données avancées 2ème année Cycle d’Ingénieur en Informat

18/01/2022 1 Bases de données avancées 2ème année Cycle d’Ingénieur en Informatique Bases de Données Avancées 1 Dr Héla GOUIDER Objectifs du module Bases de Données Avancées Dr Héla GOUIDER 2 Connaitre l'utilité de l'extension procédurale au langage SQL, comprendre la place du PL/SQL dans les architectures applicatives. Comprendre le traitement transactionnel dans Oracle, Maîtriser les éléments du langage PL/SQL, Connaître et utiliser le langage procédural PL/SQL Savoir créer des blocs PL/SQL qui puissent être partagés par plusieurs applications. Maitriser les procédures, les fonctions, les packages, les triggers Plan du module Bases de Données Avancées Dr Héla GOUIDER 3 Concepts de base du langage PL/SQL Les structures de contrôle Les curseurs Les exceptions Les sous-programmes Les déclencheurs Concepts de base Chapitre 1 Bases de Données Avancées 4 Dr Héla GOUIDER 18/01/2022 2 Objectifs de chapitre Bases de Données Avancées Dr Héla GOUIDER 5 Connaître la forme d'un bloc PL/SQL anonyme Identifier les types de variables PL/SQL Maitriser l'utilisation des variables de liaison. Maitriser l'utilisation de la requête Select à l'intérieur d'un bloc PL/SQL Plan du chapitre Bases de Données Avancées Dr Héla GOUIDER 6 Eléments et syntaxe d'un bloc PL/SQL Les types de variables PL/SQL Les variables scalaires Les variables composées L'affectation dans PL/SQL Accès à la base de données Bases de Données Avancées Dr Héla GOUIDER 7 Introduction au PL/SQL Abréviation de Procedural Language extensions to SQL PL/SQL étend SQL en lui ajoutant des éléments procéduraux: • Les variables et les types. • Les structures conditionnelles et les structures itératives. • La programmation modulaire: les sous-programmes Bases de Données Avancées Dr Héla GOUIDER 8 Avantages du PL/SQL Réduction considérable du Traffic entre le système de gestion de bases de données et l’application. Traitement interne (au niveau de L’SGBD) Diminution des échanges réseau (un bloc de programmation. augmentation de la performance globale. Simple d'apprentissage et de mise en œuvre. Une syntaxe claire qui offre une grande lisibilité en phase de maintenance des applications. Offre une combinaison entre les requêtes SQL (select, insert, update,delete) et les instructions procédurales. 18/01/2022 3 Structure d’un bloc PL/SQL Bases de Données Avancées Dr Héla GOUIDER 9 Les programmes PL/SQL sont écrits sous forme de blocs de code définissant plusieurs sections, Deux types de blocs: Les bloc anonymes Les blocs nommées Bases de Données Avancées Dr Héla GOUIDER 10 Structure d’un bloc PL/SQL PL/SQL possède: une syntaxe, un vocabulaire un jeu de caractères. Bases de Données Avancées Dr Héla GOUIDER 11 Structure d’un bloc PL/SQL anonyme  DECLARE: Cette section contient les définitions et les initialisations de toutes les variables qui vont être utilisées dans le bloc. Si le bloc n'a pas de variable à déclarer,cette section peut être omise  BEGIN: Cette section définit le début la partie exécutable c’est-à-dire le corps du bloc, Elle contient les instructions du programme et éventuellement une section de traitement des erreurs. Elle est obligatoire et elle se termine par le mot clé END.  EXCEPTION:C’est une section facultative elle se compose d’instructions pour la gestion des erreurs. Bases de Données Avancées Dr Héla GOUIDER 12 La syntaxe PL/SQL: Bloc Imbriqué On peut avoir des blocs Imbriqués: Encapsuler des blocs anonymes dans d'autres blocs PL/SQL. Imbriquer des blocs anonymes dans d'autres blocs anonymes à plusieurs niveaux. 18/01/2022 4 Bases de Données Avancées Dr Héla GOUIDER 13 La syntaxe PL/SQL: Jeu de caractères Un programme PL/SQL est une série séquentielle d’instructions. Chaque instruction est faite de combinaisons des caractères. Ces caractères sont • Les lettres majuscules et minuscules:A+Z et a+z. • Les chiffres entre 0+9. • Les symboles suivants:( ) + - * / < > = ! - ; : . @ % .. , # " & _|{ } ? ( [] La syntaxe PL/SQL: Les commentaires Bases de Données Avancées Dr Héla GOUIDER 14 Pour écrire un commentaire mono-ligne -- affichage d’un message mono-ligne Pour écrie un commentaire multi-ligne /* affichage d’un message multilignes*/ La syntaxe PL/SQL: Sortie à l’écran Bases de Données Avancées Dr Héla GOUIDER 15 La gestion des entrées/sorties n’est pas intégrée dans le langage PL/SQL. Ces sorties peuvent être manipulées à travers l’application intégrée DBMS _OUTPUT. La procédure PUT_LINE permet d‘afficher des messages depuis un bloc PL/SQL (au niveau de la sorite du script). La syntaxe PL/SQL: Sortie à l’écran Bases de Données Avancées Dr Héla GOUIDER 16 Exemple 18/01/2022 5 La syntaxe PL/SQL: Sortie à l’écran Bases de Données Avancées Dr Héla GOUIDER 17 Exemple (Le résultat) Les types de variables PL/SQL Bases de Données Avancées Dr Héla GOUIDER 18 Les variables et les constantes sont des espaces mémoire qu’on réserve pour pouvoir stocker des données nécessaires pour un traitement particulier, On ne peut pas utiliser les mots réservés pour les noms des variables ou des constantes. On déclare les variables au niveau de la section DECLARE. Syntaxe: Les types de variables PL/SQL Bases de Données Avancées Dr Héla GOUIDER 19 • NomVariable: Il doit être unique dans un bloc. • TYPE: Chaque variable doit avoir un type bien défini • CONSTANT: Si on met cette clause c’est-à-dire la variable ne doit pas changer de valeur tout au long du programme. • NOT NULL: La variable ne peut pas rester non instanciée sinon une erreur est déclenchée lors de la compilation du bloc. • := VALEUR: On donne une valeur d’initialisation à la variable. Cette valeur doit respecter le type et la précision de la variable. Les types de variables PL/SQL Bases de Données Avancées Dr Héla GOUIDER 20 Types de données: Le type de données définit le format de stockage Les restrictions d'utilisation de la variable Les valeurs qu'elle peut prendre. On dispose de tout l’ensemble de types utilisables dans la définition des colonnes des tables Ceci facilite les échanges de données entre les tables et les blocs PL/SQL. 18/01/2022 6 Bases de Données Avancées Dr Héla GOUIDER 21 Les types de variables PL/SQL Quatre catégories de types de données: 1. Scalaires: c’est une donnée atomique c-à-d n'est pas composée d'autres types de données, (par exemple types de colonne d’une table). 2. Composés: Il se compose de plus qu'un élément (valeur), donc d’un groupe d'éléments tel que chaque élément possède une valeur. 3. Références: C’est un type qui fait référence à une autre variable du programme (hérite le type d’un autre élément) . 4. Grands objets : Un type de données qui spécifient la localisation des grands objets. Bases de Données Avancées Dr Héla GOUIDER 22 Les types de variables PL/SQL: variable scalaire Bases de Données Avancées Dr Héla GOUIDER 23 Les types de variables PL/SQL: variable scalaire Quatre catégories des types scalaires: Numériques Caractères Dates Booléens Bases de Données Avancées Dr Héla GOUIDER 24 Les types de variables PL/SQL: variable scalaire Types numériques Type de taille variable Accepte la valeur zéro ainsi que des nombres négatifs et positifs. La précision correspond au nombre de chiffres à droite de la virgule La précision maximum de NUMBER, est de 38 chiffres. Exemple: 18/01/2022 7 Bases de Données Avancées Dr Héla GOUIDER 25 Les types de variables PL/SQL: variable scalaire Bases de Données Avancées Dr Héla GOUIDER 26 Les types de variables PL/SQL: variable scalaire Type date: Date Exemple: 01-JAN-18 Remarques: Le input et le output par défaut sont écrits sous le format DD-MON- YY (tout dépend de la version) La fonction SYSDATE renvoie la date et l’heure système. La fonction ADD_MONTHS(date, nbre_de_mois) ajoute un nombre spécifié de mois à une date. La fonction LAST_DAY(date) retourne le dernier jour du mois de la date spécifiée. La fonction MONTHS_BETWEEN(date1, date2) calcule le nombre de mois entre deux dates Bases de Données Avancées Dr Héla GOUIDER 27 Les types de variables PL/SQL: variable scalaire Type booléen: BOOLEAN Il permet de stocker des valeurs logiques c’est-à-dire TRUE, FALSE ou la valeur NULL. Les types de variables PL/SQL: variable scalaire Bases de Données Avancées Dr Héla GOUIDER 28  Type dérivé %TYPE: C‘est référence à un autre type de variable. La variable à laquelle elle fait référence doit faire l'objet d'une déclaration du type de donnée préalable. C’est principalement utile lorsqu’on déclare des variables qui vont contenir des valeurs de la base de données. De ce fait, on peut utiliser des types qui sont dérivés de la base sans devoir les connaitre. 18/01/2022 8 Les types de variables PL/SQL: variable scalaire Bases de Données Avancées Dr Héla GOUIDER 29  Type dérivé %TYPE: Syntaxe: Exemple: On est pas obligé de savoir exactement le type de données du champs adresse de la table T_utilisateurs. Si on modifie la définition du champ adresse dans la table T_utilisateurs (changer la taille ou le type) de la base de données, le type de la variable V_adresse va changer au moment de l’éxecution Les types de variables PL/SQL: variable composée Bases de Données Avancées Dr Héla GOUIDER 30 Types dérivés %ROWTYPE Ce type de données permet de déclarer une variable composée qui a une structure équivalente à une ligne dans la table spécifiée. C’est un enregistrement composé des noms de colonnes (attributs) et des types de données référencés dans la table. La uploads/Ingenierie_Lourd/ cours-bases-de-donnees-avancees-complet.pdf

  • 13
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager