Database Reference
In-Depth Information
Schéma relationnel ( suite )
Script SQL ( suite )
CREATE TABLE diriger (
num_proj VARCHAR2(6) NOT NULL,
id_coll VARCHAR2(5) NOT NULL ,
CONSTRAINT pk_diriger
PRIMARY KEY (num_proj),
CONSTRAINT AK_DIRIGER UNIQUE (id_coll));
ALTER TABLE affecter
ADD CONSTRAINT fk_affecter_collabor
FOREIGN KEY (id_coll)
REFERENCES collaborateur (id_coll);
ALTER TABLE affecter
ADD CONSTRAINT fk_affecter_projet
FOREIGN KEY (num_proj)
REFERENCES projet (num_proj);
ALTER TABLE diriger
ADD CONSTRAINT fk_diriger_collabor
FOREIGN KEY (id_coll)
REFERENCES collaborateur (id_coll);
ALTER TABLE diriger
ADD CONSTRAINT fk_diriger_projet
FOREIGN KEY (num_proj)
REFERENCES projet (num_proj);
La contrainte NOT NULL sur la colonne id_coll dans la table diriger signiie que tout
projet est dirigé par un collaborateur (multiplicité minimale  1). La contrainte UNIQUE sur
cette même colonne implémente le fait qu'un collaborateur ne peut diriger plusieurs projets
(multiplicité maximale 1).
L'absence de contrainte NOT NULL sur la colonne num_proj dans la table affecter signiie
qu'un collaborateur ne peut participer à aucun projet (multiplicité minimale 0). La contrainte
UNIQUE (du fait de la clé primaire) sur la colonne id_coll de cette même table implémente le
fait qu'un collaborateur ne peut participer à plusieurs projets (multiplicité maximale 1).
Cette. solution. présente. l'avantage. d'être. la. plus. évolutive. si. les. multiplicités. viennent. à.
changer..En.effet,.nul.besoin.de.modifier.la.structure.d'une.table,.seules.des.contraintes.seront.
à.activer.ou.à.désactiver.
Mise en pratique
Les exercices 3.1 « La création de tables (carte d'embarquement) » et 3.2 « La création de tables
(horaires de bus)  » vous proposent de déduire le script SQL à partir de différents modèles
conceptuels.
 
Search WWH ::




Custom Search