Création de triggers de base de données

Dimension: px
Commencer à balayer dès la page:

Download "Création de triggers de base de données"

Transcription

1 8 Création de triggers de base de données Copyright Oracle Corporation, Tous droits réservés.

2 Objectifs Mostafa HANOUNE 2005/2006 A la fin de ce chapitre, vous serez capables de : Décrire les triggers de base de données, ainsi que leur utilisation Créer des triggers de base de données Décrire des règles de déclenchement pour les triggers de base de données Supprimer des triggers de base de données 8-2 But de ce chapitre Ce chapitre se propose de vous expliquer comment créer et utiliser des triggers de base de données. Développer des unités de programmes PL/SQL 8-2

3 Présentation des triggers Un trigger est un bloc PL/SQL qui s'exécute implicitement à chaque fois qu'un événement spécifique se produit. Il existe deux types de triggers : les triggers de base de données et les triggers d'application. 8-3 Présentation Les triggers de base de données s'exécutent de manière implicite lorsqu'une instruction INSERT, UPDATE ou DELETE (instruction de déclenchement) est émise sur la table connexe, et ce, quel que soit l'utilisateur connecté ou l'application utilisée. Ils s'exécutent de la même manière lorsque certaines actions se produisent (connexion d'un utilisateur ou fermeture de la base de données par l'administrateur, par exemple). Les triggers d'application s'exécutent de manière implicite lorsqu'un événement déterminé survient au sein de l'application. Les applications développées avec Form Builder font un usage intensif des triggers. Remarque : les triggers de base de données peuvent être définis sur des tables et des vues. Si une opération LMD est effectuée sur une vue, le trigger INSTEAD OF définit les actions qui doivent se produire. Si, au nombre des actions, figurent des opérations LMD sur des tables, tout trigger présent sur la (les) tables(s) de base sera déclenché. Développer des unités de programmes PL/SQL 8-3

4 Directives relatives à la conception de triggers Vous pouvez concevoir des triggers pour : Exécuter des actions connexes. Centraliser des opérations globales. Leur conception est à proscrire : Si la fonctionnalité existe déjà. Si les triggers que vous comptez créer font double emploi avec d'autres triggers. 8-4 Directives relatives à la conception de triggers Conformez-vous aux directives suivantes pour concevoir des triggers de base de données : Utilisez des triggers pour vous assurer que, lors de l'exécution d'une opération spécifique, les actions connexes seront, elles aussi, exécutées. N'utilisez ces triggers que pour les opérations globales et centralisées devant être déclenchées pour l'instruction de déclenchement, et ce, quel que soit l'utilisateur ou l'application qui a émis l'instruction. Ne définissez pas de triggers censés remplacer ou reproduire une fonctionnalité déjà intégrée dans la base de données Oracle. À titre d'exemple, ne définissez pas de triggers pour implémenter des règles d'intégrité, alors que cela peut être effectué à l'aide de contraintes déclaratives. L'usage abusif de triggers peut provoquer des interdépendances complexes, difficiles à gérer dans des applications volumineuses. Utilisez uniquement les triggers lorsque cela s'avère nécessaire. De plus, prenez garde aux effets récursifs et en cascade. Développer des unités de programmes PL/SQL 8-4

5 Trigger de base de données : exemple Application SQL> INSERT INTO EMP 2...; Mostafa HANOUNE 2005/2006 Table EMP EMPNO ENAME 7838 KING 7698 BLAKE 7369 SMITH 7788 SCOTT JOB PRESIDENT MANAGER CLERK ANALYST SAL Trigger CHECK_SAL 8-5 Exemple Dans cet exemple, le trigger de base de données vérifie les valeurs relatives aux salaires. Les valeurs qui sortent des limites acceptables en égard à la catégorie d'emploi peuvent être rejetées ou autorisées et enregistrées dans une table d'audit. Développer des unités de programmes PL/SQL 8-5

6 Création de triggers Temporisation du trigger Pour la table : BEFORE, AFTER Pour la vue : INSTEAD OF Evénement déclencheur : INSERT, UPDATE ou DELETE Nom de la table : sur la table ou la vue Type de trigger : ligne ou instruction Clause "When" : condition restrictive Corps du trigger : bloc PL/SQL Mostafa HANOUNE 2005/ Trigger de base de données Avant de coder le corps du trigger, vous devez définir ses éléments constitutifs : temporisation du trigger, événement déclencheur et type de trigger. Composante Description Valeurs possibles Temporisation du trigger Evénement déclencheur Déclenchement du trigger par rapport à l'événement déclencheur Quelle est l'opération de manipulation de données effectuée sur la table ou la vue qui provoquera le déclenchement du trigger? BEFORE AFTER INSTEAD OF INSERT UPDATE DELETE Type de trigger Nombre d'exécutions du corps du trigger Instruction Ligne Corps du trigger Action effectuée par le trigger Tout le bloc PL/SQL L'ordre dans lequel sont déclenchés plusieurs triggers du même type est totalement arbitraire. Si vous souhaitez que les triggers du même type soient déclenchés dans un ordre déterminé, regroupez-les tous dans un trigger qui appellera les différentes procédures dans l'ordre voulu. Développer des unités de programmes PL/SQL 8-6

7 Composantes du trigger Mostafa HANOUNE 2005/2006 Temporisation du trigger : quand le trigger doit-il il se déclencher d? BEFORE : exécution du corps du trigger avant le déclenchement de l'événement LMD sur la table. AFTER : exécution du corps du trigger après le déclenchement de l'événement LMD sur la table. INSTEAD OF : exécution du corps du trigger au lieu de l'instruction de déclenchement. Utilisé pour les VUES qui, autrement, ne pourraient être modifiées. 8-7 Triggers BEFORE Ce type de trigger est utilisé fréquemment dans les situations suivantes : Lorsque le trigger doit déterminer si l'instruction de déclenchement doit, ou non, être autorisée à s'exécuter. (Cette situation vous permet d'éviter tout traitement inutile de l'instruction de déclenchement, ainsi que le rollback qui s'ensuit, en cas d'apparition d'une exception dans l'action de déclenchement). Pour obtenir les valeurs de colonne avant d'exécuter une instruction de déclenchement INSERT ou UPDATE. Triggers AFTER Ce type de trigger est utilisé fréquemment dans les situations suivantes : Si vous souhaitez que l'instruction de déclenchement soit terminée avant l'exécution de l'action de déclenchement. S'il existe déjà un trigger BEFORE, et qu'un trigger AFTER peut effectuer différentes actions sur la même instruction de traitement. Triggers INSTEAD OF Ce type de trigger permet de modifier, en toute transparence, des vues qu'il est impossible de modifier directement à l'aide d'instructions LMD SQL en raison de leur nature intrinsèquement non modifiable. Vous pouvez écrire des instructions INSERT, UPDATE et DELETE sur la vue. Le trigger INSTEAD OF s'exécute alors de manière invisible en tâche de fond, et effectue directement sur les tables sous-jacentes l'action codée dans le corps du trigger. Développer des unités de programmes PL/SQL 8-7

8 Composantes du trigger Evénement utilisateur déclencheur d : Quelle est l'instruction LMD qui va provoquer le déclenchement d du trigger? INSERT UPDATE DELETE 8-8 Evénement utilisateur déclencheur L'instruction ou événement déclencheur peut être une instruction INSERT, UPDATE ou DELETE exécutée sur une table. S'il s'agit d'une instruction UPDATE, vous pouvez inclure une liste de colonnes afin d'identifier la ou les colonnes qui doivent être modifiées pour déclencher le trigger. Cette spécification est impossible dans le cas des instructions INSERT et DELETE, car elles concernent l'ensemble des lignes... UPDATE OF sal... L'événement déclencheur peut contenir plusieurs opérations LMD... INSERT or UPDATE or DELETE... INSERT or UPDATE OF job... Développer des unités de programmes PL/SQL 8-8

9 Composantes du trigger Type de trigger : Combien de fois le corps du trigger doit-il il s'exécuter lorsque survient l'événement déclencheur? Instruction : par défaut, le corps du trigger s'exécute une seule fois pour l'événement déclencheur. Ligne : le corps du trigger s'exécute une seule fois pour chaque ligne concernée par l'événement déclencheur. 8-9 Triggers d'instruction ou de ligne Vous pouvez spécifier le nombre d'exécutions d'un trigger : une seule fois pour chaque ligne concernée par l'instruction de déclenchement (telle qu'une mise à jour, UPDATE, de plusieurs lignes) ou une seule fois pour l'instruction de déclenchement, quel que soit le nombre de lignes affectées. Trigger d'instruction Un trigger d'instruction est exécuté pour le compte de l'événement déclencheur, et ce, même si aucune ligne n'a été affectée. Ce type de trigger s'avère particulièrement utile si l'action ne dépend pas des données des lignes concernées, ni des données fournies par l'événement déclencheur proprement dit. Il peut s'agir, par exemple, d'un trigger exécutant un contrôle de sécurité complexe sur l'utilisateur courant. Trigger de ligne Un trigger de ligne se déclenche à chaque fois que la table est affectée par l'événement déclencheur. Si cet événement n'affecte aucune ligne, aucune exécution n'aura lieu. Ce type de trigger s'avère particulièrement utile si l'action dépend des données des lignes concernées ou des données fournies par l'événement déclencheur proprement dit. Développer des unités de programmes PL/SQL 8-9

10 Composantes du trigger Corps du trigger : Quelle action le trigger doit-il il effectuer? Le corps du trigger est un bloc PL/SQL ou un appel vers une procédure Corps du trigger L'action du trigger définit les mesures à prendre en cas d'apparition de l'événement déclencheur. Le bloc PL/SQL peut contenir des instructions SQL et PL/SQL, définir des structures PL/SQL telles que des variables, curseurs, exceptions, etc. Vous pouvez également appeler une procédure PL/SQL ou Java. Il convient encore d'ajouter que les triggers de ligne ont recours à des noms de corrélation pour accéder aux valeurs de colonne, anciennes ou nouvelles, de la ligne en cours de traitement. Développer des unités de programmes PL/SQL 8-10

11 Action responsable du déclenchementd DEPTNO Séquence de déclenchement Instruction LMD SQL> INSERT INTO dept (deptno, dname, loc) 2 VALUES (50, 'EDUCATION', 'NEW YORK'); DNAME ACCOUNTING RESEARCH SALES OPERATIONS LOC NEW YORK DALLAS CHICAGO BOSTON Mostafa HANOUNE 2005/2006 Séquence de déclenchement d d'un trigger sur une table, manipulation d'une seule ligne : Trigger d'instruction BEFORE Trigger de ligne BEFORE Trigger de ligne AFTER Trigger d'instruction AFTER 8-11 Triggers d'instruction ou de ligne. Que choisir? Vous pouvez créer un trigger d'instruction ou un trigger de ligne en vous basant sur la condition prévoyant un déclenchement pour chacune des lignes affectées par l'instruction de déclenchement ou un déclenchement unique pour l'instruction, quel que soit le nombre de lignes affectées. Si l'instruction de manipulation de données à la base du déclenchement concerne une seule ligne, les triggers d'instruction et de ligne sont, tous deux, déclenchés à une seule reprise. Exemple Cette instruction SQL ne fait pas la distinction entre les triggers d'instruction et de ligne. Cela est dû au fait qu'une seule et unique ligne a été insérée dans la table au moyen de cette syntaxe. Développer des unités de programmes PL/SQL 8-11

12 Séquence de déclenchement Mostafa HANOUNE 2005/2006 Séquence de déclenchement d d'un trigger sur une table, manipulation de plusieurs lignes : SQL> UPDATE emp 2 SET sal = sal * WHERE deptno = 30; EMPNO ENAME KING BLAKE SMITH DEPTNO Trigger d'instruction BEFORE Trigger de ligne BEFORE Trigger de ligne AFTER Trigger de ligne BEFORE Trigger de ligne AFTER Trigger de ligne BEFORE Trigger de ligne AFTER Trigger d'instruction AFTER 8-12 Création de triggers d'instruction ou de ligne Si l'instruction de manipulation de données à la base du déclenchement concerne plusieurs lignes, le trigger d'instruction se déclenche à une seule reprise. Quant au trigger de ligne, il s'exécute une fois pour chacune des lignes affectées. Exemple Avec l'instruction SQL de cette diapositive, le nombre de déclenchements du trigger de niveau ligne correspond au nombre de lignes répondant à la clause WHERE (en l'occurrence, le nombre d'employés appartenant au département 30). Développer des unités de programmes PL/SQL 8-12

13 Syntaxe relative à la création des triggers d'instruction CREATE [OR REPLACE] TRIGGER trigger_name timing event1 [OR event2 OR event3] ON table_name trigger_body 8-13 Syntaxe relative à la création d'un trigger d'instruction trigger name timing event table/ view_name trigger body Nom du trigger. Indique le moment où le trigger se déclenchera par rapport à l'événement déclencheur : BEFORE (avant) AFTER (après) Identifie l'opération de manipulation de données à la base du déclenchement du trigger : INSERT UPDATE [OF colonne] DELETE Spécifie la table associée au trigger. Il s'agit du corps de trigger définissant l'action exécutée par le trigger. Il commence par DECLARE ou BEGIN et se termine par END ou un appel vers une procédure (voir chapitre 9) Développer des unités de programmes PL/SQL 8-13

14 Création de triggers d'instruction à l'aide de SQL*Plus Mostafa HANOUNE 2005/2006 SQL> CREATE OR REPLACE TRIGGER secure_emp 2 BEFORE INSERT ON emp 3 BEGIN 4 IF (TO_CHAR (sysdate,'dy') IN ('SAT','SUN')) OR 5 (TO_CHAR(sysdate,'HH24') NOT BETWEEN 6 '08' AND '18') 7 THEN RAISE_APPLICATION_ERROR (-20500, 8 'You may only insert into EMP during normal hours.'); 9 END IF; 10 END; 11 / 8-14 Triggers d'instruction dans SQL*Plus Vous pouvez créer un trigger d'instruction BEFORE afin d'empêcher l'aboutissement d'une opération de déclenchement si une certaine condition est enfreinte. Vous pouvez créer un trigger chargé de limiter à certaines heures ouvrables, du lundi au vendredi, les insertions effectuées dans la table EMP. Si, par exemple, un utilisateur tente d'insérer une ligne un dimanche, un message apparaît, le trigger échoue et l'instruction de déclenchement est annulée. RAISE_APPLICATION_ERROR est une procédure intégrée côté serveur qui imprime un message à l'attention de l'utilisateur et provoque l'échec du bloc PL/SQL. En cas d'échec d'un trigger de base de données, Oracle Server annule automatiquement l'instruction de déclenchement. Développer des unités de programmes PL/SQL 8-14

15 Création de triggers d'instruction à l'aide de Procedure Builder 8-15 Procédure de création d'un trigger d'instruction à l'aide de Procedure Builder Il est possible de créer le même trigger d'instruction BEFORE dans Procedure Builder. 1. Connectez-vous à la base de données. 2. Cliquez sur le nœud "Database Objects" dans le navigateur d'objets. 3. Sélectionnez l'éditeur "Database Trigger" dans le menu des programmes. 4. Sélectionnez un propriétaire de table, ainsi qu'une table, dans les listes déroulantes "Table owner" et "Table". 5. Cliquez sur "New" pour lancer la création du trigger. 6. Cliquez sur l'un des boutons de la zone "Triggering" pour choisir le composant temporisation. 7. Sélectionnez "Statement" pour choisir le composant événement. 8. Entrez le code du trigger dans la zone "Trigger Body". 9. Cliquez sur "Save". Votre trigger va être compilé par le moteur PL/SQL du serveur. Une fois la compilation terminée avec succès, votre trigger est stocké dans la base de données et activé automatiquement. Remarque : si le trigger rencontre des erreurs de compilation, un message d'erreur s'affiche dans une fenêtre distincte. Développer des unités de programmes PL/SQL 8-15

16 Test de SECURE_EMP SQL> INSERT INTO emp (empno, ename, deptno) 2 VALUES (7777, 'BAUWENS', 40); INSERT INTO emp (empno, ename, deptno) * ERROR at line 1: ORA-20500: You may only insert into EMP during normal hours. ORA-06512: at "A_USER.SECURE_EMP", line 4 ORA-04088: error during execution of trigger 'A_USER.SECURE_EMP' 8-16 Exemple Tentative d'insertion d'une ligne dans la table EMP en dehors des heures de bureau. Développer des unités de programmes PL/SQL 8-16

17 Utilisation de prédicats conditionnels CREATE OR REPLACE TRIGGER secure_emp BEFORE INSERT OR UPDATE OR DELETE ON emp BEGIN IF (TO_CHAR (sysdate,'dy') IN ('SAT','SUN')) OR (TO_CHAR (sysdate, 'HH24') NOT BETWEEN '08' AND '18') THEN IF DELETING THEN RAISE_APPLICATION_ERROR (-20502, 'You may only delete from EMP during normal hours.'); ELSIF INSERTING THEN RAISE_APPLICATION_ERROR (-20500, 'You may only insert into EMP during normal hours.'); ELSIF UPDATING ('SAL') THEN RAISE_APPLICATION_ERROR (-20503, 'You may only update SAL during normal hours.'); ELSE RAISE_APPLICATION_ERROR (-20504, 'You may only update EMP during normal hours.'); END IF; END IF; END; 8-17 Combinaison d'événements déclencheurs Il est possible de rassembler plusieurs événements déclencheurs au sein d'un seul événement grâce aux prédicats conditionnels spéciaux INSERTING, UPDATING et DELETING disponibles dans le corps du trigger. Exemple Créez un trigger pour empêcher l'exécution de tout événement de manipulation de données sur la table EMP en dehors de certaines heures ouvrables, du lundi au vendredi. Faites également appel aux triggers d'instruction BEFORE pour initialiser des variables ou indicateurs globaux et valider les règles de gestion complexes. Développer des unités de programmes PL/SQL 8-17

18 Création d'un trigger de ligne CREATE [OR REPLACE] TRIGGER trigger_name timing event1 [OR event2 OR event3] ON table_name [REFERENCING OLD AS old NEW AS new] FOR EACH ROW [WHEN condition] trigger_body 8-18 Syntaxe relative à la création d'un trigger de ligne trigger_name timing event table_name REFERENCING FOR EACH ROW WHEN trigger body Nom du trigger Indique le moment où le trigger se déclenchera par rapport à l'événement déclencheur: BEFORE (avant) AFTER (après) Identifie l'opération de manipulation de données à la base du déclenchement du trigger : INSERT UPDATE [OF colonne ] DELETE Indique la table associée au trigger. Spécifie les noms de corrélation des anciennes et nouvelles valeurs de la ligne courante (les valeurs par défaut sont OLD et NEW). Désigne le trigger en tant que trigger de ligne. Spécifie la restriction au niveau du trigger. (Ce prédicat conditionnel est évalué pour chaque ligne afin de déterminer si le corps du trigger,doit ou non, être exécuté). Il s'agit du corps de trigger définissant l'action exécutée par le trigger. Il commence par DECLARE ou BEGIN et se termine par END ou un appel vers une procédure. Développer des unités de programmes PL/SQL 8-18

19 Création de triggers de ligne à l'aide de SQL*Plus SQL> CREATE OR REPLACE TRIGGER CHECK_SALARY 2 BEFORE INSERT OR UPDATE OF sal ON emp 3 FOR EACH ROW 4 BEGIN 5 IF NOT (:NEW.JOB IN ('MANAGER', 'PRESIDENT')) 6 AND :NEW.SAL > THEN 8 RAISE_APPLICATION_ERROR 9 (-20202, 'EMPLOYEE CANNOT EARN THIS AMOUNT'); 10 END IF; 11 END; 8-19 Création d'un trigger de ligne dans SQL*Plus Vous pouvez créer un trigger de ligne BEFORE afin d'empêcher l'aboutissement d'une opération de déclenchement si une certaine condition est enfreinte. Créez un trigger permettant uniquement à certains employés d'avoir un salaire supérieur à 5000 unités. Si un utilisateur tente d'enfreindre cette condition, le trigger génère une erreur. SQL> UPDATE EMP SET SAL = 6500 WHERE ENAME = 'MILLER' 2 / UPDATE EMP SET SAL = 6500 WHERE ENAME = 'MILLER' * ERROR at line 1: ORA-20202: EMPLOYEE CANNOT EARN THIS AMOUNT ORA-06512: at "A_USER.CHECK_SALARY, line 5 ORA-04088: error during execution of trigger 'A_USER.CHECK_SALARY Développer des unités de programmes PL/SQL 8-19

20 Création de triggers de ligne à l'aide de Procedure Builder 8-20 Procédure de création d'un trigger de ligne à l'aide de Procedure Builder Il est possible de créer le même trigger d'instruction BEFORE dans Procedure Builder. 1. Connectez-vous à la base de données. 2. Cliquez sur le nœud "Database Objects" dans le navigateur d'objets. 3. Sélectionnez l'éditeur "Database Trigger" dans le menu des programmes. 4. Sélectionnez un propriétaire de table, ainsi qu'une table, dans les listes déroulantes correspondantes. 5. Cliquez sur "New" pour lancer la création du trigger. 6. Cliqueez sur l un des boutons de la zone "Triggering" pour choisir le composant temporisation. 7. Cochez les cases "Statement" pour sélectionner le composant Evénements. 8. Dans la zone "For Each", cliquez sur le bouton "Row option" afin de désigner le trigger comme étant de type "ligne". 9. Renseignez les champs Referencing "OLD as" et "NEW as" si vous souhaitez modifier les noms de corrélation. Dans le champ When, entrez une condition When pour limiter l'exécution du trigger. Ces champs sont facultatifs et ne sont disponibles qu'avec les triggers ROW. 10. Entrez le code du trigger. 11. Cliquez sur "Save". Votre trigger va être compilé par le moteur PL/SQL du serveur. Une fois la compilation terminée avec succès, votre trigger est stocké dans la base de données et activé automatiquement. Développer des unités de programmes PL/SQL 8-20

21 Utilisation des qualificatifs OLD et NEW SQL>CREATE OR REPLACE TRIGGER audit_emp_values 2 AFTER DELETE OR INSERT OR UPDATE ON emp 3 FOR EACH ROW 4 BEGIN 5 INSERT INTO audit_emp_table (user_name, 6 timestamp, id, old_last_name, new_last_name, 7 old_title, new_title, old_salary, new_salary) 8 VALUES (USER, SYSDATE, :OLD.empno, :OLD.ename, 9 :NEW.ename, :OLD.job, :NEW.job, 10 :OLD.sal, :NEW.sal ); 11 END; 12 / 8-21 Utilisation des qualificatifs OLD et NEW : exemple Vous pouvez créer un trigger sur la table EMP afin d'ajouter des lignes dans une table utilisateur, AUDIT_EMP_TABLE, et consigner ainsi les activités d'un utilisateur relativement à ladite table. Le trigger enregistre les valeurs de plusieurs colonnes avant et après les modifications de données. Pour ce faire, il utilise les qualificatifs OLD et NEW avec le nom de colonne approprié. Développer des unités de programmes PL/SQL 8-21

22 Audit_Emp_Table Mostafa HANOUNE 2005/2006 USER_NAME TIMESTAMP ID OLD_LAST_NAME NEW_LAST_NAME EGRAVINA 12-NOV-97 NULL NULL HUTTON NGREENBE 10-DEC MAGEE TURNER Suite OLD_TITLE NEW_TITLE OLD_SALARY NEW_SALARY NULL ANALYST NULL 3500 CLERK SALESMAN Utilisation des qualificatifs OLD et NEW Dans un trigger ROW, faites référence à la valeur d'une colonne avant et après la modification des données en la faisant précéder du qualificatif OLD ou NEW. Opération de données Ancienne valeur (OLD) Nouvelle valeur (NEW) INSERT NULL (néant) Valeur insérée UPDATE Valeur avant mise à jour Valeur après mise à jour DELETE Valeur avant suppression NULL (néant) Les qualificatifs OLD et NEW sont disponibles uniquement dans les triggers ROW. Dans toute instruction SQL et PL/SQL, faites précéder les qualificatifs de deux points (:). Ne pas utiliser le préfixe (:) quand les qualificatifs sont référencés dans la condition de restriction WHEN. Développer des unités de programmes PL/SQL 8-22

23 Restriction d'un trigger de ligne SQL>CREATE OR REPLACE TRIGGER derive_commission_pct 2 BEFORE INSERT OR UPDATE OF sal ON emp 3 FOR EACH ROW 4 WHEN (NEW.job = 'SALESMAN') 5 BEGIN 6 IF INSERTING 7 THEN :NEW.comm := 0; 8 ELSIF :OLD.comm IS NULL 9 THEN :NEW.comm := 0; 10 ELSE :NEW.comm := :OLD.comm * (:NEW.sal/:OLD.sal); 11 END IF; 12 END; 13 / 8-23 Exemple La clause WHEN permet de limiter l'action du trigger aux lignes qui répondent à une certaine condition. Créez un trigger sur la table EMP pour calculer la commission d'un employé lors de l'ajout d'une ligne dans une table EMP ou de la modification du salaire d'un employé. Le qualificatif NEW ne doit pas être précédé de deux points dans la clause WHEN. Développer des unités de programmes PL/SQL 8-23

24 Trigger INSTEAD OF Application Mostafa HANOUNE 2005/2006 SQL> INSERT INTO my_view 2...; MY_VIEW Trigger INSTEAD OF INSERT TABLE1 UPDATE TABLE Triggers INSTEAD OF Les triggers INSTEAD OF vous permettent de modifier les données lorsqu une instruction LMD a été émise relativement à une vue intrinsèquement non modifiable. On parle, dans ce cas, de "triggers INSTEAD OF" car, contrairement aux autres triggers, Oracle Server les déclenche au lieu d'exécuter l'instruction de déclenchement. Ce type de trigger sert à effectuer une opération INSERT, UPDATE ou DELETE directement sur les tables sous-jacentes. Supposons que vous écriviez des instructions INSERT, UPDATE ou DELETE sur une vue. Dans ce cas, le trigger INSTEAD OF s'exécute de manière invisible en tâche de fond afin de permettre l'exécution des actions appropriées. Pourquoi utiliser des triggers INSTEAD OF? Si une vue comprend plusieurs tables, une insertion effectuée dans la vue pourrait entraîner une insertion dans une table et une mise à jour dans une autre. Vous pouvez donc écrire un trigger INSTEAD OF qui se déclenchera lorsque vous créez une insertion sur la vue. Le cas échéant, le corps du trigger s'exécute en lieu et place de l'insertion originale, ce qui se traduit par une insertion dans une table et une mise à jour dans une autre. Développer des unités de programmes PL/SQL 8-24

25 Création d'un trigger INSTEAD OF Mostafa HANOUNE 2005/2006 CREATE [OR REPLACE] TRIGGER trigger_name INSTEAD OF event1 [OR event2 OR event3] ON view_name [REFERENCING OLD AS old NEW AS new] [FOR EACH ROW] trigger_body 8-25 Syntaxe relative à la création d'un trigger INSTEAD OF trigger_name INSTEAD OF event view_name REFERENCING [FOR EACH ROW] trigger body Nom du trigger. Indique que le trigger sera destiné à une vue. Identifie l'opération de manipulation de données à la base du déclenchementdu : trigger INSERT UPDATE [OF colonne ] DELETE Indique la vue associée au trigger. Spécifie les noms de corrélation des anciennes et nouvelles valeurs de la ligne courante (les valeurs par défaut sont OLD et NEW). Désigne le trigger en tant que trigger de ligne. Les triggers INSTEAD OF sont toujours des triggers de ligne. Ce paramètre est facultatif. Il s'agit du corps de trigger définissant l'action exécutée par le trigger. Il commence par DECLARE ou BEGIN et se termine par END ou un appel vers une procédure. Développer des unités de programmes PL/SQL 8-25

26 Création d'un trigger INSTEAD OF INSERT INTO EMP_DETAILS (EMPNO, ENAME, SAL, DEPTNO) VALUES (9001,'ABBOTT',1000,10) INSTEAD OF INSERT dans EMP_DETAILS EMPNO ENAME KING CLARK MILLER JONES SAL DEPTNO DNAME NEW YORK NEW YORK NEW YORK DALLAS TOT_DEPT_SAL INSERT dans EMPLOYEES EMPNO ENAME KING BLAKE CLARK ABBOTT SAL UPDATE DEPARTMENTS DEPTNO DNAME 10 ACCOUNTING 20 RESEARCH 30 SALES TOT_DEPT_SAL Création d'un trigger INSTEAD OF Vous pouvez créer un trigger INSTEAD OF en vue de gérer les tables de base sur lesquelles repose la vue. Supposons que vous souhaitiez insérer le nom d'un employé à l'aide de la vue. Dans ce cas, créez un trigger qui provoquera l'insertion (INSERT) appropriée et la mise à jour (UPDATE) des tables de base. Développer des unités de programmes PL/SQL 8-26

27 Tableau comparatif Triggers / Procédures stockées Triggers Utilisation de CREATE TRIGGER Le dictionnaire de données contient le code source et le p-code Appel implicite Commandes COMMIT, SAVEPOINT, ROLLBACK non autorisées Procédure Utilisation de CREATE PROCEDURE Le dictionnaire de données contient le code source et le p-code Appel explicite Commandes COMMIT, SAVEPOINT, ROLLBACK autorisées 8-27 Triggers de base de données et procédures stockées Voici un tableau comparatif des triggers de base de données et procédures stockées : Trigger de base de données Appel implicite. Les instructions COMMIT, ROLLBACK et SAVEPOINT ne sont pas autorisées dans le corps du trigger. Procédure stockée Appel explicite. Les instructions COMMIT, ROLLBACK et SAVEPOINT sont autorisées dans le corps de la procédure. Les triggers sont entièrement compilés lors de l'émission de la commande CREATE TRIGGER. Le pseudo-code (p-code) est, lui, stocké dans le dictionnaire de données. Par conséquent, le déclenchement du trigger ne nécessite plus l'ouverture d'un curseur partagé pour exécuter l'action du trigger. Au lieu de cela, le trigger est exécuté directement. La génération d'erreurs lors de la compilation du trigger n'empêche pas la création de celui-ci. Développer des unités de programmes PL/SQL 8-27

28 Comparaison entre les triggers de base de données et les triggers Form Builder SQL> INSERT INTO EMP 2...; Table EMP EMPNO ENAME 7838 KING 7698 BLAKE 7369 SMITH 7788 SCOTT JOB PRESIDENT MANAGER CLERK ANALYST SAL Trigger CHECK_SAL Ligne BEFORE INSERT 8-28 Comparaison entre les triggers de base de données et les triggers Form Builder Il est important de faire la distinction entre les triggers de base de données et les triggers Form Builder. Trigger de base de données Exécuté par des actions à partir de n'importe quel outil ou application de base de données Le déclenchement est toujours dû à une instruction SQL LMD ou LDD, ou à une certaine action de base de données Distinction entre trigger d'instruction et de ligne En cas d'échec, il provoque l'annulation de l'instruction de déclenchement Le déclenchement s'effectue indépendamment, et en plus, des triggers Form Builder Exécution sous le domaine de sécurité du créateur du trigger Trigger Form Builder Exécuté uniquement au sein d'une application Form Builder particulière Le déclenchement peut s'effectuer en passant d'un champ à un autre, en appuyant sur une touche ou en effectuant bien d'autres actions Distinction entre trigger d'instruction et de ligne En cas d'échec, il provoque le blocage du curseur et, éventuellement, l'annulation de toute la transaction Le déclenchement s'effectue indépendamment, et en plus, des triggers de base de données Exécution sous le domaine de sécurité de l'utilisateur Form Builder Développer des unités de programmes PL/SQL 8-28

29 Gestion des triggers Mostafa HANOUNE 2005/2006 Désactivation ou réactivation r d'un trigger de base de données : ALTER TRIGGER trigger_name DISABLE ENABLE Désactivation ou réactivation r de tous les triggers d'une table : ALTER TABLE table_name DISABLE ENABLE ALL TRIGGERS Recompilation d'un trigger pour une table : ALTER TRIGGER trigger_name COMPILE 8-29 Modes du trigger : Activé ou Désactivé Lors de sa création, le trigger est activé automatiquement. Dans le cas des triggers activés, Oracle Server vérifie les contraintes d'intégrité et s'assure que les triggers ne pourront y porter atteinte. De surcroît, Oracle Server fournit des vues à lecture cohérente pour les requêtes et les contraintes, il gère les dépendances et propose une validation à deux phases si un trigger met à jour des tables distantes dans une base de données répartie. Utilisez la syntaxe ALTER TRIGGER pour désactiver un trigger spécifique ou ALTER TABLE pour désactiver tous les triggers d'une table. Certains utilitaires, tels que SQL*Loader, permettent de désactiver un trigger. Cette décision peut être motivée par le désir d'améliorer les performances ou d'éviter les contrôles d'intégrité lors du chargement de grandes quantités de données. Il se peut également que vous souhaitiez désactiver un trigger si celui-ci fait référence à un objet de base de données actuellement indisponible en raison d'un échec de connexion réseau, d'un incident de disque ou encore d'un fichier de données ou d'un tablespace offline. Compilation d'un trigger Utilisez la commande ALTER TRIGGER pour recompiler explicitement un trigger non valide. Lorsque vous émettez une instruction ALTER TRIGGER avec l'option COMPILE, la recompilation est effectuée, et ce, que le trigger soit valide ou non. Développer des unités de programmes PL/SQL 8-29

30 Syntaxe DROP TRIGGER Pour supprimer un trigger de la base de données, utilisez la syntaxe DROP TRIGGER : DROP TRIGGER trigger_name Exemple SQL> DROP TRIGGER secure_emp; Trigger dropped 8-30 Suppression de triggers Lorsqu'un trigger est devenu inutile, vous pouvez utiliser une instruction SQL dans la fenêtre de l'interpréteur Procedure Builder ou SQL*Plus pour le supprimer (DROP). Développer des unités de programmes PL/SQL 8-30

31 Test des triggers Mostafa HANOUNE 2005/2006 Testez toutes les opérations de déclenchement, ainsi que celles ne donnant pas lieu au déclenchement du trigger Testez chaque cas de la clause WHEN Provoquez le déclenchement direct du trigger grâce d'une opération «basique» sur les données, et indirect via une procédure Testez l'incidence de votre trigger sur d'autres triggers Testez l'incidence des autres triggers sur votre trigger 8-31 Test des triggers Vérifiez le bon fonctionnement du trigger en analysant séparément différents cas de figure. Utilisez les procédures DBMS_OUTPUT pour déboguer les triggers. Développer des unités de programmes PL/SQL 8-31

32 Modèle d'exécution des triggers et vérification des contraintes 1. Exécuter tous les triggers BEFORE STATEMENT 2. Effectuer une boucle pour toutes les lignes affectées es a. Exécuter tous les triggers BEFORE ROW b. Exécuter l'instruction LMD et effectuez une vérification de la contrainte d'intégrité c. Exécuter tous les triggers AFTER ROW 3. Exécuter tous les triggers AFTER STATEMENT 8-32 Modèle d'exécution d'un trigger Une seule instruction LMD est susceptible de déclencher jusqu'à quatre types de triggers : BEFORE et AFTER, de type instruction ou ligne. Au sein du trigger, une instruction ou un événement déclencheur peut entraîner le contrôle d'une ou de plusieurs contraintes d'intégrité. Des triggers peuvent également provoquer le déclenchement d'autres triggers (on parle alors de triggers en cascade). Toutes les actions et vérifications effectuées consécutivement à une instruction SQL doivent aboutir. Si une exception est déclenchée dans un trigger et que celle-ci n'est pas traitée explicitement, toutes les actions exécutées à cause de l'instruction SQL originale sont annulées, y compris celles effectuées par les triggers déclencheurs. Cela vous donne la garantie que les triggers ne porteront jamais atteinte aux contraintes d'intégrité. En cas de contrainte différée, la vérification de la contrainte se fait lors du COMMIT. Développer des unités de programmes PL/SQL 8-32

33 LMD dans EMP Démonstration type AUDIT_EMP_TRIG POUR CHAQUE LIGNE Incrémenter variables Package VAR_PACK Mostafa HANOUNE 2005/2006 AUDIT_EMP_TAB APRES L INSTRUCTIONL Copier puis Réinitialiser R les variables AUDIT_TABLE 8-33 Démonstration type Les pages de sous-programmes PL/SQL suivantes illustrent l'intéraction existant entre les triggers, procédures packagées, fonctions et variables globales. Exemple Ordre des événements : 1. Vous émettez une commande INSERT, UPDATE ou DELETE capable de manipuler une ou plusieurs lignes. 2. AUDIT_EMP_TRIG, le trigger AFTER de niveau ligne, appelle la procédure packagée en vue d'incrémenter les variables globales du package VAR_PACK. Etant donné qu'il s'agit d'un trigger de ligne, la mise à jour de trois lignes aurait entraîné trois déclenchements. 3. Une fois l'instruction exécutée, AUDIT_EMP_TAB, le trigger AFTER de niveau instruction, appelle la procédure AUDIT_EMP. Celle-ci affecte les valeurs des variables globales dans les variables locales au moyen des fonctions du package, elle met à jour la table AUDIT_TABLE, puis réinitialise les variables globales. Développer des unités de programmes PL/SQL 8-33

34 Démonstration : triggers Mostafa HANOUNE 2005/2006 CREATE OR REPLACE TRIGGER audit_emp_trig AFTER UPDATE or INSERT or DELETE on EMP FOR EACH ROW BEGIN IF DELETING THEN var_pack.set_g_del(1); ELSIF INSERTING THEN var_pack.set_g_ins(1); ELSIF UPDATING ('SAL') THEN var_pack.set_g_up_sal(1); ELSE var_pack.set_g_upd(1); END IF; END audit_emp_trig; CREATE OR REPLACE TRIGGER audit_emp_tab AFTER UPDATE or INSERT or DELETE on EMP BEGIN audit_emp; END audit_emp_tab; 8-34 Instruction AFTER et triggers ligne AFTER AUDIT_EMP_TRIG sera déclenché après la manipulation d'une ligne. Le trigger incrémente les variables globales qui consignent le nombre de lignes modifiées. AUDIT_EMP_TAB sera déclenché une fois l'instruction exécutée. Le trigger appelle la procédure AUDIT_EMP présentée plus loin. Développer des unités de programmes PL/SQL 8-34

35 Démonstration : spécification du package VAR_PACK CREATE OR REPLACE PACKAGE var_pack IS -- these functions are used to return the -- values of package variables FUNCTION g_del RETURN NUMBER; FUNCTION g_ins RETURN NUMBER; FUNCTION g_upd RETURN NUMBER; FUNCTION g_up_sal RETURN NUMBER; -- these procedures are used to modify the -- values of the package variables PROCEDURE set_g_del (p_val IN NUMBER); PROCEDURE set_g_ins (p_val IN NUMBER); PROCEDURE set_g_upd (p_val IN NUMBER); PROCEDURE set_g_up_sal (p_val IN NUMBER); END var_pack; 8-35 Corps du package VAR_PACK CREATE OR REPLACE PACKAGE BODY var_pack IS gv_del NUMBER := 0; gv_ins NUMBER := 0; gv_upd NUMBER := 0; gv_up_sal NUMBER := 0; FUNCTION g_del RETURN NUMBER IS BEGIN RETURN gv_del; END; FUNCTION g_ins RETURN NUMBER IS BEGIN RETURN gv_ins; END; FUNCTION g_upd RETURN NUMBER IS BEGIN RETURN gv_upd; END; FUNCTION g_up_sal RETURN NUMBER IS BEGIN RETURN g_up_sal; END; PROCEDURE set_g_del (p_val IN NUMBER) IS BEGIN IF p_val = 0 THEN gv_del := p_val; ELSE gv_del := gv_del +1; END IF; END set_g_del; PROCEDURE set_g_ins (p_val IN NUMBER) IS BEGIN IF p_val = 0 THEN gv_ins := p_val; ELSE gv_ins := gv_ins +1; END IF; END set_g_ins; PROCEDURE set_g_upd (p_val IN NUMBER) IS BEGIN IF p_val = 0 THEN gv_upd := p_val; ELSE gv_upd := gv_upd +1; END IF; END set_g_upd; PROCEDURE set_g_up_sal (p_val IN NUMBER) IS BEGIN IF p_val = 0 THEN gv_up_sal := p_val; ELSE gv_up_sal := gv_up_sal +1; END IF; END set_g_up_sal; END var_pack; Développer des unités de programmes PL/SQL 8-35

36 8-36 Démonstration : procédure Mostafa HANOUNE 2005/2006 CREATE OR REPLACE PROCEDURE audit_emp IS v_del NUMBER := var_pack.g_del; v_ins NUMBER := var_pack.g_ins; v_upd NUMBER := var_pack.g_upd; v_up_sal NUMBER := var_pack.g_up_sal; BEGIN IF v_del + v_ins + v_upd!= 0 THEN UPDATE audit_table SET del = del + v_del, ins = ins + v_ins, upd = upd + v_upd WHERE user_name = user AND tablename = 'EMP' AND column_name IS NULL; END IF; IF v_up_sal!= 0 THEN UPDATE audit_table SET upd = upd + v_up_sal WHERE user_name = user AND tablename = 'EMP' AND column_name = 'SAL'; END IF; -- resetting global variables in package VAR_PACK var_pack.set_g_del (0); var_pack.set_g_ins (0); var_pack.set_g_upd (0); var_pack.set_g_up_sal (0); END audit_emp; Mise à jour de AUDIT_TABLE à l'aide de la procédure AUDIT_EMP La procédure AUDIT_EMP met à jour la table AUDIT_TABLE et appelle les procédures du package VAR_PACK responsables de la réinitialisation des variables globales, assurant ainsi sa préparation pour l'instruction LMD suivante. Développer des unités de programmes PL/SQL 8-36

37 Résumé Mostafa HANOUNE 2005/2006 Procédure Package Trigger xxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxx vvvvvvvvvvvvvvvvvv xxxxxxxxxxxxxxxxxx Déclaration de la procédure A Définition de la procédure B Définition de la procédure A Variable locale 8-37 Vous pouvez développer plusieurs types de structures de base de données procédurales en fonction du type d'utilisation. Structure Procédure Package Trigger Utilisation Bloc de programmation PL/SQL stocké dans la base de données en vue d'une exécution itérative. Groupe de procédures, fonctions, variables curseurs, constantes et exceptions connexes. Bloc de programmation PL/SQL exécuté implicitement par une instruction de manipulation de données. Développer des unités de programmes PL/SQL 8-37

38 Présentation des exercices Création de triggers de ligne et d'instruction Création de triggers avancés en vue d'accroître les fonctionnalités de la base de données Oracle 8-38 Présentation des exercices Vous pouvez effectuer ces exercices à l'aide de SQL*Plus ou Procedure Builder. Si vous obtenez des erreurs de compilation avec SQL*Plus, utilisez la commande SHOW ERRORS. Toute erreur de compilation corrigée dans SQL*Plus devra également l'être dans le script original, et non dans le buffer. Vous devrez ensuite réexécuter la nouvelle version du fichier. Cela aura pour effet d'enregistrer une nouvelle version du package dans le dictionnaire de données. Développer des unités de programmes PL/SQL 8-38

39 Exercice 8 1. La modification des données des tables ne sera autorisée que pendant les heures de bureau normales, c'est-à-dire de 8H45 à 17H30, du lundi au vendredi. a. Si vous créez une procédure stockée nommée SECURE_DML se produisant en dehors de ces heures, le système retournera le message suivant : Vous ne pouvez changer les données que pendant les horaires de bureau normaux. 2. Créez, dans la table PRODUCT, un trigger d'instruction appelant la procédure ci-dessus. a. Testez la procédure en modifiant, temporairement, les heures qui y sont indiquées et en tâchant d'insérer un nouvel enregistrement dans la table PRODUCT. Une fois le test effectué, réinitialisez les heures de la procédure ainsi qu'il est mentionné au point 1. S'il vous reste du temps : 3. La commission d'un vendeur doit être modifiée pour toute nouvelle commande ou modification apportée aux commandes existantes. Cette valeur est stockée dans la colonne COMM de la table EMP. Un vendeur est affecté à un client donné dans la table CUSTOMER. a. Créez une procédure chargée de mettre à jour la commission du vendeur en question. Faites usage des paramètres pour accepter l'id client, le total de l'ancienne commande et le total de la nouvelle commande à partir du trigger appelant. La procédure devrait trouver le numéro d'employé approprié dans la table CUSTOMER et mettre à jour l'enregistrement du vendeur dans la table EMP, ajoutant la nouvelle commission à la valeur existante. Considérez pour cet exercice un taux de commission fixe de 5 %. b. Créez, dans la table ORD, un trigger de ligne qui appellera la procédure et y transférera les paramètres requis. c. Utilisez deux procédures de package pour modifier la commande de client : UPD_ITEM et ADD_ITEM dans le package ITEM_PACK. Vous trouverez, dans votre répertoire de travail, p8_3.sql, un script permettant de créer le package ITEM_PACK. Utilisez ces deux procédures pour modifier la commande du client. SQL> EXECUTE ITEM_PACK.ADD_ITEM (610, 4, , 3.4,1) SQL> EXECUTE ITEM_PACK.UPD_ITEM (610, 2, -1) d. Une fois la commande 610 modifiée, assurez-vous que la commission de WARD a bien été augmentée de 0,03 unité. La commission initiale était de 500. Développer des unités de programmes PL/SQL 8-39

40 Développer des unités de programmes PL/SQL 8-40

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Bases de données avancées

Bases de données avancées Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

Bases de Données Avancées PL/SQL

Bases de Données Avancées PL/SQL 1/170 Bases de Données Avancées Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 10. Architectures des systèmes de gestion de bases de données Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail

AGRÉGATION «ÉCONOMIE ET GESTION»

AGRÉGATION «ÉCONOMIE ET GESTION» AGRÉGATION «ÉCONOMIE ET GESTION» CONCOURS INTERNE SESSION 2002 ÉPREUVE SUR LES TECHNIQUES DE GESTION ET COMPORTANT DES ASPECTS PÉDAGOGIQUES DOMAINE : économie et gestion informatique Durée de préparation

Plus en détail

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

Plus en détail

Chapitre 5 : Les procédures stockées PL/SQL

Chapitre 5 : Les procédures stockées PL/SQL I. Introduction Une procédure ou une fonction stockée est un bloc PL/SQL nommé pouvant accepter des paramètres et être appelée. Généralement, on utilise une fonction pour calculer une valeur. Les procédures

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN Département Informatique Laboratoires de bases de données Laboratoire n 6 Programmation SQL par Danièle BAYERS et Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il

Plus en détail

DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur

DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur Présentation Installation DirXML License Auditing Tool (DLAT) vous permet de déterminer le nombre de licences DirXML utilisées dans une

Plus en détail

Guide de déploiement

Guide de déploiement Guide de déploiement Installation du logiciel - Table des matières Présentation du déploiement du logiciel CommNet Server Windows Cluster Windows - Serveur virtuel CommNet Agent Windows Cluster Windows

Plus en détail

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Sage CRM NOTICE The information contained in this document is believed to be accurate in all respects but

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

Asset Management Software Client Module. Manuel d utilisation

Asset Management Software Client Module. Manuel d utilisation Asset Management Software Client Module Manuel d utilisation Kodak Asset Management Software Client Module Etat et paramètres de l'actif... 1 Menu Asset Status (Etat de l'actif)... 2 Menu Asset settings

Plus en détail

Mozaïk. Nouveautés et améliorations. de la version 1.0.42

Mozaïk. Nouveautés et améliorations. de la version 1.0.42 Nouveautés et améliorations de la version 1.0.42 Juin 2014 Table des matières 1 Configuration et personnalisation... 3 1.1 Ajout de la liste des états américains... 3 1.2 Factures financières... 4 1.3

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

STATISTICA Version 12 : Instructions d'installation

STATISTICA Version 12 : Instructions d'installation STATISTICA Version 12 : Instructions d'installation STATISTICA Entreprise Server Remarques : 1. L'installation de STATISTICA Entreprise Server s'effectue en deux temps : a) l'installation du serveur et

Plus en détail

Intégrité sémantique dans les bases de données relationnelles

Intégrité sémantique dans les bases de données relationnelles Intégrité sémantique dans les bases de données relationnelles 1 - Intégrité sémantique Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU Ecole Polytechnique Universitaire de Marseille Fev. 2013

Plus en détail

Les déclencheurs. Version 1.0. Grégory CASANOVA

Les déclencheurs. Version 1.0. Grégory CASANOVA Les déclencheurs Version 1.0 Grégory CASANOVA 2 Les déclencheurs [09/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les déclencheurs du DML... 5 3.1 Introduction... 5 3.2 Création d un déclencheur

Plus en détail

CA Desktop Migration Manager

CA Desktop Migration Manager CA Desktop Migration Manager Manuel de configuration du déploiement DMM Service Pack 12.8.01 La présente Documentation, qui inclut des systèmes d'aide et du matériel distribués électroniquement (ci-après

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence Corrigé de l'atelier pratique du module 3 : Récupération d'urgence Table des matières Atelier pratique 3 : Récupération d'urgence 1 Exercice 1 : Implémentation d'une stratégie de sauvegarde 1 Exercice

Plus en détail

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Diffusé par Le Projet Documentation OpenOffice.org Table des Matières 1. Les Versions...3 2. Les Modifications...5

Plus en détail

3. La SGA ou System global Area

3. La SGA ou System global Area 1/11 L'instance Oracle Oracle est une base de données composée de 3 parties différentes : L'instance Les fichiers de données Les fichiers de données facultatifs (fichier d'initialisation, fichier de mots

Plus en détail

Base de données II Module 3b

Base de données II Module 3b Base de données II Module 3b Bases de données répliquées Environnement Oracle et SQL Server Eddy.Meylan@hegne.ch E. Meylan/ 17/12/2003 Informaticien de Gestion HES / Bases de données II module 3b 1 Plan

Plus en détail

Edutab. gestion centralisée de tablettes Android

Edutab. gestion centralisée de tablettes Android Edutab gestion centralisée de tablettes Android Résumé Ce document présente le logiciel Edutab : utilisation en mode enseignant (applications, documents) utilisation en mode administrateur (configuration,

Plus en détail

Comment Créer une Base de Données Ab Initio

Comment Créer une Base de Données Ab Initio Comment Créer une Base de Données Ab Initio Diffusé par Le Projet Documentation OpenOffice.org Table des Matières 1. Création de la Source de Données...3 2. Ajout de Tables dans une Source de Données...3

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

Qlik Sense Desktop. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés.

Qlik Sense Desktop. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik Sense Desktop Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik, QlikTech, Qlik Sense,

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

ORACLE TUNING PACK 11G

ORACLE TUNING PACK 11G ORACLE TUNING PACK 11G PRINCIPALES CARACTÉRISTIQUES : Conseiller d'optimisation SQL (SQL Tuning Advisor) Mode automatique du conseiller d'optimisation SQL Profils SQL Conseiller d'accès SQL (SQL Access

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 13 : Organisation d une base de données, ou comment soulever (un peu) le voile Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les clusters de table

Plus en détail

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication Table des matières Atelier pratique 8 : Implémentation de la réplication 1 Exercice 1 : Création d'une publication 1 Exercice

Plus en détail

Historisation des données

Historisation des données Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

Plus en détail

Introduction au PL/SQL Oracle. Alexandre Meslé

Introduction au PL/SQL Oracle. Alexandre Meslé Introduction au PLSQL Oracle Alexandre Meslé 17 octobre 2011 Table des matières 1 Notes de cours 3 1.1 Introduction au PLSQL............................................ 3 1.1.1 PLSQL.................................................

Plus en détail

Département Génie Informatique

Département Génie Informatique Département Génie Informatique BD51 : Business Intelligence & Data Warehouse Projet Rédacteur : Christian FISCHER Automne 2011 Sujet : Développer un système décisionnel pour la gestion des ventes par magasin

Plus en détail

CONNECTEUR PRESTASHOP VTIGER CRM

CONNECTEUR PRESTASHOP VTIGER CRM CONNECTEUR PRESTASHOP VTIGER CRM Page 1 / 14 Vtiger CRM - Prestashop Connector Pour PRESTASHOP version 1.4.x et 1.5.x Pour vtiger CRM version 5.1, 5.2.0, 5.2.1, 5.3 et 5.4 Introduction En tant que gérant

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

Guide d'intégration à ConnectWise

Guide d'intégration à ConnectWise Guide d'intégration à ConnectWise INTÉGRATION DE CONNECTWISE À BITDEFENDER CONTROL CENTER Guide d'intégration à ConnectWise Intégration de ConnectWise à Bitdefender Control Center Date de publication 2015.05.14

Plus en détail

Installation FollowMe Q server

Installation FollowMe Q server Installation FollowMe Q server FollowMe Rev 1.00 30 nov 2007 Pré requis FollowMe v5 est un service de Windows et s'installe sur tout poste fonctionnant sous XP Pro, 2000 server, 2003 server. Il utilise

Plus en détail

Didacticiel de mise à jour Web

Didacticiel de mise à jour Web Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.

Plus en détail

Télécharger et Installer OpenOffice.org sous Windows

Télécharger et Installer OpenOffice.org sous Windows Télécharger et Installer OpenOffice.org sous Windows Version Date Auteur Commentaires 1.00 15/11/2008 Denis Bourdillon Création du document. Mise en forme de texte 1/15 Saison 2008-2009 Table des matières

Plus en détail

Aide en ligne du portail

Aide en ligne du portail Connectivity 3SKey Aide en ligne du portail Ce fichier d'aide décrit les fonctions du portail 3SKey (clé de signature sécurisée SWIFT). 11 juin 2011 3SKey Table des matières 1 Portail 3SKey... 3 1.1 Fonctions

Plus en détail

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier 2012. 2012 Tenrox. Tous droits réservés.

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier 2012. 2012 Tenrox. Tous droits réservés. Tenrox Guide d intégration Tenrox-Salesforce Janvier 2012 2012 Tenrox. Tous droits réservés. À propos de ce guide Le présent guide décrit les procédures nécessaires pour configurer les paramètres d intégration

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Guide de l'utilisateur

Guide de l'utilisateur BlackBerry Internet Service Version: 4.5.1 Guide de l'utilisateur Publié : 2014-01-08 SWD-20140108170135662 Table des matières 1 Mise en route...7 À propos des formules d'abonnement pour BlackBerry Internet

Plus en détail

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès énoncé SQL Server 2012 Durée : 3 heures 10 minutes Mots-clés Opérateurs, travaux, alerte, messagerie Objectifs Ce chapitre va vous permettre de mettre en pratique la gestion des opérateurs et des travaux,

Plus en détail

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre

Plus en détail

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

Plus en détail

FileMaker 13. Guide ODBC et JDBC

FileMaker 13. Guide ODBC et JDBC FileMaker 13 Guide ODBC et JDBC 2004-2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Guide d'utilisation du Serveur USB

Guide d'utilisation du Serveur USB Guide d'utilisation du Serveur USB Copyright 20-1 - Informations de copyright Copyright 2010. Tous droits réservés. Avis de non responsabilité Incorporated ne peut être tenu responsable des erreurs techniques

Plus en détail

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1 1 COMPOSANTS DE L ARCHITECTURE D UN SGBD Chapitre 1 Généralité 2 Les composants principaux de l architecture d un SGBD Sont: Les processus Les structures mémoires Les fichiers P1 P2 Pn SGA Fichiers Oracle

Plus en détail

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide Symantec Backup Exec 12.5 for Windows Servers Guide d'installation rapide 13897290 Installation de Backup Exec Ce document traite des sujets suivants: Configuration requise Conditions préalables à l'installation

Plus en détail

VRM Monitor. Aide en ligne

VRM Monitor. Aide en ligne VRM Monitor fr Aide en ligne VRM Monitor Table des matières fr 3 Table des matières 1 Introduction 3 2 Vue d'ensemble du système 3 3 Getting started 4 3.1 Démarrage de VRM Monitor 4 3.2 Démarrage de Configuration

Plus en détail

APIs de table pour SQL Server

APIs de table pour SQL Server 2013 D - Pratique APIs de table pour SQL Server Établissement: HEG Arc Haute école Arc Gestion Réalisé par: M. Informaticien de gestion 2009-2013 S adresse à: M.Fabrice Camus Date de début et de fin du

Plus en détail

Guide de l'utilisateur de l'application mobile

Guide de l'utilisateur de l'application mobile Guide de l'utilisateur de l'application mobile Avis de droit d'auteur Copyright Acronis International GmbH, 2002-2012. Tous droits réservés. «Acronis», «Acronis Compute with Confidence», «Acronis Recovery

Plus en détail

Protocoles DHCP et DNS

Protocoles DHCP et DNS Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)

Plus en détail

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

SQL Serveur 2012+ Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise SQL Serveur 2012+ Programme de formation France Belgique Suisse - Canada Microsoft Partner Formez vos salariés pour optimiser la productivité de votre entreprise Dernière mise à jour le : Avril 2014 Des

Plus en détail

Vtiger CRM - Prestashop Connector

Vtiger CRM - Prestashop Connector Vtiger CRM - Prestashop Connector Pour PRESTASHOP version 1.4.x Pour vtiger CRM version 5.1, 5.2.0 et 5.2.1 Introduction En tant que gestionnaire d'une boutique en ligne, vous cherchez constamment de meilleurs

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012 Initiation à SQL Le langage de communication avec une base de données relationnelles Application avec PostgreSQL Nathalie Camelin 2011/2012 Université du Maine Institut Claude Chappe D'après Levy Estève

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide Acronis Backup & Recovery 10 Advanced Server Virtual Edition Guide de démarrage rapide Ce document explique comment installer et utiliser Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Copyright

Plus en détail

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/46 2/46 Pourquoi? Anne-Cécile Caron Master MAGE - SGBD 1er trimestre 2014-2015 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

Plus en détail

Il se peut que certains sites Web ne s'affichent pas correctement ou ne fonctionnent pas dans Internet Explorer 8 ou Internet Explorer 9 Bêta :

Il se peut que certains sites Web ne s'affichent pas correctement ou ne fonctionnent pas dans Internet Explorer 8 ou Internet Explorer 9 Bêta : Il se peut que certains sites Web ne s'affichent pas correctement ou ne fonctionnent pas dans Internet Explorer 8 ou Internet Explorer 9 Bêta : Ce problème ne se pose pas dans d'anciennes versions d'internet

Plus en détail

Configurer la supervision pour une base MS SQL Server Viadéis Services

Configurer la supervision pour une base MS SQL Server Viadéis Services Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite)

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite) 420-PK6-SL Banques de données Avancées Gestion des UTILISATEURS (suite) RÉCAPITULATIF Un UTILISATEUR ORACLE est donc une combinaison de deux concepts usuels des banques de données. Un objet de contrôle

Plus en détail

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés. 2010 Ing. Punzenberger COPA-DATA GmbH Tous droits réservés. La distribution et/ou reproduction de ce document ou partie de ce document sous n'importe quelle forme n'est autorisée qu'avec la permission

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Administration des bases de données

Administration des bases de données Administration des bases de données Mehdi Louizi 1 Pourquoi PL/SQL 2 Pourquoi PL/SQL? PL/SQL = PROCEDURAL LANGUAGE/SQL SQL est un langage non procédural Les traitements complexes sont parfois difficiles

Plus en détail