Contraintes de l'héritage par les classes filles avec classe mère non abstraite
Méthode :
Si la classe mère n'est pas abstraite :
On créé une relation supplémentaire pour gérer les objets de la classe mère
On ajoute une contrainte qui exprime que les tuples de la classe mère ne peuvent exister dans les classes filles
R1(#a,b)
R2(#a,b,c,d) avec c KEY
R3(#a,b,e,f) avec e KEY
Contrainte : PROJECTION(R1,a) INTERSECTION (PROJECTION(R2,a) UNION PROJECTION(R3,a)) = {}
Exemple : Héritage absorbé par les classes filles
Soit la classe abstraite A avec la clé K et les attributs A1 et A2. Soit la classe B, classe fille de A avec les attributs B1 et B2. Soit la classe C, classe fille de A avec les attributs C1 et C2.
Le modèle relationnel correspondant selon cette transformation est :
B (#K, A1, A2, B1, B2)
C (#K, A1, A2, C1, C2)
Si A n'avait pas été abstraite elle aurait donné naissance à une relation A possédant les attributs A1 et A2 et qui n'aurait alors contenu que les tuples qui ne sont ni des B ni des C.