prev up next


Vererbung


Schematische Darstellung einer abstrakten Typhierarchie

Das in Kapitel 2 eingeführte Konzept der Generalisierung bzw. Spezialisierung läßt sich bei objektorientierten Datenbanksystemen mit Hilfe der Vererbung lösen. Hierbei erbt der Untertyp nicht nur die Struktur, sondern auch das Verhalten des Obertyps. Außerdem sind Instanzen des Untertyps überall dort einsetzbar (substituierbar), wo Instanzen des Obertyps erforderlich sind.

Abbildung 15.7 zeigt eine Typhierarchie, bei der die Untertypen Typ2 und Typ3 jeweils ein weiteres Attribut, nämlich B bzw. C aufweisen. Operationen sind hier gänzlich außer Acht gelassen. Instanzen des Typs Typ3 gehören auch zur Extension von Typ Typ2 und von Typ Typ1.


Darstellung der Subtypisierung


Abstrakte Typhierachie bei einfacher Vererbung

Abbildung 15.8 zeigt die geschachtelte Anordung der drei Extensionen der Typen Typ1, Typ2 und Typ3. Durch die unterschiedliche Kästchengröße soll angedeutet werden, daß Untertyp-Instanzen mehr Eigenschaften haben und daher mehr wissen als die direkten Instanzen eines Obertyps.

Man unterscheidet zwei unterschiedliche Arten der Vererbung:

Abbildung 15.9 zeigt eine abstrakte Typhierarchie mit Einfachvererbung. Der Vorteil der Einfachvererbung gegenüber der Mehrfachvererbung besteht darin, daß es für jeden Typ einen eindeutigen Pfad zur Wurzel der Typhierarchie (hier: ANY) gibt. Ein derartiger Super-Obertyp findet sich in vielen Objektmodellen, manchmal wird er object genannt, in der ODMG C++-Einbindung heißt er d_Object.


prev up next