Projet MVC-CD. Comportement de VP lors du déploiement itératif et incrémental du MPD vers la base de données cible

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

Download "Projet MVC-CD. Comportement de VP lors du déploiement itératif et incrémental du MPD vers la base de données cible"

Transcription

1 Projet MVC-CD Comportement de VP lors du déploiement itératif et incrémental du MPD vers la base de données cible Créé par S. Berberat, le 23 octobre.2014 Modifié par S. Berberat, le 29 octobre 2014 Page 1 sur 22

2 Table des matières 1 Préambule Création d un MCD et génération du MLD Premier déploiement Avec l option «Create database» Avec l option «Update database» Déploiement itératif et incrémental Sans nouvelles modifications Après une suppression et recréation du même MLD-MPD Après adaptation du MCD et regénération du MLD Après génération du même MLD-MPD à partir d un autre projet VP Conclusion Page 2 sur 22

3 1 Préambule Ce document présente les tests effectués qui consistent à déployer les modèles logiques et physiques vers une base de données cible. La base de donnée cible testé est Oracle. C est l outil «Generate database» qui a été retenu, car il permet de calculer la différence entre l existant et les objets à obtenir, contrairement au simple outil «Generate SQL». Cet outil a, par contre, une contrainte que l on se doit de prendre en compte : il déploie tous les éléments logiques et physiques du référentiel; il n est pas possible de déployer qu une sous-partie du modèle. 2 Création d un MCD et génération du MLD Avant la réalisation du premier test, nous créons un petit MCD sur lequel nous nous baserons pour réaliser la série de tests. Ce modèle ne contient qu une entité «Intervenant». Nous exécutons ensuite le plug-in de façon à obtenir un MLD auquel s ajoute un MPD. Page 3 sur 22

4 3 Premier déploiement Le premier test réalisé consiste en un premier déploiement sans que des éléments existent dans la base de données cible. Il est réalisé deux fois mais de manière différente. La première est réalisé avec l option «Create Database» fournit par l outil de génération de la base de données, alors que la deuxième teste le comportement avec «Update Database». 3.1 Avec l option «Create database» Le premier test se réalise avec l option «Create Database» comme cité ci-avant. Tout se déroule correctement. Page 4 sur 22

5 Voici le code SQL généré et exécuté : Generating DDL... Exporting to database... Executing SQL: CREATE SEQUENCE Interv_SEQPK Executing SQL: CREATE TABLE Intervenant ( Num number(9) NOT NULL, Nom varchar2(200) NOT NULL, Prenom varchar2(200) NOT NULL) Executing SQL: ALTER TABLE Intervenant ADD CONSTRAINT PK_Interv PRIMARY KEY (Num) Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE) IS IF pio_crtrec.num IS NULL THEN SELECT Interv_SEQPK.NEXTVAL INTO pio_crtrec.num FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS PROCEDURE tree_or_list_onlyone IS Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_BIR BEFORE INSERT ON Intervenant FOR EACH ROW vl_newrec Intervenant%ROWTYPE; vl_newrec.num := :NEW.Num; vl_newrec.nom := :NEW.Nom; vl_newrec.prenom := :NEW.Prenom; Interv_TAPIs.autogen_column(vl_newrec); :NEW.Num := vl_newrec.num; :NEW.Nom := vl_newrec.nom; :NEW.Prenom := vl_newrec.prenom; Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Intervenant Page 5 sur 22

6 Interv_TAPIs.tree_or_list_loop(); Interv_TAPIs.tree_or_list_onlyone(); Generate database finish Avec l option «Update database» En réalisant le même test, à savoir qu aucun élément existant n est présent dans la base de données cible, nous paramétrons cette fois l option «Update Database». Page 6 sur 22

7 L outil génère une erreur et ne parvient pas à créer la séquence. Ci-dessous se trouve le code généré. On voit qu une commande ALTER SEQUENCE est lancée. Connecting Database... Generating DDL... Exporting to database... Executing SQL: ALTER SEQUENCE Interv_SEQPK CACHE Executing SQL: CREATE TABLE Intervenant ( Num number(9) NOT NULL, Nom varchar2(200) NOT NULL, Prenom varchar2(200) NOT NULL) Executing SQL: ALTER TABLE Intervenant ADD CONSTRAINT PK_Interv PRIMARY KEY (Num) Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE) IS IF pio_crtrec.num IS NULL THEN SELECT Interv_SEQPK.NEXTVAL INTO pio_crtrec.num FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS PROCEDURE tree_or_list_onlyone IS Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_BIR BEFORE INSERT ON Intervenant FOR EACH ROW Page 7 sur 22

8 vl_newrec Intervenant%ROWTYPE; vl_newrec.num := :NEW.Num; vl_newrec.nom := :NEW.Nom; vl_newrec.prenom := :NEW.Prenom; Interv_TAPIs.autogen_column(vl_newrec); :NEW.Num := vl_newrec.num; :NEW.Nom := vl_newrec.nom; :NEW.Prenom := vl_newrec.prenom; Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Intervenant Interv_TAPIs.tree_or_list_loop(); Interv_TAPIs.tree_or_list_onlyone(); Error occured during export to database... Error 'ORA-01722: Nombre non valide ' when executing 'ALTER SEQUENCE Interv_SEQPK CACHE ' Generate database finish... Bien que cela soit quelque peu dommage, un simple moyen de contourner le problème est de créer ensuite la séquence manuellement avec l outil «Generate SQL». Page 8 sur 22

9 Visual Paradigm affiche alors la commande SQL qui est correcte cette fois. Un clic sur le bouton avec l icône d engrenage exécute la requête. Avant de lancer l exécution, il est important de vérifier que le délimiteur soit bien «;». Le succès de l exécution est notable lorsque «0 row(s) updated!» s affiche dans la console de la fenêtre de génération SQL. Page 9 sur 22

10 4 Déploiement itératif et incrémental Ce chapitre présente toute une série de tests différents qui permettent de voir ce que l outil de génération et de déploiement de Visual Paradigm sait traiter de manière correcte ou non. Tous les tests réalisés ici utilisent l option «Update Database», qui s avère évidemment obligé pour demander à Visual Paradigm de faire l effort de déterminer une différence entre éléments existants et à obtenir. 4.1 Sans nouvelles modifications Le premier test consiste simplement à relancer le déploiement vers la base de données, sans qu aucune modification ne soit apportée sur le modèle. En lançant la génération de la base de données, l on remarque que la séquence pose encore problème. Dans le code généré ci-dessous, l on remarque que l ALTER SEQUENCE, bien qu il ne serait même pas sensé apparaître, ne fonctionne pas à cause de la valeur CACHE qui n est pas spécifiée. Connecting Database... Generating DDL... Exporting to database... Executing SQL: ALTER SEQUENCE Interv_SEQPK CACHE Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE) IS IF pio_crtrec.num IS NULL THEN SELECT Interv_SEQPK.NEXTVAL INTO pio_crtrec.num FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS PROCEDURE tree_or_list_onlyone IS Page 10 sur 22

11 Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_BIR BEFORE INSERT ON Intervenant FOR EACH ROW vl_newrec Intervenant%ROWTYPE; vl_newrec.num := :NEW.Num; vl_newrec.nom := :NEW.Nom; vl_newrec.prenom := :NEW.Prenom; Interv_TAPIs.autogen_column(vl_newrec); :NEW.Num := vl_newrec.num; :NEW.Nom := vl_newrec.nom; :NEW.Prenom := vl_newrec.prenom; Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Intervenant Interv_TAPIs.tree_or_list_loop(); Interv_TAPIs.tree_or_list_onlyone(); Error occured during export to database... Error 'ORA-01722: Nombre non valide ' when executing 'ALTER SEQUENCE Interv_SEQPK CACHE ' Generate database finish... Pour résoudre ce problème, il est possible de spécifier la propriété CACHE sur l objet de type séquence dans Visual Paradigm. Page 11 sur 22

12 Dans ce cas, le code généré de la séquence, bien que ne servant à rien du tout, ne générera pas d erreurs. Executing SQL: ALTER SEQUENCE Interv_SEQPK CACHE Après une suppression et recréation du même MLD-MPD Ce test consiste à supprimer entièrement le modèle logique et physique du référentiel de Visual Paradigm, et de le regénérer à partir du MCD. Ainsi, les objets du référentiel VP auront changés, mais les noms de ces objets seront les mêmes. Jusqu ici, rien de particulier à signaler. L intérêt est maintenant de voir comment Visual Paradigm réagit lorsqu on lance un «Update Database». Bien entendu, nous réaffectons une valeur dans la propriété CACHE de la séquence, de manière à ne pas interférer le test. Voici le résultat SQL produit : Connecting Database... Generating DDL... Exporting to database... Executing SQL: ALTER SEQUENCE Interv_SEQPK CACHE 20 Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE) IS Page 12 sur 22

13 IF pio_crtrec.num IS NULL THEN SELECT Interv_SEQPK.NEXTVAL INTO pio_crtrec.num FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS PROCEDURE tree_or_list_onlyone IS Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_BIR BEFORE INSERT ON Intervenant FOR EACH ROW vl_newrec Intervenant%ROWTYPE; vl_newrec.num := :NEW.Num; vl_newrec.nom := :NEW.Nom; vl_newrec.prenom := :NEW.Prenom; Interv_TAPIs.autogen_column(vl_newrec); :NEW.Num := vl_newrec.num; :NEW.Nom := vl_newrec.nom; :NEW.Prenom := vl_newrec.prenom; Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Intervenant Interv_TAPIs.tree_or_list_loop(); Interv_TAPIs.tree_or_list_onlyone(); Generate database finish... Le comportement est adéquat, à savoir que la table n est pas recréée, les paquetages recompilés tout de même et aucune erreur ne survient. Page 13 sur 22

14 4.3 Après adaptation du MCD et regénération du MLD L idée de ce test de d apporter des modifications sur le MCD et de mettre à jour le MLD à l aide de plug-in. Voici les modifications que nous apportons sur notre MCD : Ajout d un attribut Telephone Retrait de «M» sur l attribut Prenom Passage de size de l attribut Nom de 200 à 250 Ajout d une entité Projet Ajout d une association entre Projet et Intervenant. Voici le nouveau MCD adapté : Le nouveau MLD obtenu en exécutant le plug-in s adapte de manière correcte : Seule la colonne Prenom n est pas devenue optionnelle, car le plug-in ne prend pas encore ce changement en compte. Cette adaptation a été faite à la main pour permettre la finalisation du test, de même que l ajout de la propriété CACHE sur la nouvelle séquence. À présent, si on lance la génération de la base de données avec l option «Update Database», nous rencontrons bien sûr l erreur due à la nouvelle séquence, mais également une autre erreur. Page 14 sur 22

15 La colonne Nom ayant changée de taille, Visual Paradigm envoi une commande «ALTER TABLE Intervenant MODIFY Nom varchar2(255) NOT NULL». Cependant, la colonne était déjà NOT NULL, et Oracle refuse la commande à cause de cela. Si le mot-clé NOT NULL n avait pas été spécifié dans la commande ALTER, ça aurait fonctionné. Il semblerait ainsi que Visual Paradigm considère simplement qu un changement a eu lieu dans la colonne, sans se soucier duquel en particulier ; tout du moins il exécute une commande ALTER en spécifiant toutes les propriétés de la colonne, ce qu il ne devrait pas faire. Ce point nécessiterait plus d approfondissements. Voici le code SQL complet généré : Connecting Database... Generating DDL... Exporting to database... Executing SQL: ALTER SEQUENCE Interv_SEQPK CACHE 20 Executing SQL: ALTER SEQUENCE Projet_SEQPK CACHE 20 Executing SQL: ALTER TABLE Intervenant modify Nom varchar2(250) NOT NULL Executing SQL: ALTER TABLE Intervenant modify Prenom varchar2(200) NULL Executing SQL: ALTER TABLE Intervenant ADD Telephone varchar2(20) Executing SQL: CREATE TABLE Projet ( Numero number(9) NOT NULL, Nom varchar2(100) NOT NULL) Executing SQL: ALTER TABLE Projet ADD CONSTRAINT PK_Projet PRIMARY KEY (Numero) Executing SQL: CREATE TABLE realise ( Interv_realise_Num number(9) NOT NULL, Projet_realise_Numero number(9) NOT NULL) Executing SQL: ALTER TABLE realise ADD CONSTRAINT PK_realis PRIMARY KEY (Interv_realise_Num, Projet_realise_Numero) Executing SQL: ALTER TABLE realise ADD CONSTRAINT FK_realis_Interv_realise FOREIGN KEY (Interv_realise_Num) REFERENCES Intervenant (Num) Executing SQL: ALTER TABLE realise ADD CONSTRAINT FK_realis_Projet_realise FOREIGN KEY (Projet_realise_Numero) REFERENCES Projet (Numero) Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE) IS IF pio_crtrec.num IS NULL THEN SELECT Interv_SEQPK.NEXTVAL INTO pio_crtrec.num FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS Page 15 sur 22

16 PROCEDURE tree_or_list_onlyone IS Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Projet_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Projet%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Projet_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Projet%ROWTYPE) IS IF pio_crtrec.numero IS NULL THEN SELECT Projet_SEQPK.NEXTVAL INTO pio_crtrec.numero FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS PROCEDURE tree_or_list_onlyone IS Executing SQL: --SPEC CREATE OR REPLACE PACKAGE realis_tapis IS PROCEDURE autogen_column(pio_crtrec IN OUT realise%rowtype); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY realis_tapis IS PROCEDURE autogen_column(pio_crtrec IN OUT realise%rowtype) IS PROCEDURE tree_or_list_loop IS Page 16 sur 22

17 PROCEDURE tree_or_list_onlyone IS Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_BIR BEFORE INSERT ON Intervenant FOR EACH ROW vl_newrec Intervenant%ROWTYPE; vl_newrec.num := :NEW.Num; vl_newrec.nom := :NEW.Nom; vl_newrec.prenom := :NEW.Prenom; vl_newrec.telephone := :NEW.Telephone; Interv_TAPIs.autogen_column(vl_newrec); :NEW.Num := vl_newrec.num; :NEW.Nom := vl_newrec.nom; :NEW.Prenom := vl_newrec.prenom; :NEW.Telephone := vl_newrec.telephone; Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Intervenant Interv_TAPIs.tree_or_list_loop(); Interv_TAPIs.tree_or_list_onlyone(); Executing SQL: CREATE OR REPLACE TRIGGER Projet_TAPIs_BIR BEFORE INSERT ON Projet FOR EACH ROW vl_newrec Projet%ROWTYPE; vl_newrec.numero := :NEW.Numero; vl_newrec.nom := :NEW.Nom; Projet_TAPIs.autogen_column(vl_newrec); :NEW.Numero := vl_newrec.numero; :NEW.Nom := vl_newrec.nom; Executing SQL: CREATE OR REPLACE TRIGGER Projet_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Projet Projet_TAPIs.tree_or_list_loop(); Projet_TAPIs.tree_or_list_onlyone(); Executing SQL: CREATE OR REPLACE TRIGGER realis_tapis_bir BEFORE INSERT ON realise FOR EACH ROW Page 17 sur 22

18 vl_newrec realise%rowtype; vl_newrec.interv_realise_num := :NEW.Interv_realise_Num; vl_newrec.projet_realise_numero := :NEW.Projet_realise_Numero; realis_tapis.autogen_column(vl_newrec); :NEW.Interv_realise_Num := vl_newrec.interv_realise_num; :NEW.Projet_realise_Numero := vl_newrec.projet_realise_numero; Executing SQL: CREATE OR REPLACE TRIGGER realis_tapis_as AFTER INSERT OR UPDATE OR DELETE ON realise realis_tapis.tree_or_list_loop(); realis_tapis.tree_or_list_onlyone(); Error occured during export to database... Error 'ORA-02289: la séquence n'existe pas ' when executing 'ALTER SEQUENCE Projet_SEQPK CACHE 20' Error 'ORA-01442: colonne à modifier en NOT NULL est déjà NOT NULL ' when executing 'ALTER TABLE Intervenant modify Nom varchar2(250) NOT NULL' Generate database finish... Bien entendu nous regénérons ensuite manuellement la séquence à l aide de «Generate SQL», et lançons la commande suivante correctrice qui fonctionne parfaitement : ALTER TABLE Intervenant MODIFY Nom varchar2(255) Page 18 sur 22

19 4.4 Après génération du même MLD-MPD à partir d un autre projet VP Le test présenté ici sert à vérifier si Visual Paradigm lit bien l existant dans le référentiel de la base de données, et ne se contente pas de mémoriser les opérations de déploiement qu il réalise. Pour cela, nous repartons d un nouveau projet «.vpp» et nous créons strictement le même MCD qu au chapitre précédent. Nous générons le MCD en un MLD que nous adaptons afin de disposer également des mêmes spécifications. Nous lançons alors la génération de la base de données avec l option «Update Database». La génération fonctionne sans erreur! Au besoin, voici le code généré : Connecting Database... Generating DDL... Exporting to database... Executing SQL: ALTER SEQUENCE Interv_SEQPK CACHE 20 Executing SQL: ALTER SEQUENCE Projet_SEQPK CACHE 20 Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Interv_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Intervenant%ROWTYPE) IS IF pio_crtrec.num IS NULL THEN SELECT Interv_SEQPK.NEXTVAL INTO pio_crtrec.num FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS Page 19 sur 22

20 PROCEDURE tree_or_list_onlyone IS Executing SQL: --SPEC CREATE OR REPLACE PACKAGE Projet_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Projet%ROWTYPE); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY Projet_TAPIs IS PROCEDURE autogen_column(pio_crtrec IN OUT Projet%ROWTYPE) IS IF pio_crtrec.numero IS NULL THEN SELECT Projet_SEQPK.NEXTVAL INTO pio_crtrec.numero FROM DUAL; END IF; PROCEDURE tree_or_list_loop IS PROCEDURE tree_or_list_onlyone IS Executing SQL: --SPEC CREATE OR REPLACE PACKAGE realis_tapis IS PROCEDURE autogen_column(pio_crtrec IN OUT realise%rowtype); PROCEDURE tree_or_list_loop; PROCEDURE tree_or_list_onlyone; Executing SQL: --BODY CREATE OR REPLACE PACKAGE BODY realis_tapis IS PROCEDURE autogen_column(pio_crtrec IN OUT realise%rowtype) IS PROCEDURE tree_or_list_loop IS Page 20 sur 22

21 PROCEDURE tree_or_list_onlyone IS Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_BIR BEFORE INSERT ON Intervenant FOR EACH ROW vl_newrec Intervenant%ROWTYPE; vl_newrec.num := :NEW.Num; vl_newrec.nom := :NEW.Nom; vl_newrec.prenom := :NEW.Prenom; vl_newrec.telephone := :NEW.Telephone; Interv_TAPIs.autogen_column(vl_newrec); :NEW.Num := vl_newrec.num; :NEW.Nom := vl_newrec.nom; :NEW.Prenom := vl_newrec.prenom; :NEW.Telephone := vl_newrec.telephone; Executing SQL: CREATE OR REPLACE TRIGGER Interv_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Intervenant Interv_TAPIs.tree_or_list_loop(); Interv_TAPIs.tree_or_list_onlyone(); Executing SQL: CREATE OR REPLACE TRIGGER Projet_TAPIs_BIR BEFORE INSERT ON Projet FOR EACH ROW vl_newrec Projet%ROWTYPE; vl_newrec.numero := :NEW.Numero; vl_newrec.nom := :NEW.Nom; Projet_TAPIs.autogen_column(vl_newrec); :NEW.Numero := vl_newrec.numero; :NEW.Nom := vl_newrec.nom; Executing SQL: CREATE OR REPLACE TRIGGER Projet_TAPIs_AS AFTER INSERT OR UPDATE OR DELETE ON Projet Projet_TAPIs.tree_or_list_loop(); Projet_TAPIs.tree_or_list_onlyone(); Executing SQL: CREATE OR REPLACE TRIGGER realis_tapis_bir BEFORE INSERT ON realise FOR EACH ROW vl_newrec realise%rowtype; Page 21 sur 22

22 vl_newrec.interv_realise_num := :NEW.Interv_realise_Num; vl_newrec.projet_realise_numero := :NEW.Projet_realise_Numero; realis_tapis.autogen_column(vl_newrec); :NEW.Interv_realise_Num := vl_newrec.interv_realise_num; :NEW.Projet_realise_Numero := vl_newrec.projet_realise_numero; Executing SQL: CREATE OR REPLACE TRIGGER realis_tapis_as AFTER INSERT OR UPDATE OR DELETE ON realise realis_tapis.tree_or_list_loop(); realis_tapis.tree_or_list_onlyone(); Generate database finish... 5 Conclusion Les tests effectués ont permis de discerner 2 problèmes. Le premier, qui empêche la création des séquences, peut facilement être contourné par l utilisation manuelle de l outil «Generate SQL». Il faudra cependant s assurer de réaliser cela en amont de la génération complète de la base de données, sans quoi des paquetages utilisant les séquences ne pourront pas compiler. Le second problème pose d avantages de questions. Visual Paradigm ne pouvant pas réaliser un changement aussi fin qu une modification de propriété «Nullable» sur une colonne, l on peut se demander si d autres petites adaptations de ce genre ne pourraient pas également poser problème. Ces tests n étant pas exhaustif, il serait intéressant de poursuivre la démarche de manière plus approfondie. Quoi qu il en soit, il est également envisageable de réaliser ces tests sur la dernière version de Visual Paradigm, en espérant une correction éventuelle des problèmes. Si cela ne s avérerait pas fructueux, une annonce de bug pourrait être faite sur le site de l éditeur. Page 22 sur 22

Les triggers. Introduction 1/18. Objectifs. I Utiliser à bon escient le paramétrage des triggers :

Les triggers. Introduction 1/18. Objectifs. I Utiliser à bon escient le paramétrage des triggers : 1/18 2/18 Anne-Cécile Caron Licence MIAGE - Bases de Données 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Ecrire en PL/SQL des triggers liés aux tables.

Plus en détail

Tutoriel de création d une application APEX

Tutoriel de création d une application APEX Tutoriel de création d une application APEX 1 - Objectif On souhaite créer une application APEX destinée à gérer des dépenses et recettes. Ces dépenses et recettes seront classées par catégories. A partir

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 5 : PL/SQL : ou comment faire plus avec ORACLE 3ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Curseurs et mise à jour 2 Paquetages Definition

Plus en détail

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle 1. a Ajouter un CHECK sur la table LigneCommande ALTER TABLE LigneCommande ADD (CONSTRAINT XXX CHECK (noarticle

Plus en détail

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue.

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue. SQL Ch 9 DDL Vues, PL/SQL, procédures,... I. INTRODUCTION... 1 II. LES VUES (ANGLAIS «VIEWS»)... 1 A. CREER UNE VUE : CREATE VIEW... 1 B. SUPPRIMER UNE VUE DROP VIEW... 3 III. LANGAGE PL/SQL, PROCEDURES

Plus en détail

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

Plus en détail

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données Considérons une partie d un modèle conceptuel de données avec les schémas d entités suivants: EMP(EmpNo, Enom, Job, DirNo, Sal, Prime) DEPT(DeptNo, Dnom, Adr) Où EmpNo est la clé primaire de EMP et DeptNo

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

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

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public. DEVAKI NEXTOBJET 1 Présentation...2 Installation...3 Prérequis...3 Windows...3 Linux...3 Exécution...4 Concevoir une BDD avec Devaki NextObject...5 Nouveau MCD...5 Configurer la connexion à la base de

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

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

Cours de Bases de Données Avancées 2006-2007 Groupe cinema, Rapport 4

Cours de Bases de Données Avancées 2006-2007 Groupe cinema, Rapport 4 1 Annexes Avec ce rapport il faut rendre en annexe le script SQL corrigé qui permet de créer la base de données selon votre modèle relationnel ainsi que de la peupler avec un nombre de tuples suffisant.

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Erreur «Mutating Table»

Erreur «Mutating Table» TRIGGER Programmation avancée H.LUU SES Université de Genève H.Luu - Base de données - Eté 2002 Erreur «Mutating Table» Définition : Une table est en état «mutating» si elle est en train d être modifiée

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

SQL (suite) Manipulation: CRUD Insertion, Suppression, mise à jour, lecture Triggers Vues. Bases de données

SQL (suite) Manipulation: CRUD Insertion, Suppression, mise à jour, lecture Triggers Vues. Bases de données SQL (suite) Manipulation: CRUD Insertion, Suppression, mise à jour, lecture Triggers Vues Manipulation CRUD INSERT INTO (Create) pour insérer des tuple SELECT FROM (Read) pour lire des tuples UPDATE (Update)

Plus en détail

Modélisation et Gestion des bases de données avec mysql workbench

Modélisation et Gestion des bases de données avec mysql workbench Modélisation et Gestion des bases de données avec mysql workbench par novembre 2011 Table des matières 1 Installation 3 1.1 Ecran de chargement 3 1.2 Page d accueil 3 2 Réalisation d une base de données

Plus en détail

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers Département d informatique Collège Lionel Groulx. Préparé par Saliha Yacoub Table des matières. Introduction...

Plus en détail

Les procédures fonctions packages et triggers

Les procédures fonctions packages et triggers Les procédures fonctions packages et triggers Les procédures stockées: Définition: Une procédure est un code PL/SQL défini par l utilisateur et stocké dans la base de données. Ce qui permet d éliminer

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Bases de données avancées Triggers

Bases de données avancées Triggers Bases de données avancées Triggers Wies law Zielonka 12 décembre 2009 Résumé Ces notes ne sont pas corrigées, mais peut-être vous les trouverez quand même utiles pour préparer l examen ou projet. Ne pas

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

2013-2014 N.EL FADDOULI 1 2013-2014 N.EL FADDOULI 67. Page 1

2013-2014 N.EL FADDOULI 1 2013-2014 N.EL FADDOULI 67. Page 1 Introduction Bloc PLSQL Déclaration des variable Structure de contrôle Curseurs Les exceptions PL SQL Les fonctions et procédures Les packages Les triggers 1 Définition Utilité Triggers ( déclencheurs

Plus en détail

-Les Vues, Les Déclencheurs, Les vues matérialisées. et Les Clichés-

-Les Vues, Les Déclencheurs, Les vues matérialisées. et Les Clichés- -Les Vues, Les Déclencheurs, Les vues matérialisées et Les Clichés- Les vues : 1. Définition et intérêts : Une Vue est une table logique pointant sur une ou plusieurs tables ou vues et ne contient physiquement

Plus en détail

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique Bases de données Jean-Yves Antoine VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr L3 S&T mention Informatique Bases de Données IUP Vannes, UBS J.Y. Antoine 1 Bases de données SGBD

Plus en détail

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

DB Main Bien débuter.

DB Main Bien débuter. DB Main Bien débuter. Downloader depuis http://www.info.fundp.ac.be/~dbm/ L élaboration d une base de données se fait en 4 étapes : 1. L analyse conceptionnelle 2. Le MCD modèle conceptuel de données.

Plus en détail

TP1 - Corrigé. Manipulations de données

TP1 - Corrigé. Manipulations de données TP1 - Corrigé Manipulations de données 1. Démarrez mysql comme suit : bash$ mysql -h 127.0.0.1 -u user4 -D db_4 p Remarque: le mot de passe est le nom de user. Ici user4 2. Afficher la liste des bases

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Cours n 6 SQL : Langage de définition des données (LDD)

Cours n 6 SQL : Langage de définition des données (LDD) Cours n 6 SQL : Langage de définition des données (LDD) Chantal Reynaud Université Paris X - Nanterre UFR SEGMI - IUP MIAGE Cours de Systèmes de Gestion de Données Licence MIAGE 2003/2004 1 Plan I. Langage

Plus en détail

Définition de contraintes. c Olivier Caron

Définition de contraintes. c Olivier Caron Définition de contraintes 1 Normalisation SQL-92 Les types de contraintes 1 Les types de contraintes Normalisation SQL-92 Les contraintes de domaine définissent les valeurs prises par un attribut. 1 Les

Plus en détail

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Bases de données Programmation PL/SQL LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Plan I. Vue d ensemble et principes de fonctionnement II. Eléments de programmation III.

Plus en détail

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête Modification des données stockées dans une base LIF4 - Initiation aux Bases de données : SQL - 3 E.Coquery emmanuel.coquery@liris.cnrs.fr http ://liris.cnrs.fr/ ecoquery La modification s effectue par

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 CRÉATION DES OBJETS DE BASES DE DONNÉES... 2 1.1 Architecture d une base de données... 2 1.1.1 Niveau logique... 2 1.1.2 Niveau physique... 3 1.2 Gestion d une base de données... 3

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

420-PK6-SL Banques de données Avancées LES VUES

420-PK6-SL Banques de données Avancées LES VUES 420-PK6-SL Banques de données Avancées LES VUES CAS D'UTILISATION Prenons en exemple cette requête complexe : SELECT a.tablespace_name, a.contents, a.extent_management, a.allocation_type, a.segment_space_management,

Plus en détail

Projet MVC-CD. Des modèles intelligents pour accroître la productivité du développement des logiciels de gestion

Projet MVC-CD. Des modèles intelligents pour accroître la productivité du développement des logiciels de gestion Projet MVC-CD Des modèles intelligents pour accroître la productivité du développement des logiciels de gestion Les APIs de tables (TAPIs) du modèle physique relationnel Sommaire. Préambule... 2 2. Que

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

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

Bases de Données Relationnelles. SQL Le langage de définition des données de SQL

Bases de Données Relationnelles. SQL Le langage de définition des données de SQL Bases de Données Relationnelles SQL Le langage de définition des données de SQL Introduction SQL : Structured Query Language SQL est normalisé SQL 2: adopté (SQL 92) SQL 3: adopté (SQL 99) Standard d'accès

Plus en détail

Les Déclencheurs ORACLE

Les Déclencheurs ORACLE Les Déclencheurs ORACLE Un déclencheur est un bloc PL/SQL associé à une vue ou une table, qui s'exécutera lorsqu'une instruction du langage de manipulation de données (DML) sera exécutée L'avantage principal

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

ORACLE SQL LDD. Langage de définition de données

ORACLE SQL LDD. Langage de définition de données ORACLE SQL LDD Langage de définition de données Le langage SQL (Structured Query Language) SQL a été normalisé par l ANSI puis par l ISO depuis 1986 sous ses différents aspects : LDD : définition des données

Plus en détail

Table des matières 1 TRANSFERT DE DONNÉES... 2 1.1 BULK INSERT... 2 1.2 OPENROWSET... 4 1.3 BCP... 5

Table des matières 1 TRANSFERT DE DONNÉES... 2 1.1 BULK INSERT... 2 1.2 OPENROWSET... 4 1.3 BCP... 5 Table des matières 1 TRANSFERT DE DONNÉES... 2 1.1 BULK INSERT... 2 1.2 OPENROWSET... 4 1.3 BCP... 5 2011 Hakim Benameurlaine 1 1 TRANSFERT DE DONNÉES Pour transférer des données, il existe différentes

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

Installation et administration d une base de données MySQL

Installation et administration d une base de données MySQL Compte rendu d'activité Fiche n 2 Nom et prénom : SAÏD Jérôme Nature de l'activité Installation et administration d une base de données MySQL Contexte : Dans le but de mettre en place un outils permettant

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

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

TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD

TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD Cette partie est à réaliser sur papier uniquement. Il s agit de réaliser un modèle conceptuel de données (MCD) suivi du modèle

Plus en détail

TD6 - Audit. Corrigé. 14 janvier 2016

TD6 - Audit. Corrigé. 14 janvier 2016 TD6 - Audit Corrigé Chantal Keller 14 janvier 2016 1 Généralités Question 1 Peut-on avoir confiance dans les tests détection d infection (c est-à-dire regardant a posteriori

Plus en détail

Projet de Base de données

Projet de Base de données Julien VILLETORTE Licence Informatique Projet de Base de données Année 2007-2008 Professeur : Marinette Savonnet Sommaire I) Introduction II) III) IV) Diagrammes a. Diagramme Use Case b. Diagramme de classes

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Conception de bases de données relationnelles Langage PL/(pg)SQL Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Aperçu de PL/(pg)SQL Aperçu de PL/(pg)SQL PL/SQL : Procedural Language for SQL (Oracle)

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

Bases de données Cours 7 : Modèle relationnel-objet

Bases de données Cours 7 : Modèle relationnel-objet -relationnel Cours 7 : Modèle relationnel-objet ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://pages-perso.esil.univmed.fr/ papini/ -relationnel Plan du cours 1 Introduction 2

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar Bases de données Ecole Marocaine des Sciences de l Ingénieur Yousra Lembachar Déclencheurs Qu est-ce qu un déclencheur? Un déclencheur ou une règle ECA est de la forme: «Quand un Evénement se produit,

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 11 : Les tables comme objets (3ème partie) Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Tables objet Rappels Exemple d insertion Sélection 2 Vues

Plus en détail

Chapitre 7 Le Langage de Définition de Données

Chapitre 7 Le Langage de Définition de Données Chapitre 7 Le Langage de Définition de Données Jusque là, nous avons réalisé toutes les interrogations possibles sur les données, sans pour autant savoir comment gérer leurs structures. Dans ce chapitre,

Plus en détail

UTILISER LE SERVEUR MYSQL...

UTILISER LE SERVEUR MYSQL... MySQL (pour Windows 9x) UTILISER LE SERVEUR MYSQL... 2 LANCER LE SERVEUR MYSQL... 2 ARRETER LE SERVEUR MYSQL... 3 TRAVAIL AVEC LA CONSOLE MYSQL... 3 CREATION / SUPPRESSION D'UN BASE... 3 UTILISER UN BASE...

Plus en détail

CC30 Certificat de compétence Conception, développement et animation de sites Web

CC30 Certificat de compétence Conception, développement et animation de sites Web CC30 Certificat de compétence Conception, développement et animation de sites Web UE RSX053 Introduction aux bases de données Séance 9 1 Table des matières 1. PLSQL...3 1.1. Présentation...3 1.2. L utilité

Plus en détail

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Déclencheurs Bases de Données TRIGGER C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Généralités Un déclencheur est un traitement (sous forme de bloc PL/SQL) qui s exécute automatiquement

Plus en détail

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28 Introduction 1/28 2/28 Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Créer des tables à partir d un modèle I Utiliser

Plus en détail

Tableau 7-27 Déclencheur avant insertion. Tableau 7-28 Test du déclencheur

Tableau 7-27 Déclencheur avant insertion. Tableau 7-28 Test du déclencheur chapitre n 7 Programmation avancée Chaque enregistrement qui tente d être ajouté dans la table Qualifications est désigné par :NEW au niveau du code du déclencheur. L accès aux colonnes de ce pseudo-enregistrement

Plus en détail

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire l objet d une exploitation

Plus en détail

Triggers Introduction à PL-SQL Céline Rouveirol. d'après les transparents de Jeff Ullman http://infolab.stanford.edu/~ullman/

Triggers Introduction à PL-SQL Céline Rouveirol. d'après les transparents de Jeff Ullman http://infolab.stanford.edu/~ullman/ Triggers Introduction à PL-SQL Céline Rouveirol d'après les transparents de Jeff Ullman http://infolab.stanford.edu/~ullman/ 1 Triggers: Motivation Les vérifications de contraintes (attribut ou n-uplet)

Plus en détail

OI40: bases de données, TP 2

OI40: bases de données, TP 2 OI40: bases de données, TP 2 Frédéric Lassabe October 26, 2010 Ce TP requiert d avoir bien compris le TP précédent. 1 Sujet Lors de ce TP, il sera question d améliorer la base de données du TP précédent.

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 1 : Vues et Index Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les Vues Généralités Syntaxe Avantages Conditions de mise à jour 2 Index Généralités

Plus en détail

Création de base de données en SQL - exercices dans le cadre du cours à l'ibis. Sébastien Clément, avril 2011

Création de base de données en SQL - exercices dans le cadre du cours à l'ibis. Sébastien Clément, avril 2011 Création de base de données en SQL - exercices dans le cadre du cours à l'ibis. Sébastien Clément, avril 2011 Interface Web PhpPgAdmin: permet de faire des requêtes SQL ( 1 commandes) permet de visualiser

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

Documentation Talend. Charly Riviere CDG35

Documentation Talend. Charly Riviere CDG35 Documentation Talend Charly Riviere CDG35 1. Présentation générale Talend est un ETL pour "Extract Transform Load". Comme son nom l'indique il permet d'extraire des données pour ensuite les transformer

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

APIS DE TABLE POUR SQL SERVER

APIS DE TABLE POUR SQL SERVER APIS DE TABLE POUR SQL SERVER TRAVAIL DE BACHELOR D INFORMATICIEN DE GESTION D. PARTIE PRATIQUE Mode de réalisation : Extra-muros Date de création : 17.02.2015 Dernière modification : 11.09.2015 Cycle

Plus en détail

Designer et l ingénierie du logiciel Les APIs de tables pour garantir l intégrité des données

Designer et l ingénierie du logiciel Les APIs de tables pour garantir l intégrité des données Designer et l ingénierie du logiciel Les APIs de tables pour garantir l intégrité des données P.-A. Sunier, ISNet Neuchâtel avec le concours de C. Kohler et P. Ferrara 1 Introduction... 1 2 Le concept...

Plus en détail

SII du transporteur avec BPEL

SII du transporteur avec BPEL SII du transporteur avec BPEL Projet BPMS Dernière modification : 18.12.2007 Table des matières 1. INTRODUCTION...3 2. SERVEURS...3 2.1. RÉFÉRENTIEL DESIGNER...3 2.2. SERVEUR DE BASE DE DONNÉES...3 2.3.

Plus en détail

Secteur Tertiaire Informatique Filière étude - développement. Accueil. Apprentissage. Période en entreprise. Evaluation.

Secteur Tertiaire Informatique Filière étude - développement. Accueil. Apprentissage. Période en entreprise. Evaluation. Secteur Tertiaire Informatique Filière étude - développement Activité «Développer la persistance des données» PL / SQL: Mise à jour des données Accueil Apprentissage Période en entreprise Evaluation Code

Plus en détail

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc TD BD dynamique Un déclencheur est utilisé pour complémenter les contraintes d'intégrité de la base. Une partie des contraintes ne peut souvent pas être définie avec les fonctionnalités décrites jusqu'ici.

Plus en détail

3. Initialiser m2 et m3 à l aide de ce constructeur, puis afficher le contenu de la table Meuble à l aide d une requête SQL.

3. Initialiser m2 et m3 à l aide de ce constructeur, puis afficher le contenu de la table Meuble à l aide d une requête SQL. Base de données Département Informatique et Statistique, Faculté de SEG, Université Lumière Lyon 2 M2 Informatique spécialité IDS-IIDEE Année 2011-2012 Bases de données objets TD n 4 J. Darmont (http:eric.univ-lyon2.fr~jdarmont),

Plus en détail

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL PL/SQL Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures stockées simples Elle laisse de côté de nombreuses fonctionnalités du langage Université

Plus en détail

Symphony. Optimisation. Version Nom Date Action 1.0 Adrien CAMBON 08/08/2014 Création 1.1 Adrien CAMBON 02/09/2015 Ajout partie serveur Web

Symphony. Optimisation. Version Nom Date Action 1.0 Adrien CAMBON 08/08/2014 Création 1.1 Adrien CAMBON 02/09/2015 Ajout partie serveur Web Symphony Optimisation Version Nom Date Action 1.0 Adrien CAMBON 08/08/2014 Création 1.1 Adrien CAMBON 02/09/2015 Ajout partie serveur Web 1 / 19 TABLE DES MATIERES 1. Introduction... 3 1.1. But du document...

Plus en détail

Faculté I&C, Claude Petitpierre, André Maurer. Bases de données. SQL (Structured Query Language)

Faculté I&C, Claude Petitpierre, André Maurer. Bases de données. SQL (Structured Query Language) Bases de données SQL (Structured Query Language) Une base de données contient des tables idv region cepage annee Lavaux chasselas 2005 Chianti sangiovese 2002 2 Bourgogne pinot noir 2000 Le nom et le type

Plus en détail

Oracle : Langage PL/SQL

Oracle : Langage PL/SQL 1 Introduction à PL/SQL Oracle : Langage PL/SQL PL/SQL est un langage de programmation procédural et structuré. 1.1 Langage de programmation Il contient un ensemble d'instructions permettant de mettre

Plus en détail

Module Com231A - Web et Bases de Données Notion 3 : SQL

Module Com231A - Web et Bases de Données Notion 3 : SQL Module Com231A - Web et Bases de Données Notion 3 : SQL Qu est ce qu une base de données? Introduction Une base de données est un ensemble d au moins un tableau contenant des données. Exemple : une base

Plus en détail

TP SQL Server2005 Procédures stockées et déclencheurs

TP SQL Server2005 Procédures stockées et déclencheurs 1 TP SQL Server2005 Procédures stockées et déclencheurs Objectifs: - création et test de procédures stockées, - création et test de déclencheurs sur votre base de données Gescom. Condition de réalisation

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Projet de Bases de Données. Auto-école

Projet de Bases de Données. Auto-école L3 MIAGE 2015/2016 Projet de Bases de Données septembre 2015 Auto-école Avertissement : Ce projet intervient en grande partie dans la note de TP. Cette note compte pour les 2 sessions. Un projet non rendu

Plus en détail

I- Présentation générale II-Création d une base III-Remplir une table IV-Requêtes SQL SQLITEMAN KIT DE SURVIE

I- Présentation générale II-Création d une base III-Remplir une table IV-Requêtes SQL SQLITEMAN KIT DE SURVIE SQLITEMAN KIT DE SURVIE SQLITEMAN KIT DE SURVIE I-Présentation générale Fenêtre du «navigateur d objets», qui permet de visualiser ou modifier la structure de la base de données utilisées. Fenêtre de

Plus en détail

Le language SQL (2/2)

Le language SQL (2/2) Les commandes de base sous Unix SQL (Première partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Création d'une base ([] facultatif) : createdb nombase [ -U comptepostgres ] Destruction

Plus en détail

Instructions SQL. Première partie : Langage de description et de gestion des données

Instructions SQL. Première partie : Langage de description et de gestion des données Instructions SQL Première partie : Langage de description et de gestion des données Quelques instructions et leur syntaxe 1. Introduction Trois principales catégories d instructions. Instructions de création

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

SQL (Première partie) Walter RUDAMETKIN

SQL (Première partie) Walter RUDAMETKIN SQL (Première partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Les commandes de base sous Unix Création d'une base ([] facultatif) : createdb nombase [ -U comptepostgres ] Destruction

Plus en détail

1 introduction : SQL server

1 introduction : SQL server Lycée lissan eddine ibn_elkhatib laayoune SGBDR 1 Pr H.LAARAJ 2015/2016 2 1 introduction : SQL server 1 3 SQL server SQL-Server est un SGBDR Client-Serveur qui utilise TRANSACT-SQL dans ses transactions.

Plus en détail

Compte rendu d activité Fiche n 1

Compte rendu d activité Fiche n 1 Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en

Plus en détail

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

SQLTools en 5 étapes ver. 0.1. Tomasz Drzewiecki - Traduit et adapté de l anglais par Michel Traisnel

SQLTools en 5 étapes ver. 0.1. Tomasz Drzewiecki - Traduit et adapté de l anglais par Michel Traisnel SQLTools en 5 étapes ver. 0.1 Tomasz Drzewiecki - Traduit et adapté de l anglais par Michel Traisnel 23 mars 2005 Table des matières 1 Connexion 2 2 Fenêtre principale 3 3 Liste des objets 6 4 Et maintenant

Plus en détail

Compte rendu de PHP MySQL : création d un formulaire de base de données

Compte rendu de PHP MySQL : création d un formulaire de base de données REVILLION Joris Décembre 2009 3EI Compte rendu de PHP MySQL : création d un formulaire de base de données Objectifs : Le principal objectif de ce cours est de découvrir et de nous familiariser avec le

Plus en détail