Database Reference
In-Depth Information
À titre d'exemple, les écritures suivantes décrivent la contrainte de partition (cas A) entre les
navigants et les commerciaux. La première règle, attachée à la classe Navigant , signiie
qu'un navigant ne peut pas être commercial. Notez l'utilisation de la fonction allInstances
qui retourne pour un type donné l'ensemble de ses instances, incluant aussi les instances de
ses sous-classes.
context Navigant inv Partition1 :
Commercial.allInstances.nup ® excludes(self.nup)
La deuxième, attachée à la classe Commercial signiie, d'une manière symétrique, qu'un
commercial ne peut pas être navigant.
context Commercial inv Partition2 :
Navigant.allInstances.nup->excludes(self.nup)
La troisième règle doit être attachée à la classe Personnel et signiie :
qu'un personnel est soit navigant, soit commercial (par le fait du ou exclusif). La fonction
oclIsKindOf permet de tester la nature de la classe d'un type ;
que le numéro est l'identiiant (fonction isUnique ).
context Personnel inv Partition3 :
( self.oclIsKindOf (Navigant) xor self.oclIsKindOf (Commercial))
and
(Personnel. allInstances .nup isUnique (c | c.nup))
Mise en pratique
Rendez-vous à l'exercice  1.10 « Les contraintes  » pour écrire formellement les expressions
OCL ain d'enrichir différents schémas.
Règles de validation
La notation UML ne propose aucun moyen de s'assurer de la cohérence d'un diagramme de
classes. Cela est particulièrement pénalisant pour les diagrammes qui visent à modéliser une
base de données. Les règles que vous devrez adopter s'inspirent des règles de validation et de
normalisation introduites avec les modèles entité-association et la méthode Merise. La plupart
de ces règles datent du milieu des années 1970. Ces règles sont majoritairement basées sur les
dépendances fonctionnelles.
Il est aisé de transposer ces règles à vos diagrammes de classes UML de manière à obtenir
automatiquement un schéma relationnel de qualité, en limitant les risques d'erreurs de modé-
lisation lourdes de conséquences au niveau de la base de données.
 
Search WWH ::




Custom Search