Definition

Objektorientiertes Datenbankmanagementsystem (OODBMS)

Ein objektorientiertes Datenbankmanagementsystem (OODBMS) ist ein Datenbankmanagementsystem (DBMS), das die Modellierung und Erstellung von Daten als Objekte unterstützt. Dies beinhaltet eine Unterstützung für Objektklassen und die Vererbung von Klasseneigenschaften und -methoden an Unterklassen und deren Objekte.

Es gibt keinen allgemein anerkannten Standard dafür, was ein OODBMS ausmacht, obwohl die Object Data Management Group (ODMG) im Jahr 2001 den Object Data Standard ODMG 3.0 veröffentlichte, der ein Objektmodell sowie Standards für die Definition und Abfrage von Objekten beschreibt. Die Gruppe hat sich allerdings inzwischen aufgelöst.

Derzeit sind NoSQL-Dokumentendatenbanksysteme eine beliebte Alternative zur Objektdatenbank. Obwohl sie nicht über alle Funktionen eines echten ODBMS verfügen, bieten NoSQL-Dokumentendatenbanken einen schlüsselbasierten Zugriff auf halbstrukturierte Daten in Form von Dokumenten, in der Regel unter Verwendung der JavaScript Object Notation (JSON).

Merkmale eines ODBMS

In ihrem einflussreichen Paper The Object-Oriented Database Manifesto definieren Malcolm Atkinson und andere ein OODBMS wie folgt:

Ein objektorientiertes Datenbanksystem muss zwei Kriterien erfüllen: Es sollte ein DBMS sein, und es sollte ein objektorientiertes System sein, das heißt es sollte so weit wie möglich mit den aktuellen objektorientierten Programmiersprachen übereinstimmen.

Aus dem ersten Kriterium ergeben sich fünf Merkmale: Persistenz, Sekundärspeichermanagement, Parallelität, Wiederherstellung und eine Ad-hoc-Abfragefunktion.

Die zweite wird in acht Merkmale übersetzt: komplexe Objekte, Objektidentität, Kapselung, Typen oder Klassen, Vererbung, Überschreiben kombiniert mit später Bindung, Erweiterbarkeit und rechnerische Vollständigkeit.

RDBMS versus ODBMS

Relationale Datenbankmanagementsysteme (RDBMS) sind derzeit die am weitesten verbreitete Art von DBMS. Die relationale Abstraktion von Zeilen und Spalten, auf die mit der Structured Query Language (SQL) zugegriffen wird, ist den meisten IT-Fachleuten gut bekannt.

Im Gegensatz dazu sind Objektdatenbanksysteme besser für die Speicherung und Bearbeitung komplexer Datenbeziehungen geeignet. Für Anwendungen kann es schwieriger sein, auf Daten mit vielen Beziehungen zuzugreifen, die über mehrere Tabellen in einem RDBMS gespeichert sind, als auf die Daten als Objekt in einem ODBMS.

Außerdem verwenden viele Entwickler objektorientierte Programmiersprachen (OOP) wie Java, C++, Python und andere, um Anwendungen zu erstellen. Die Verwendung eines RDBMS zum Speichern und Abrufen von Objekten erfordert Konvertierungen zwischen komplexen Objekten und Zeilen aus mehreren relationalen Datenbanktabellen. ORM-Tools (Object-Relational Mapping) können diesen Aufwand vereinfachen, beseitigen aber nicht den Overhead des Mappings.

Der Vorteil von ODBMS beim Schreiben von Anwendungen nach dem OOP-Ansatz ist die Beseitigung von fehlerhaften Impedanzanpassungen, das heißt das Programm verwaltet und arbeitet mit Objekten anstelle von Datenzeilen, die zu einem Objekt kombiniert werden müssen.

Viele RDBMS-Anbieter haben ihre Angebote zu objektrelationalen Datenbankmanagementsystemen (ORDBMS) erweitert. Allerdings bietet die Überlagerung einiger objektorientierter Konzepte mit relationalen Datenbanken nicht den vollen Funktionsumfang eines ODBMS.

Diese Definition wurde zuletzt im Juli 2022 aktualisiert

Erfahren Sie mehr über Content Management

ComputerWeekly.de
Close