Definition „Objektorientierte Datenbank“ Was ist eine Objektdatenbank?

Von chrissikraus

Eine objektorientierte Datenbank verwaltet Daten in Form von Objekten. Auf diese Weise werden zusammengehörige Informationen bereits beim Ablegen in die Datenbank logisch gekapselt gruppiert.

Die Entitäten einer Objektdatenbank lassen sich inklusive ihrer Attribute, Methoden, Beziehungen zu anderen Objekten und Informationen über Vererbung speichern.
Die Entitäten einer Objektdatenbank lassen sich inklusive ihrer Attribute, Methoden, Beziehungen zu anderen Objekten und Informationen über Vererbung speichern.
(Bild: canjoena - stock.adobe.com)

Die objektorientierte Datenbank oder Objektdatenbank ist ein Konzept, das an das Programmierparadigma der objektorientierten Programmierung und allgemeiner an das Prinzip der Objektorientierung angelehnt ist. Die Objektorientierung zerlegt komplexe Sachverhalte in einzelne Objekte und deren Zusammenspiel. Ein Objekt ist dabei eine konkrete Instanz einer abstrakten Vorlage (Klasse).

Erste objektorientierte Datenbankmodelle entstanden in den 1980er Jahren und folgten dem Trend hin zu objektorientierten Programmiersprachen wie C++. Obwohl sie viele nützliche Aspekte bieten, kommen Objektdatenbanken eher selten zum Einsatz – vor allem im Vergleich mit der deutlich weiter verbreiteten Technologie der relationalen Datenbanken.

Relationale Datenbank vs. objektorientierte Datenbank

Relationale Datenbanken gehören für die meisten Entwickler zum Alltag. Hier werden Informationen grob gruppiert, z. B. nach Kategorien. Aus diesen Kategorien entstehen dann Tabellen. Eine Tabelle enthält Zeile für Zeile alle Datensätze, die sich der entsprechenden Kategorie zuordnen lassen, z. B. alle Kunden, alle Bestellungen oder alle Produkte.

Die Tabellen lassen sich untereinander verknüpfen, z. B. indem jede Bestellung Verweise auf den bestellenden Kunden und auf die bestellten Produkte enthält. So kann das komplexe Zusammenspiel der einzelnen Datensätze abgebildet werden. Möchte ein Programmierer die Objekte aus seinem Programm in dieser Art von Datenbank speichern, muss er einen Zwischenschritt gehen.

Die Informationen aus der Software müssen für das jeweilige Datenbankschema aufgeschlüsselt werden. Man spricht dabei von objektrelationaler Abbildung oder Object-Relational Mapping (ORM). Umgekehrt müssen die Informationen beim Abruf aus der Datenbank ebenso auf die im Programmcode vorliegenden Strukturen aufgeschlüsselt werden, damit sie korrekt verwendet werden können.

Die Objektdatenbank hingegen ist explizit darauf ausgelegt, dass Entwickler die Zusammenhänge aus ihrer Software gebündelt in der Datenbank abbilden können. Ein Objekt lässt sich mit allen relevanten Attributen speichern. So sind alle Informationen unmittelbar verfügbar und müssen nicht erst aus verschiedenen Tabellen rekonstruiert werden.

Ein wesentlicher Unterschied ist, dass objektorientierte Datenbanken nicht nur Attribute, sondern auch Methoden, Beziehungen zwischen Objekten und Informationen über Vererbung mit abspeichern können. Jedes individuelle Objekt wird mit einer eigenen, einzigartigen ID abgelegt. Wird das Objekt über diese ID aus der Objektdatenbank abgerufen, stehen sofort alle Attribute, Methoden, Beziehungen und Informationen zu übergeordneten Klassen zur Verfügung.

Vorteile objektorientierter Datenbanken

Der große Vorteil an Objektdatenbanken ist, dass sie auch hoch komplexe Sachverhalte schnell und sauber in gekapselter Form ablegen und wiedergeben können. Informationen müssen nicht erst nach einem vorgegebenen Datenbankschema neu strukturiert werden (z. B. in Tabellen), sondern können so genutzt werden, wie sie auch im Programmcode vorkommen.

Zudem verwenden objektorientierte Datenbanken die gleichen Prinzipien, die Entwickler bereits aus objektorientierten Programmiersprachen kennen, und eignen sich damit hervorragend für die gemeinsame Verwendung.

Nachteile objektorientierter Datenbanken

Objektdatenbanken sind nicht sonderlich weit verbreitet, obwohl die Technologie bereits in den Achtzigern entwickelt wurde. Infolgedessen gibt es nur wenige Datenbankmanagementsysteme für Objektdatenbanken, während man vor allem bei relationalen Datenbanken viele Optionen hat. Auch ist die Community um objektorientierte Datenbanken relativ klein.

Das bedeutet einerseits, dass man bei Fragen und Problemen nicht immer so einfach Hinweise zur Lösung finden kann. Andererseits ist insgesamt weniger Interesse und Manpower vorhanden, um die Entwicklung des Datenbankmodells in der Geschwindigkeit und in die Richtung(en) voranzutreiben, die für moderne Szenarien attraktiv wären.

Zudem kann es in bestimmten Situationen dazu kommen, dass die Performance der Datenbank vergleichsweise schwach ist. Das kann z. B. passieren, wenn wenig komplexe Abfragen mit den hoch komplexen Strukturen der Objektdatenbank kollidieren. Wenn Geschwindigkeit eine große Rolle spielt und zugleich häufig simple Abfragen stattfinden müssen, kann die objektorientierte Datenbank zum Hindernis werden.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

(ID:47824913)