Objektorientierte Datenbank

Objektorientierte Datenbanken werden oft auch als Objektdatenbanken bezeichnet. Die objektorientierten Datenbanken sind analog dem Paradigma der objektorientierten Programmiersprachen entworfen worden. Das Ziel der Entwicklung war die Schaffung eines Datenbanksystems, in welchem Objekte der Umwelt mit ihrem Verhalten und ihren Eigenschaften nachgebildet und in einer Datenbank gespeichert und verwaltet werden können.


Die Entwicklung von objektorientierten Datenbanken begann bereits Mitte der 80er Jahre. Als Beispiele dafür stehen die Datenbank ORION (von Microelectronics and Computer Technology Corporation, Texas) und von Hewlett Packard die Datenbank IRIS. Für die Schaffung einer standardisierten Basis wurde später für Anbieter und Anwender ein Consortium gebildet - die Object Database Management Group (ODMG).

Standardisierung der OODB

Der Standardisierungsvorschlag der ODMG bemüht sich um ein einheitliches Modell für objektorientierte Datenbanken und umfasst ein Objektmodell, eine Objektdefinitionssprache, der Object Definition Language (ODL), eine Objektabfragesprache, Object Query Language (OQL) sowie Sprachanbindungen an C++ und Smalltalk.

Das Objektmodell definiert als zentralen Baustein das Objekt, das mit einer Objektidentität ausgestattet ist. Jedes Objekt der Datenbank enthält Informationen ( Attribute), Verweise (Beziehungen, Relationships) auf andere Objekte und Operationen ( Methoden), die das Verhalten der Objekte widerspiegeln. Methoden werden durch ihre Signatur beschrieben, die aus dem Namen der Methode, den Namen und Typen der Eingabeparameter und dem Rückgabewert bestehen. Dieser Zusammenfassung von Daten und Methoden über diese Daten wird auch als Kapselung bezeichnet. Die Definition der Objekte (Daten, Verweise, Methoden) erfolgt über sogenannte Klassen. Durch die freie Beschreibung von Objektklassen lassen sich selbst komplexeste Datenstrukturen in einer Datenbank verwalten, was in den flachen Tabellen relationaler Datenbanksysteme nur über mehrere in Beziehung stehende Tabellen möglich ist.

Datenbankschemen der OODB

Die Beschreibung der Typen des Datenbankschemas ist Aufgabe der Object Definition Language (ODL). Schnittstellen und Klassen werden für diese Typen festgelegt. Neben der Datenkapselung und Methoden sind weitere objektorientierte Konzepte in objektorientierte Datenbanken implementiert, wie z.B. die Vererbung, die Überladung von Methoden und dynamische Bindungen. Zusätzlich stehen in objektorientierten Datenbanken Möglichkeiten für die Entwicklungen komplexerer Anwendungen als in klassischen Datenbankmodellen zur Verfügung. Beispielhaft seien hier insbesondere die Verwendung komplexer Datentypen ( Arrays, Klassentypen, Tupel, Mengen) oder das Überschreiben einer Methodenimplementierung durch eine andere Implementierung. Viele objektorientierte Datenbanksysteme bieten allerdings auch eine Reihe von generischen Operationen - das sind vordefinierte Operationen, die nicht einer einzelnen Klasse oder einem Objekt explizit zugeordnet sind. Bei generischen Operationen wird dann zwischen relationalen, objekterhaltenden und objektgenerierenden Operationen unterschieden.

Ähnlich der Structured Query Language (SQL) und erweitert um zusätzliche Features für komplexe Objekte, Operationen, Vererbung und Beziehungen ist die Syntax der Object Query Language (OQL) definiert. Der Grundaufbau einer Abfrage ist wie bei SQL:

SELECT ... FROM ... WHERE;

Zusätzlich kann man neben diesem SFW-Block noch andere Anfrageblöcke benutzen.

Ein Vergleich der objektorientierten mit den relationalen Datenbank zeigt, dass die Suche in relationalen Datenbanken deutlich aufwändiger verbunden mit längeren Suchzeiten ist. Dagegen sind die Möglichkeiten der Suche innerhalb einer objektorientierten Struktur deutlich einfacher zu gestalten.

Zum anderen ist da der Gesichtspunkt der "Unveränderlichbarkeit" bei Verwendung objektorientierter Datenbanken, was in Zusammenhang mit dem Management von Dokumenten ein nicht zu vernachlässigender Faktor ist. Auch bei relationalen Datenbanken werden Dokumente selbstverständlich nicht verändert, nur der Zusammenhang, in welchem sie gespeichert sind. Das führt in manchen Fällen zu verwirrenden Suchergebnissen.

Konzeptionelle Unterschiede

Es gibt noch viele andere Unterschiede zwischen den Konzepten dieser beiden Datenbanken. Zudem wird Software heute meist mit objektorientierten Programmiersprachen entwickelt. Diese objektorientierten Objekte in relationalen Datenbanken zu speichern oder sie damit zu verbinden ist deutlich aufwendiger, als wenn beide Systeme einer Modellierung folgen.

Einfache stringente Informationen mit wenigen Querverweisen unterstützen das relationale Konzept der Datenhaltung. Bei komplexen Verknüpfungen zwischen Dokumenten, Bildern, Personen, Unternehmen u.v.a. sind deren Informationen innerhalb der leistungsfähigeren, objektorientierten Strukturen deutlich besser abzubilden.

Die verfügbaren objektorientierten Datenbanksysteme bieten eine Vielzahl an Konzepten, die eine realitätsnahe Modellierung vieler Anwendungen ermöglichen. Dabei werden die Einbindung beispielsweise in Java oder C++-Applikationen, Höchstverfügbarkeit, eine hervorragende Performance und eine hohe Zahl paralleler Zugriffe unterstützt. Daneben werden vielfach Integrationen mit gängigen Entwicklungsumgebungen wie Eclipse und Datenbankstandards wie Java Database Connectivity (JDBC), Open Database Connectivity (ODBC) sowie das Framework Java Data Objects (JDO) mit objektorientierten Datenbanksystemen verknüpft.

Beispiel für objektorientierte Datenbanken sind:

  • db40, ein objektorientiertes Datenbanksystem für .Net und Java.
  • Objectivity/DB, eine objektorientierte Datenbank von Objectivity.
  • ObjectStore - objektorientierte Datenbank von Progress.
  • JDataStore, eine Java Datenbank von Borland.
  • O2, eine objektorientierte Datenbank von O2 Technology.
  • SmallSQL, ein komplett in Java geschriebenes Datenbanksystem.
  • Zope Objekt Database.

Informationen zum Artikel
Deutsch: Objektorientierte Datenbank
Englisch: object oriented database - OODB
Veröffentlicht: 27.10.2013
Wörter: 760
Tags: #Datenbanken
Links: .NET, Analog, Array, Attribut, Bild