UML 2 pour les bases de données
214
© Éditions Eyrolles
Script SQL2
En appliquant la règle R1, on obtient les relations Departement, Logiciel et Serveur.
En appliquant la règle R3, on obtient la relation Achat. La règle R2 traduit l’association
Installation en faisant migrer dans la relation fils (ici Serveur) l’identifiant de la relation père (le couple codept,nomlogi de l’agrégat Achat). Nous indiquons en gras cette
migration dans le script SQL2 du tableau 3.20.
Associations d’agrégation plusieurs-à-plusieurs
Un serveur héberge plusieurs logiciels achetés. Un logiciel pouvant être installé sur différents
serveurs.
Tableau 3.20 Association d’agrégation plusieurs-à-un
Schéma logique
Script SQL2 (Oracle)
Logiciel[nomlogi, prix]
Departement[codept, budget]
Achat[codept#, nomlogi#, dateach]
Serveur[nserv, typeserv,
dateinst, (codept, nomlogi)# ]
CREATE TABLE logiciel
(nomlogi
VARCHAR(20), prix NUMBER,
CONSTRAINT pk_logiciel PRIMARY KEY(nomlogi))
CREATE TABLE departement
(codept
VARCHAR(6), budget NUMBER,
CONSTRAINT pk_departement PRIMARY KEY(codept))
CREATE TABLE achat
(codept
VARCHAR(6), nomlogi VARCHAR(20),
dateach
DATE,
CONSTRAINT pk_achat PRIMARY KEY
(codept,nomlogi),
CONSTRAINT fk_achat_codept_departement
FOREIGN KEY(codept)
REFERENCES departement(codept),
CONSTRAINT fk_achat_nomlogi_logiciel
FOREIGN KEY(nomlogi)
REFERENCES logiciel(nomlogi));
CREATE TABLE serveur
(nserv NUMBER, typeserv VARCHAR(20),
dateinst DATE, codept VARCHAR(6),
nomlogi VARCHAR(20),
CONSTRAINT pk_serveur PRIMARY KEY(nserv),
CONSTRAINT fk_serveur_achat
FOREIGN KEY(codept,nomlogi)
REFERENCES achat(codept,nomlogi))
214
© Éditions Eyrolles
Script SQL2
En appliquant la règle R1, on obtient les relations Departement, Logiciel et Serveur.
En appliquant la règle R3, on obtient la relation Achat. La règle R2 traduit l’association
Installation en faisant migrer dans la relation fils (ici Serveur) l’identifiant de la relation père (le couple codept,nomlogi de l’agrégat Achat). Nous indiquons en gras cette
migration dans le script SQL2 du tableau 3.20.
Associations d’agrégation plusieurs-à-plusieurs
Un serveur héberge plusieurs logiciels achetés. Un logiciel pouvant être installé sur différents
serveurs.
Tableau 3.20 Association d’agrégation plusieurs-à-un
Schéma logique
Script SQL2 (Oracle)
Logiciel[nomlogi, prix]
Departement[codept, budget]
Achat[codept#, nomlogi#, dateach]
Serveur[nserv, typeserv,
dateinst, (codept, nomlogi)# ]
CREATE TABLE logiciel
(nomlogi
VARCHAR(20), prix NUMBER,
CONSTRAINT pk_logiciel PRIMARY KEY(nomlogi))
CREATE TABLE departement
(codept
VARCHAR(6), budget NUMBER,
CONSTRAINT pk_departement PRIMARY KEY(codept))
CREATE TABLE achat
(codept
VARCHAR(6), nomlogi VARCHAR(20),
dateach
DATE,
CONSTRAINT pk_achat PRIMARY KEY
(codept,nomlogi),
CONSTRAINT fk_achat_codept_departement
FOREIGN KEY(codept)
REFERENCES departement(codept),
CONSTRAINT fk_achat_nomlogi_logiciel
FOREIGN KEY(nomlogi)
REFERENCES logiciel(nomlogi));
CREATE TABLE serveur
(nserv NUMBER, typeserv VARCHAR(20),
dateinst DATE, codept VARCHAR(6),
nomlogi VARCHAR(20),
CONSTRAINT pk_serveur PRIMARY KEY(nserv),
CONSTRAINT fk_serveur_achat
FOREIGN KEY(codept,nomlogi)
REFERENCES achat(codept,nomlogi))
