Databases Reference
In-Depth Information
In der objektorientierten Programmierung (im Gegensatz zu objektorientierten
Datenbanken) wird in der Regel nicht zwischen Klasse und Extent unterschieden,
da Objekte in Programmen erzeugt werden und über einen Bezeichner oder eine
Referenz auf sie zugegriffen werden kann. In objektorientierten Programmierspra-
chen mit automatischer Speicherverwaltung (sog. garbage collection ) werden nicht
erreichbare Objekte automatisch aus dem Speicher entfernt (z. B. bei Smalltalk und
Java). In Datenbanken wollen wir dagegen auch in Programmläufen auf Objekte
zugreifen, die in anderen Programmläufen erzeugt wurden. Daher benötigen wir
hier für viele Anwendungen Extents von Klassen, um alle Objekte einer Klasse
verarbeiten können.
Objekt-
klasse
Sub-
klasse
Objekt
Objekttyp
Subtyp
OODB-
Begriffe
Abbildung 9.3: Begriffe im Zusammenhang mit objektorientierten Datenbanken
9.1.6 Objektidentität und Gleichheit
Ein Objekt muss systemweit identifizierbar sein. Die Identität (OID) wird vom Sys-
tem selbst gepflegt. Sie ist nicht von der Schemadefinition abhängig - es muss kein
Attribut dafür definiert werden. Somit gibt es keine Wertzuweisungen, wie das bei
Schlüsselwerten im relationalen Datenmodell der Fall ist. Die Objektidentität ist
von allen Attributwerten unabhängig und kann durch keine Operation geändert
werden. Nach Löschen eines Objektes darf seine OID auch nicht an ein anderes
Objekt übergehen. Die Objektidentität ist nicht für Benutzer als Wert erkennbar, sie
ist ein rein systeminternes Merkmal.
Hier ist ein gravierender Unterschied zum relationalen Modell vorhanden, wel-
ches Bezüge auf der Basis von Werte-Gleichheit herstellt und nicht auf der Basis von
Objekt-Identität. Daher muss für Objekte der Begriff der Gleichheit von dem Begriff
der Identität unterschieden werden. Gleichheit beruht auf dem Vergleich der Attri-
 
Search WWH ::




Custom Search