Databases Reference
In-Depth Information
Klassen zusammenfassen. Die Komplexität der Typen und ihrer Objekte darf nicht
begrenzt sein. Objekte haben einen Zustand und ein Verhalten. Der Zustand wird
durch Attribute, das Verhalten durch Methoden definiert. Es kann gleichnamige
Methoden mit unterschiedlichen Parameterlisten geben.
Vererbung und Polymorphie: Es muss muss möglich sein, Typen hierarchisch zu
strukturieren. Der Typ hat einen umso spezialisierteren Charakter, je tiefer er in
der Hierarchie angesiedelt ist; er erbt Eigenschaften und Verhalten seiner überge-
ordneten Typen. In Java finden wir etwa an der Spitze der Hierarchie den allge-
meinen Typ Object . Ein Typ wie Button befindet sich dabei sehr tief im Geäst
der API-Hierarchie. Methoden können in untergeordneten Typen überschrieben
werden. Die Polymorphie sorgt dafür, dass zur Laufzeit erkannt wird, zu welchem
Objekt eine bestimmte Methode gehört.
Kapselung: Die Attribute eines Objektes sind Implementierungsdetails und kön-
nen verborgen werden. Der Zugriff auf die Attribute erfolgt indirekt, etwa mit
Hilfe von Methoden. Bei Änderungen der Typdefinition können Attribute ent-
fernt oder ersetzt werden, ohne dass sich an der Anwendung des Typen etwas
ändert. Dieses Konzept ist mit der logischen Datenunabhängigkeit vergleichbar,
die wir in Kapitel 1 kennengelernt haben.
Objektidentität: Jedes Objekt hat eine eigene Identität. Mit dieser Identität kön-
nen wir für zwei Objekte feststellen, ob sie übereinstimmen. In Java wird die Iden-
tität beispielsweise mit dem == -Operator verglichen:
Object o1=new Object();
Object o1Same=o1;
System.out.println(o1Same==o1);
liefert true , weil o1 und o1Same das gleiche Objekt referenzieren; dagegen gibt
Object other=new Object();
System.out.println(other==o1);
den Wert false aus. Diese Eigenschaft von Objekten ist im Zusammenhang mit
Datenbanken umso bemerkenswerter, als sie uns von Primärschlüsseln befreit.
Wir können jedes Objekt anhand seiner Identität von allen anderen Objekten un-
terscheiden und müssen keine eigenen künstlichen Schlüssel definieren oder uns
gar auf die Suche nach natürlichen Schlüsseln machen.
Neben diesen aus der objektorientierten Entwicklung bekannten Eigenschaften
werden auch Eigenschaften eingefordert, wie wir sie bereits kennen. Es muss
möglich sein,
Daten zu persistieren und zu indizieren, ohne dass der Anwender die physi-
kalische Ebene des ODBMS kennen muss;
parallele Zugriffe zu synchronisieren und
 
Search WWH ::




Custom Search