UML 2 pour les bases de données
234
© Éditions Eyrolles
Notez qu’il est nécessaire d’utiliser un artifice pour définir une collection de références vers le
type contenant la collection. Avec Oracle, la solution consiste à déclarer un type incomplet
(première instruction du script). Le type est ensuite redéfini plus loin. Pour régénérer ce
schéma, il faut utiliser la directive DROP TYPE… FORCE afin de supprimer un type faisant
référence à lui-même. Le script de destruction de la base est le suivant.
DROP TABLE Distance ;
DROP TABLE Aeroport ;
DROP TYPE distance_type ;
DROP TYPE collAero_type;
DROP TYPE aeroport_type;
DROP TYPE elt_collAero;
Classes-associations UML
Cette section décrit la traduction SQL3 des associations connectées à des classes-associations
UML. Pour chaque association, il faut utiliser une des solutions précédemment étudiées en
fonction de la nature de l’association (plusieurs-à-un, un-à-plusieurs, plusieurs-à-plusieurs).
Considérons pour chacun des cas un exemple. Nous utiliserons arbitrairement une des solutions
d’implantation SQL3, que nous avons énoncées précédemment, pour chaque association.
D’autres schémas sont possibles en employant d’autres solutions SQL3 de traduction pour
chaque association.
Schéma logique
Script SQL3 (Oracle)
CREATE TABLE Distance OF distance_type
(CONSTRAINT nn_refAero1 CHECK
(refAero1 IS NOT NULL),
CONSTRAINT fk_Aero1
refAero1 REFERENCES Aeroport,
CONSTRAINT nn_refAero2 CHECK
(refAero2 IS NOT NULL),
CONSTRAINT fk_Aero2
refAero2 REFERENCES Aeroport)
Tableau 3.29 Associations réflexives SQL3 (suite)
DROP TYPE aeroport_type
Précédent

- 240/316

Suivant