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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bases de données. Cours 6 : Introduction à des notions avancées (Index, Déclencheurs, Transactions) Nicolas DURAND

Bases de données. Cours 6 : Introduction à des notions avancées (Index, Déclencheurs, Transactions) Nicolas DURAND Bases de données Cours 6 : Introduction à des notions avancées (Index, Déclencheurs, Transactions) Nicolas DURAND Polytech Marseille Université d Aix-Marseille 2012-2013 Nicolas DURAND Bases de données

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

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

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

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

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

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

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

Introduction au langage SQL

Introduction au langage SQL Introduction au langage SQL 1. Description SQL est un acronyme pour Structured Query Language qui a été conçu par IBM, et a succédé au langage SEQUEL. C est maintenant le langage le plus utilisé dans les

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

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

Notes de cours. PL/SQL (Oracle 11g) Hakim Benameurlaine. Décembre 2012. 2012 Hakim Benameurlaine 1

Notes de cours. PL/SQL (Oracle 11g) Hakim Benameurlaine. Décembre 2012. 2012 Hakim Benameurlaine 1 Notes de cours PL/SQL (Oracle 11g) Hakim Benameurlaine Décembre 2012 2012 Hakim Benameurlaine 1 Table of Contents 1 PRÉSENTATION DU PL/SQL... 5 1.1 Bloc PL/SQL... 5 1.2 Les variables... 7 1.3 Les variables

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Stéphane Bortzmeyer <stephane+blog@bortzmeyer.org>

Stéphane Bortzmeyer <stephane+blog@bortzmeyer.org> De l intérêt des règles d intégrité dans un SGBD Stéphane Bortzmeyer Première rédaction de cet article le 17 janvier 2008 Il semble que l utilisation des règles d intégrité

Plus en détail

SQL avancé Correction

SQL avancé Correction SQL avancé Correction 1 Base Cinéma étendue (modèle logique de données et modèle relationnel) Nous utiliserons lors de ce TD une extension de la base Cinéma. Le modèle logique de données (MLD) et le modèle

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

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

Auto-évaluation DB2 for z/os: cours de base

Auto-évaluation DB2 for z/os: cours de base Auto-évaluation DB2 for z/os: cours de base Document: f1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION DB2 FOR Z/OS:

Plus en détail

Théorie et pratique de Base de données Oracle M.Boubetra 1 Système d Information But : gérer un ensemble d informations Stockage Consultation Modification Suppression Edition 2 Conception d un système

Plus en détail

Les procédures stockées et les fonctions utilisateur

Les procédures stockées et les fonctions utilisateur Les procédures stockées et les fonctions utilisateur Z Grégory CASANOVA 2 Les procédures stockées et les fonctions utilisateur [08/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les procédures

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

Feuille de TD 2 de BDA, M1 2008 2009 11-03-2011. SGBDRO avec Oracle. 1 Première version simpliste

Feuille de TD 2 de BDA, M1 2008 2009 11-03-2011. SGBDRO avec Oracle. 1 Première version simpliste Feuille de TD 2 de BDA, M1 2008 2009 11-03-2011 Les fichiers en format pdf des projections du cours sont disponibles sur la page : http://www.ibisc.univevry.fr/~serena mais ne pas les imprimer au bât.

Plus en détail

Introduction aux Systemes d Information et aux Bases de Données

Introduction aux Systemes d Information et aux Bases de Données Introduction aux Systemes d Information et aux Bases de Données L2 Informatique Serenella Cerrito Département d Informatique Évry 2014-2015 Quels valeurs peut prendre un attribut? Ici, les types les plus

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

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

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Projet MVC-CD Mise en place de l environnement de développement

Projet MVC-CD Mise en place de l environnement de développement Projet MVC-CD Mise en place de l environnement de développement Créé par S. Berberat, le 18 décembre 2013 Modifié par S. Berberat, le 14 septembre 2015 Page 1 sur 30 Table des matières 1 Préambule... 3

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

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

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

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

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

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

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML MariaDB : https://mariadb.org/ Site officiel MySQL : http://www-fr.mysql.com/ Zone pour les développeurs : http://dev.mysql.com/

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

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

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

DROP TABLE Aeroport CASCADE CONSTRAINTS; CREATE TABLE Aeroport ( VARCHAR(60) NOT NULL, CONSTRAINT PK_aeroport primary key (codeaeroport) );

DROP TABLE Aeroport CASCADE CONSTRAINTS; CREATE TABLE Aeroport ( VARCHAR(60) NOT NULL, CONSTRAINT PK_aeroport primary key (codeaeroport) ); / Fichier: tp1-2.sql Nom: Martin Rancourt - Matricule: 14059412 Nom: Vincent Ribou - Matricule: 14042001 Description : Travail pratique #1 partie 2. Base de données qui permet de gérer les vols d une compagnie

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/187 Bases de Données Avancées UML et SQL 2/3 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

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

Introduction aux bases de données relationnelles

Introduction aux bases de données relationnelles Formation «Gestion des données scientifiques : stockage et consultation en utilisant des ases de données» 24 au 27 /06/08 Introduction aux ases de données relationnelles Christine Tranchant-Dureuil UMR

Plus en détail

BTS SIO SUP 1 SISR Ducloux-Lebon Gilles BTS SIO - PPE 1-3 KOS INF

BTS SIO SUP 1 SISR Ducloux-Lebon Gilles BTS SIO - PPE 1-3 KOS INF BTS SIO SUP 1 SISR Ducloux-Lebon Gilles BTS SIO - PPE 1-3 KOS INF Sommaire Sélection d'un SGBD pour la mise en place des réservations de salle... 3 Construction de modèles MPD et MCD relatif à la gestion

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

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

SQL : création et mises-à-jour de schémas et de données

SQL : création et mises-à-jour de schémas et de données SQL : création et mises-à-jour de schémas et de données Commandes de définition de données (DDL) Commandes de mise-à-jour de données (DML) Vues SQL-MAJ, vues-1 / 33 Exemple Définition de la relation

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

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 Partie A : administration d une base de donnée à travers PhpMyAdmin

1 Partie A : administration d une base de donnée à travers PhpMyAdmin Ce TP se compose en 2 sections : une section de prise en main (sur ordinateur) et une section d exercice (sur papier) concernant l algèbre relationnelle. 1 Partie A : administration d une base de donnée

Plus en détail

Bases de données 2I009 Examen du 15 Mai 2015 Durée : 2 heures CORRIGÉ Documents autorisés

Bases de données 2I009 Examen du 15 Mai 2015 Durée : 2 heures CORRIGÉ Documents autorisés Examen BD 2I009 15 Mai 2015 Votre numéro d anonymat : Université Pierre et Marie Curie Bases de données 2I009 Examen du 15 Mai 2015 Durée : 2 heures CORRIGÉ Documents autorisés Les téléphones mobiles doivent

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Module B210 Bases de données relationnelles Travaux pratiques TP avec Oracle XE TP avec MySQL Gérard-Michel Cochard Travaux Pratiques avec Oracle XE Contenu : 1 - Installation et prise en main 2 - Un exemple

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

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

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

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

TP3 : Creation de tables 1 seance

TP3 : Creation de tables 1 seance Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer

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

BD50. Gestion des courses

BD50. Gestion des courses Département Génie Informatique BD50 TP7 : Développement avec le module PL/SQL de 9iAS et DBMS_EPG d'oracle 10G Gestion des courses Françoise HOUBERDON & Christian FISCHER Copyright Mai 2007 Présentation

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

SQL et Bases de données relationnelles. November 26, 2013

SQL et Bases de données relationnelles. November 26, 2013 November 26, 2013 SQL : En tant que langage d interrogation En tant que langage de mise à jour En tant que langage de définition de données Langages de requête Langages qui permettent d interroger la BD

Plus en détail

Bases de données orientées objets SGBD relationnels-objets un exemple : ORACLE

Bases de données orientées objets SGBD relationnels-objets un exemple : ORACLE Bases de données orientées objets SGBD relationnels-objets un exemple : ORACLE SQL3 - SQL3 = SQL2 pour BD relationnelles+ des extensions orienté-objet multi-media spatial Séries temporelles - Ce chapitre

Plus en détail

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

PL/SQL 2014-2015. Bases de données 2

PL/SQL 2014-2015. Bases de données 2 Cours 10 : PL/SQL Procedural Language/SQL Blocs, variables, instructions, structures de contrôle, curseurs, gestion des erreurs, procédures/fonctions stockées, packages, triggers PL/SQL Chapitre 3 de la

Plus en détail

Servlets, beans, base de données

Servlets, beans, base de données Institut Galilée E-services Année 2014-2015 Master 2 T.P. 2 Servlets, beans, base de données L objectif de ce TP est de mettre en place un site web pour l administration et la commande de pizzas : une

Plus en détail

Corrigés détaillés des exercices

Corrigés détaillés des exercices Corrigés détaillés des exercices Diagramme des tables objet La figure suivante vous aidera dans la compréhension des manipulations des objets de la base. Client_type Client num nom adresse {telephone_vry}

Plus en détail

FMIN366 CM3 : Charger de gros volumes de données dans une base de données Oracle

FMIN366 CM3 : Charger de gros volumes de données dans une base de données Oracle FMIN366 CM3 : Charger de gros volumes de données dans une base de données Oracle 1. Manipulation de l utilitaire Oracle de chargement de données SQL*Loader Des fichiers de données au format CSV (Comma

Plus en détail

Memento MYSQL LINUX. Pour installer le serveur Mysql. Installer les paquets suivants :

Memento MYSQL LINUX. Pour installer le serveur Mysql. Installer les paquets suivants : Memento MYSQL LINUX Pour installer le serveur Mysql Installer les paquets suivants : Mysql-server (moteur de bases de données) Apache2 (serveur web si besoin) Php5 (langage de programmation permettant

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

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

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

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

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

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Définition MySQL = SGBD = Système de Gestion de Base de Données Le rôle du MySQL est de vous aider à enregistrer les données de manière organisée

Plus en détail

VISUAL PARADIGM. C. Présentation de Visual Paradigm For UML TRANSFORMATION DE MCD EN MLD ITÉRATIVE. Document version 1

VISUAL PARADIGM. C. Présentation de Visual Paradigm For UML TRANSFORMATION DE MCD EN MLD ITÉRATIVE. Document version 1 HEG Arc - Haute école Arc Gestion Travail de Bachelor d'informaticien de gestion VISUAL PARADIGM TRANSFORMATION DE MCD EN MLD ITÉRATIVE C. Document version 1 Créé le : 17.06.2012 Modifié le : 01.07.2012

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

SQL SERVER 2008 Le 20/10/2010

SQL SERVER 2008 Le 20/10/2010 Définitions SQL SERVER 2008 Le 20/10/2010 Une base de données est un objet particulièrement difficile à définir puisqu il est abordé en pratique selon différents points de vue : Pour un administrateur,

Plus en détail

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Un modèle de données définit un mode de représentation de l information selon trois composantes : 1. Des structures de données. 2. Des contraintes qui permettent

Plus en détail

PPE 1-3. Base de données. Création de la Base de données pour le système réservation des salles

PPE 1-3. Base de données. Création de la Base de données pour le système réservation des salles Création de la Base de données pour le système réservation des salles PPE 1-3 Base de données Jordan Dutaillis Steveen Hanta Mathieu Collin Ismaël Sacko 1 Contenu I. Introduction :... 3 II. Le système

Plus en détail