Contraintes de l'héritage par référence
Méthode : Héritage exclusif (cas général)
Dans le cas général d'un héritage exclusif, il faut ajouter une contrainte pour que les même tuples ne se trouvent pas à la fois dans R2 et R3

R1(#a,b)
R2(#a=>R1,c,d) avec c KEY
R3(#a=>R1,e,f) avec e KEY
Contrainte : INTERSECTION (PROJECTION(R2,a), PROJECTION(R3,a)) = {}
Méthode : Héritage par référence avec classe mère abstraite
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 ou de R3.

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(R3,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 :
A (#K, A1, A2)
B (#K=>A, K', B1, B2)
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.