Contraintes de l'héritage par la classe mère

MéthodeHéritage non complet

Si l'héritage n'est pas complet :

  • il faut vérifier la cohérence du type avec les attributs valués

  • il faudra gérer la non nullité « à la main »

Héritage presque complet (classe mère abstraite)

R1(#a,b,c,d,e,f,t:{2,3})

Contraintes :

  • t NOT NULL

  • NOT (t=2 AND f)

  • NOT (t=3 AND d)

  • t=2 AND d (si d est non nul)

  • t=3 AND f (si f est non nul)

MéthodeHéritage par la classe mère avec classe mère abstraite

Si la classe mère est abstraite :

  1. sa valeur est ôtée de l'attribut de discrimination ;

  2. une contrainte supplémentaire doit vérifier que soit c soit e est obligatoirement valué.

Héritage (classe mère abstraite)

R1(#a,b,c,d,e,f,t:{2,3})

Contraintes :

  • t NOT NULL

  • c UNIQUE

  • e UNIQUE

  • t=2 AND c

  • t=3 AND e

  • NOT (t=2 AND (e OR f)

  • NOT (t=3 AND (c OR d)