Contraintes de l'héritage par référence avec classe mère abstraite

Méthode

Si la classe mère est abstraite, il faut ajouter la contrainte que tous les tuples de R1 sont référencés par un tuple de R2 et/ou de R3.

Héritage (classe mère abstraite)

R1(#a,b)

R2(#a=>R1,c,d) avec c KEY

R3(#a=>R1,e,f) avec e KEY

Contraintes : PROJECTION(R1,a) = PROJECTION(R2,a) UNION PROJECTION(R2,a)

Exemple

Soit la classe A avec la clé K et les attributs A1 et A2. Soit la classe B, classe fille de A, comprenant la clé K' et les attributs B1 et B2. Le modèle relationnel correspondant selon cette transformation est :

1
A (#K, A1, A2)
2
B (#K=>A, K', B1, B2)
3

Cette solution est particulièrement adaptée lorsque la classe mère n'est pas abstraite, car cela en autorise l'instanciation sans aucun bruit dans la relation lié aux classes filles. Par contre si la classe mère est abstraite il faut introduire une contrainte dynamique complexe pour imposer la présence d'un tuple référençant dans une des classes filles.

Ainsi dans l'exemple précédent, un A peut être instancié en toute indépendance par rapport à la relation B.