Sie sind auf Seite 1von 6

Elaboration de MLD

ETUDIANT

CNE

CIN

NOM

PRENOM

DATE_NAISSANCE

ADDRESSE

#ID_MODULE

#ID_MASTER
LISTMASTER

ID_MASTER

FILIERE

ANNEE

MODULE

ID_MODULE

NOM_MODULE

NOTE

ETAT_MODULE

SEMESTRE

#ID_MASTER

Pour créer une base de donnee sous l’oracle on utilse databse configuration assistant

Sous le nom MASTER et user= OMAR et un password

 La creation des tables sous oracle 9i

Table LISTMASTER :

CREATE TABLE "OMAR"."LISTMASTER" ("ID_MASTER" VARCHAR2(10) NOT NULL, "FILIERE"


VARCHAR2(10) NOT NULL, "ANNEE" VARCHAR2(10) NOT NULL,PRIMARY
KEY("ID_MASTER"), UNIQUE("ID_MASTER")) TABLESPACE "USERS"

Table MODULE :

CREATE TABLE "OMAR"."MODULE" ("ID_MODULE" VARCHAR2(10) NOT NULL, "NOM_MODULE"

VARCHAR2(10) NOT NULL, "NOTE" FLOAT(10) NOT NULL, "ETAT_MODULE"

VARCHAR2(10) NOT NULL, "SEMESTRE" VARCHAR2(10) NOT NULL, "ID_MASTER"

VARCHAR2(10) NOT NULL, PRIMARY KEY("ID_MODULE"), UNIQUE("ID_MODULE"),

FOREIGN KEY("ID_MASTER") REFERENCES "OMAR"."LISTMASTER"("ID_MASTER"))


TABLESPACE "USERS"

Table ETUDIANT :

CREATE TABLE "OMAR"."ETUDIANT" ("CNE" NUMBER(10) NOT NULL, "CIN"

VARCHAR2(10) NOT NULL, "NOM" VARCHAR2(10) NOT NULL, "PRENOM"

VARCHAR2(10) NOT NULL, "DATE_NAISSANCE" DATE NOT NULL, "ADRESSE"

VARCHAR2(10) NOT NULL, "ID_MASTER" VARCHAR2(10) NOT NULL, "ID_MODULE"

VARCHAR2(10) NOT NULL, PRIMARY KEY("CNE"), UNIQUE("CNE"),

FOREIGN KEY("ID_MASTER") REFERENCES "OMAR"."LISTMASTER"("ID_MASTER"),

FOREIGN KEY("ID_MODULE") REFERENCES "OMAR"."MODULE"("ID_MODULE"))

TABLESPACE "USERS"

 La creation des script PL/SQL.

1
SET SERVEROUTPUT ON

DECLARE

cursor C1 is select FILIERE from LISTMASTER;

BEGIN

dbms_output.put_line('la liste des masters est : ');

for K in C1 loop

dbms_output.put_line(K.FILIERE);

end loop;

END;

2
SET SERVEROUTPUT ON

DECLARE

cursor C2 is (select NOM,PENOM from ETUDIANT E , LISTMASTER L, MODULE M where


E.ID_MASTER=L.ID_MASTER and E.ID_MODULE=M.ID_MODULE and L.FILIERE=’génie civil’
and M.SEMESTRE=’S8’ and L.ANNEE=2017);

BEGIN

dbms_output.put_line('les etudiants inscrits sont: ');

FOR X IN C2 loop

dbms_output.put_line(X.NOM||’ ’||X.PRENOM);

end loop ;

END ;

SET SERVEROUTPUT ON

DECLARE

cursor C3 is (select NOTE,NOM_MODULE from MODULE M, ETUDIANT E , LISTMASTER L where


E.ID_MASTER=L.ID_MASTER and E.ID_MODULE=M.ID_MODULE and M.SEMESTRE=’S7’ and
E.CNE=152346);

BEGIN

dbms_output.put_line('les notes de semestre s7 : ');

FOR A IN C3 loop

dbms_output.put_line(A.NOM_MODULE||’ ’||A.NOTE);

end loop

END ;

4
SET SERVEROUTPUT ON

DECLARE
e-cne ETUDIANT.CNE%TYPE

e_cin ETUDIANT.CIN%TYPE

e_nom ETUDIANT.NOM%TYPE

e_prenom ETUDIANT.PRENOM%TYPE

e_adresse ETUDIANT.ADRESSE%TYPE

cursor C4 is select NOTE,NOM_MODULE,SEMESTRE FROM MODULE M ,ETUDIANT E MASTER


M where E.ID_MODULE=M.ID_MODULE AND M.ID_MASTER=L.ID_MASTER

BEGIN

Select CNE,CIN ,NOM,PRENOM,ADRESSE INTO e-cne ,e_cin ,e_nom ,e_prenom, e_adresse

FROM ETUDIANT where CNE=147879 ;

dbms_output.put_line( e-cne||’’|| e_cin||’’|| e_nom||’’|| e_prenom||’’|| e_adresse


);

FOR X IN C4 loop

dbms_output.put_line(A.NOM_MODULE||’ ’||A.NOTE) ;

end loop

END ;

Mise en œuvre de la replication synchrone

1)
CREATE SNAPSHOT etudiant_agadir REFRESH FAST
START WITH SYSDATE
NEXT SYSDATE+7 AS SELECT
CNE , CIN, NOM, PRENOM, DATE_NAISSANCE, ADDRESSE
FROM ETUDIANT@link_fpo ;
2)

CREATE OR REPLACE TRIGGER COPIER_ETUDIANT AFTER INSERT OR UPDATE


ON ETUDIANT

BEGIN
INSERT INTO ETUDIANT@LINK_PRESIDENCE VALUS

(16458 , ‘P1111’, ‘JACK’, ‘DUPLON’, 28/05/1990,


‘OUARZAZATE’(‘USER_PRESIDENCE’,’USER_OMAR’) ,’INSERT/UPDATE ON
ETUDIANT’) ;

 Trigger qui assure la Suppression d’un etudiant


CREATE OR REPLACE TRIGGER COPIER_ETUDIANT AFTER DELETE ON ETUDIANT
FOR EACH ROW
DECLARE

N INTEGER;

BEGIN
SELECT COUNT(*) INTO N FROM ETUDIANT;
DBMS_OUTPUT.PUT_LINE(‘nouveau nombre des etudiants est :’|| n ||'ETUDIANTS');
END;

Das könnte Ihnen auch gefallen