© Éditions Eyrolles
239
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Script SQL3
Supposons que ne nous privilégions aucun accès aux données en utilisant la solution universelle pour traduire les deux classes-associations. Concernant Achat, nous obtenons deux références refLog et refDept avec l’attribut dateach (en surligné dans le script SQL3). Nous
traduisons Installation de la même manière. Il en résulte deux références refAchat et
refServ avec l’attribut dateinst (en gras dans le script).
Tableau 3.32 Classe-association plusieurs-à-plusieurs SQL3
Schéma logique
Script SQL3 (Oracle)
Departement[codept,budget]
Achat[refDept, refLog, datechat]
Logiciel[nomlogi, prix]
Installation[refServ, refAch, dateinst]
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))
CREATE TYPE achat_type AS OBJECT
(refDept REF departement_type,
refLog REF logiciel_type, dateach DATE)
CREATE TYPE installation_type AS OBJECT
(refServ REF serveur_type,
refAch REF achat_type, dateinst DATE)
CREATE TABLE Departement OF departement_type
(CONSTRAINT pk_dept PRIMARY KEY(codept))
CREATE TABLE Serveur OF serveur_type
(CONSTRAINT pk_serveur PRIMARY KEY(nserv))
CREATE TABLE Logiciel OF logiciel_type
(CONSTRAINT pk_log PRIMARY KEY(nomlogi))
CREATE TABLE Achat OF achat_type
(CONSTRAINT nn_refDept CHECK
(refDept IS NOT NULL),
CONSTRAINT fk_refDep
refDep REFERENCES Departement
CONSTRAINT nn_refLog CHECK
(refLog IS NOT NULL),
CONSTRAINT fk_refLog
refLog REFERENCES Logiciel)
CREATE TABLE Installation OF installation_type
(CONSTRAINT nn_refServ CHECK
(refServ IS NOT NULL),
CONSTRAINT fk_refServ
refServ REFERENCES Serveur,
CONSTRAINT nn_refAch CHECK
(refAch IS NOT NULL),
CONSTRAINT fk_refAch
refAch REFERENCES Achat)
Précédent

- 245/316

Suivant