Database Reference
In-Depth Information
La contrainte
NOT NULL
sur une colonne clé étrangère traduit une multiplicité minimale à 1
d'une association
un-à-plusieurs
(ici la colonne
id_ville
dans la table
Aeroport
).
Traduction des associations un-à-un
Le tableau suivant décrit la transformation de deux associations binaires entre les relations
Projet
et
Collaborateur
.
L'association d'affectation (de nom
affecter
au niveau conceptuel) est de type de
un-à-
plusieurs
et doit se traduire comme précédemment. L'association qui modélise le fait qu'un
projet soit dirigé par un seul collaborateur qui ne peut en diriger plusieurs (de nom
diriger
au niveau conceptuel) est de type
un-à-un
et doit se traduire par une clé étrangère et par une
contrainte d'unicité (index unique). Cette clé étrangère (ici,
id_coll
) doit être présente dans
la relation considérée comme
enfant
pour l'association
un-à-un
(multiplicité minimale à 0),
ici
Projet
.
Tableau 3-3 : Transformation d'une association un-à-plusieurs et d'une association un-à-un
Schéma relationnel
Script SQL
DROP INDEX diriger_fk ;
ALTER TABLE collaborateur
DROP CONSTRAINT fk_affecter_projet;
ALTER TABLE projet
DROP CONSTRAINT fk_diriger_collabor;
DROP TABLE collaborateur CASCADE CONSTRAINTS;
DROP TABLE projet CASCADE CONSTRAINTS;
CREATE TABLE collaborateur (
id_coll VARCHAR2(5) NOT NULL,
num_proj VARCHAR2(6),
nom_coll VARCHAR2(50),
indice INTEGER,
CONSTRAINT pk_collaborateur
PRIMARY KEY (id_coll));
CREATE TABLE projet (
num_proj VARCHAR2(6) NOT NULL,
id_coll
VARCHAR2(5) NOT NULL,
duree INTEGER,
budget NUMBER(9,2),
designation_proj VARCHAR2(60),
CONSTRAINT pk_projet
PRIMARY KEY (num_proj));
Figure 3-4
. Association un-à-un « diriger » à traduire