J'ai étudié en cours la clause ASSERT qui permet d'introduire des contraintes qui mettent en jeu plusieurs relations. Est-ce existe Assert existe dans oracle , sinon comment faire pour la remplacer.
J'ai étudié en cours la clause ASSERT qui permet d'introduire des contraintes qui mettent en jeu plusieurs relations. Est-ce existe Assert existe dans oracle , sinon comment faire pour la remplacer.
Voici l'exemple :
create table etud_mod (
matricule char(9),
cod_mod char(6),
an_sco char (9),
note1 number(4,2) DEFAULT 0,
note2 number(4,2) DEFAULT 0,
note_syn number(4,2) ,
note_rat number(4,2),
note_tp number(4,2),
constraint mat_cod_pk primary key(matricule,cod_mod,an_sco),
foreign key (matricule,an_sco) references etud_sect(matricule,an_sco),
foreign key (cod_mod) references module(cod_mod),
constraint not_min_max check
(
note1 between 0 and 20 AND
note2 between 0 and 20 AND
note_rat between 0 and 20 AND
(note_tp is null or note_tp between 0 and 20) AND
(note_syn is null or note_syn between 0 and 20)
)
);
C'est la teble etud_mod classique, sauf que j'ai ajouté cette table pour plusiers raisons :
create table fil_mod (
--Les modules enseignés dans une filiere particulière
-- Remplis par l'administrateur
cod_filiere char(6),
cod_mod char(6),
an_ped number(1),
coef number(1) default 1,
constraint cstrnte_coef check (coef >= 1),
constraint fil_mod_pk primary key (cod_filiere,an_ped,cod_mod),
foreign key (cod_mod) references module,
foreign key (cod_filiere) references filiere
);
Elle contient les coéfficients des modules.
puis cette table
create table etud_sect (
--La filière et la section d'un étudiant remplis par l'administrateur
matricule char(9),
an_sco char(9),
cod_filiere char(6),
an_ped number(1),
libele_section char(1),
constraint etud_sect_pk PRIMARY KEY (matricule,an_sco),
foreign key (matricule) references etudiant,
foreign key (libele_section,cod_filiere,an_ped,an_sco) references section
);
Maintenant la contrainte est que lorsque j'insère dans ETUD_MOD je déduis avec le matricule de l'étudiant sa filière grace à ETUD_SECT. Et avec cette filière je vois dans FIL_MOD si le module inséré y figure, si c'est non donc le module n'est pas un module de la filière.
Est-ce possible d'implémenter cette contrainte avec ORACLE8i.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager