Super-héros relationnels I

[20 min]

La gamme de super-héros GARVEL veut réaliser la base de données de leurs figurines articulées. La société a fait réaliser un modèle UML qui doit servir de point de départ à la mise en œuvre.

Modèle UML Figurines GARVEL

Question

Transformer le modèle UML en modèle relationnel (justifier les passages non triviaux, en particulier la relation d'héritage).

Solution

1
Personnage (#designation:string, prix:float, identiteSecrete:string, genre:{superhéro, supervilain}, mentor=>Personnage(designation))
2
3
Vehicule (#designation:string, prix:float, nbPlaces:integer, type:{terrestre, volant, aquatique}, conducteur=>Personnage(designation)) WITH conducteur NOT NULL
4
5
Repaire (#designation:string, prix:float, emplacementGeographique:string, capacite:integer)
6
7
Membre (#proprietaire=>Personnage(designation), #nom:{tête, bras gauche, bras droit, torse, jambe gauche, jambe droite}, couleur:string)
8
9
Abrite (#repaire=>Repaire(designation), #personnage=>Personnage(designation)) 
10
11
Contrainte :  PROJ(Personnage.designation) IN PROJ(Membre.proprietaire)
RemarqueHéritage

L'héritage est exclusif, un personnage ne peut pas être un véhicule ou un repaire, et la classe mère est abstraite. Il s'agit donc de l'un des cas simples de transformation : héritage par les classes filles.

L'héritage est non complet, un héritage par la classe mère serait une erreur. L'héritage par référence est une mauvaise solution qui complexifie pour rien le modèle.

RemarqueClé candidate "identiteSecrete"

Nous pourrions décider que identiteSecrete est une clé candidate, bien que la diagramme UML ne le précise pas.

RemarqueVue vFigurine

La vue vFigurine est optionnelle, la classe mère étant abstraite.

vFigurine = Union ( Union (Projection(Personnage,designation,prix), (Projection(Vehicule,designation,prix)), Projection(Repaire,designation,prix))