© Éditions Eyrolles
237
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Classe-association plusieurs-à-un
Supposons qu’un serveur n’héberge qu’un seul logiciel et qu’un logiciel acheté par un département puisse être installé sur différents serveurs.
Diagramme UML
La classe-association Achat est liée à la classe Serveur par une association plusieurs-à-un.
Script SQL3
Utilisons la solution universelle pour traduire l’association Achat (en gras dans le script).
Privilégions l’accès aux données par les logiciels pour l’association d’installation par une
collection (collServ) de références (refServ). Cette collection est située dans le type père
(Achat) et permet de référencer le type fils (Serveur).
Figure 3-32 Classe-association
plusieurs-à-un
Serveur
nserv
typeserv
dateinst
0..1
0..*
Departement
codept
budget
Logiciel
nomlogi
prix
0..*
1..*
Achat
dateach
installation
Solution collection de pointeurs SQL3
Solution universelle SQL3
Tableau 3.31 Classe-association plusieurs-à-un SQL3
Schéma logique
Script SQL3 (Oracle)
Departement[codept, budget]
Achat[refDept, refLog, collServ{refServ},
datechat, dateinst]
Logiciel[nomlogi, prix]
Serveur[nserv, typeserv]
CREATE TYPE logiciel_type AS OBJECT
(nomlogi CHAR(20), prix NUMBER)
CREATE TYPE departement_type AS OBJECT
(codept CHAR(6), budget NUMBER)
CREATE TYPE serveur_type AS OBJECT
(nserv NUMBER, typeserv CHAR(20),
dateinst DATE)
CREATE TYPE elt_coll_serv AS OBJECT
(reServ REF serveur_type)
CREATE TYPE coll_serv_type AS TABLE OF
elt_coll_serv
CREATE TYPE achat_type AS OBJECT
(refDept REF departement_type,
refLog REF logiciel_type, dateach DATE,
collServ coll_serv_type)
Précédent

- 243/316

Suivant