Fuer jede Anwendung das geeignete Datenbanksystem

Produktive Koexistenz statt Entweder-Oder-Entscheidung

01.10.1993

Objektorientierte Datenbanken sind den relationalen Systemen in vielen Punkten ueberlegen. Je nach Anwendungsbereich haben jedoch bisweilen auch die RDBMS-Produkte die Nase vorn. Insofern werden die OODB-Systeme die relationalen Datenbanken nicht ersetzen, sondern ergaenzen.

Der Einsatz objektorientierter Datenbanken zeigt den naechsten Schritt bei der Weiterentwicklung von Datenbanken auf. Diese OODB- Systeme vereinen die Eigenschaften der Objektorien-tierung mit denen der relationalen Datenbanken. Was aber ist das Charakteristische an den objektorientierten Datenbanken?

Informationen ohne Verluste repraesentieren

Klassische Datenmodelle sind durchweg satzorientiert. So nehmen etwa im Relationenmodell die Felder atomare Werte vordefinierter Datentypen auf. Diese Felder koennen zu "flachen" Tupeln gereiht werden. Erst die Zusammenfassung von Tupeln fuehrt zu den Relationen, mit denen die Aspekte der Umwelt zu repraesentieren sind. Ein vorgegebener Satz von Operatoren (erzeugen, loeschen etc.) erlaubt den Umgang mit den Daten. Die verbliebene Freiheit gipfelt darin, Relationen mit mehr oder weniger Feldern zu bilden.

Komplexe Anwendungsbereiche wie CAD/CAM, Software-Engineering oder Multimedia fordern eine hohe Ausdrucksfaehigkeit des Datenmodells. Die Informationen sollen moeglichst ohne Verluste in einer Datenbank repraesentiert werden. Die Moeglichkeit, Beziehungen zwischen Relationen (Tabellen) zu knuepfen, wird durch das Verbinden (Join) von Relationen erreicht. Eine tiefergehende Beschreibung von Beziehungen zwischen Tabellen - beispielsweise: Gesamtteil besteht aus meheren Einzelteilen - ist in relationalen Datenbanken nur schwer zu fassen.

Ein weiteres Problem ergibt sich aus der Programmierschnittstelle fuer relationale Datenbanken. Eine betraechtliche Luecke (Impedance Mismatch) besteht zwischen den mengenorientierten Zugriffssprachen (zum Beispiel SQL) und den gaengigen prozeduralen Programmiersprachen der Anwendung. So muss der Anwender haeufig mit unterschiedlichen Datentypen und Verarbeitungsmodellen operieren. Auch bei weniger anspruchsvollen Projekten wird die Produktion von Software dadurch erschwert.

Objektorientierte Datenbanken (OODB) koennen Loesungen fuer diese Probleme bieten. Die Datenmodelle der Objektorien-tierung erlauben es, Struktur und Verhalten der Umweltobjekte nahezu eins zu eins in Datenbankobjekte umzusetzen.

Einerseits lehnen sich Datenbankentwurf und Datenmanipulation naeher an die Realitaet an, andererseits ist der Entwurf insgesamt weniger fehleranfaellig. Nicht jeder Anwendungsbereich ist mit einer Sammlung von Tabellen darstellbar. Das Anwendungsmodell setzt sich im wesentlichen aus Vererbungshierarchie und Dekomposition (Zerlegung) zusammen. Diese Modellierungsaspekte sind in Tabellen kaum oder nur mit Aufwand abzubilden.

Die Objektorientierung haelt Konzepte bereit, mit denen Beziehungen zwischen Objekten hergestellt werden koennen. Zum einen gibt es die "ist-ein"-Beziehung fuer die Vererbung. Zum anderen koennen benutzerdefinierte Beziehungen (beispielsweise "Teil-von") sowohl in der Entwurfsphase eingebracht als auch in der Implementierungsphase realisiert werden.

Darueber hinaus gestattet die Objektorientierung die Defini- tion von Objekten jeglicher Struktur und mannigfachen Verhaltens. Der Komplexitaet sind hier keine Grenzen gesetzt.

Durch die Moeglichkeit, beliebig komplexe Objekte zu bilden, eignet sich die Objektorien-tierung ausgezeichnet dazu, bestimmte Sachverhalte aus dem Anwendungsbereich - beispielsweise zeitvariable Daten wie Video und Sprache oder Ladeplanungen fuer Schiffe und Flugzeuge - direkt zu beschreiben. Relationale Datenbanken sind hingegen vor allem zur Verarbeitung grosser Datenmengen mit geringer Strukturierungstiefe geeignet, waehrend OODB-Systeme den Schwerpunkt auf geringe Datenmengen mit hoher Strukturkomplexitaet legen.

Zwei Entwicklungslinien beherrschen die objektorientierten Datenbanken: Zum einen werden von den konventionellen Datenbanken Funktionen wie Datenbankabfragen, Transaktionen, Sperren und Persistenz (Dauerhaftigkeit der Daten) uebernommen.

Zum anderen stellt die OODB-Technolgie neue Modellierungsaspekte bereit: Objektmodell, Vererbung, Kapselung, komplexe Objekte, neue Datentypen und Klassen. Ganz wichtig ist dabei die Moeglichkeit, beliebige Beziehungen zwischen Objekten zu definieren.

Auf einen Nenner gebracht, vereinen objektorientierte Datenbanken typische Funktionalitaeten der relationalen Datenbanken mit den Modellierungsaspekten der Objektorientierung. Eben aus dieser Tatsache bezieht die OODB-Technik ihren Anspruch, komplexe Anwendungsstrukturen besser behandeln zu koennen als die relationalen Datenbanken.

Relationale Datenbanken sind passiv. Sie speichern Daten, lassen jedoch spezifische Eigenschaften des Anwendungsprogramms ausser acht. Die Operationen der Datenbank werden im wesentlichen nur auf ausdrueckliche Anforderung hin ausgefuehrt; beispielsweise muessen Konsistenzkontrollen explizit angestossen werden. Ein starres, vorgeplantes Verhalten ist die Folge.

OODB-Systeme bilden aktive Datenbanken, die zu den bekannten Leistungen eigenstaendige Aktivitaeten entwickeln: Sie erkennen vorher definierte Konstellationen der Datenbank und antworten darauf mit adaequaten Reaktionen.

Daten, Zugriffsfunktionen und das Anwendungsprogramm sind jeweils in Objekten verpackt. Diese untrennbaren Komponenten sind aufeinander abgestimmt und deshalb in der Lage, datenbankinterne Zustaende zu erkennen und angemessen darauf zu reagieren. Die Ausrichtung der Zugriffsfunktionen auf die Struktur der Daten aeussert sich in der hohen Performance beim Zugriff. Eine konzeptuelle Trennung zwischen Anwendungsprogramm und Beschreibung der Datenstruktur gibt es bei einem OODB nicht.

In der konventionellen Software-Entwicklung sind die Entwurfsmodelle fuer Analyse, Design und Datenbankdefinition durchweg verschieden. Im Gegensatz dazu basiert die objektorientierte Technologie auf einem einheitlichen Vorgehen fuer alle Phasen des Entwurfs - von der Analyse ueber das Modelldesign bis zur Implementierung.

Durchgaengiges Modell vereinfacht Entwicklung

Die Vorgehensweise der objektorientierten Systementwicklung ist ebenfalls auf die Entwicklung von OODB-Systemen anwendbar. Ein durchgaengiges Modell vereinfacht die Entwicklung und verbessert die Kommunikation zwischen Auftraggebern, Analytikern und Implementierern.

Das primaere Ziel relationaler Datenbanken ist die Datenunabhaengigkeit. Daten werden getrennt von ihrer Verarbeitung durch Normalisierung in Form gebracht. Die Beschreibung der Strukturen durch Tabellen ist der eine Aspekt, deren Benutzung in der Anwendung der andere. Einen Schutz, Daten- strukturen nur mit gezielten Zugriffen zu bearbeiten, gibt es nicht.

Bei einem OODB liegt der Schwerpunkt in der Datenkapselung. Das bedeutet, Daten koennen nur durch vorgegebene Zugriffsfunktionen geaendert werden. Die Daten werden assoziiert mit ihren Objekten und Zugriffen. Wenn die Klassenbeschreibungen der Objekte einmal entworfen und getestet sind, bleiben sie in der Regel unangetastet. Deshalb weisen OODB-Systeme auf dem Niveau der Klassen nach Abschluss der Entwurfsphase eine hohe Stabilitaet auf.

Die Unterschiede zwischen den beiden Datenbanktheorien werden in der Tabelle auf Seite 46 zusammengefasst. Das "vollstaendige" OODB markiert das Ziel der Entwicklung. Allerdings ist ein OODB, das alle Kriterien voll und ganz erfuellt, heute kaum zu finden.

Vielen Produkten mangelt es an einer vollkommenen Unterstuetzung komplexer Objekte. Diese Systeme sind jedoch verhaltensmaessig objektorientiert; das heisst, sie lassen die Definition von neuen Klassen mit Zugriffsfunktionen sowie die damit verbundenen Konzepte wie Kapselung und Vererbung zu. Auf der anderen Seite existieren strukturell objektorientierte Datenbanken, die komplexe Objekte und Objekt-Cluster erlauben, aber nur eingeschraenkte Moeglichkeiten zur Definition neuer Klassen bieten.

Einsatz finden die OODB-Produkte vor allen in komplexen Anwendungsbereichen, in denen hohe Leistungsfaehigkeit gefragt ist. Besondere Eigenschaften dieser Datenbanksysteme kommen den Anforderungen entgegen: Zum einen werden die Beziehungen zwischen Objekten direkt durch "Soft Pointers" hergestellt, was die Datenbanken sehr schnell macht. Relationale Datenbanken muessen dagegen Joins ausfuehren. Auch optimierte Joins sind gewoehnlich langsamer als die Objekttraversierung.

Zum anderen erlauben zwar viele Datenbanken das gemeinsame Speichern von Daten, die aufeinander Bezug nehmen. Doch in relationalen Datenbanken koennen die notwendigen Daten ueber mehrere Tabellen verteilt sein, die dann auch gelesen und bereitgehalten werden muessen.

Bei einem OODB lassen sich die in Beziehung zueinander stehenden Objekte clustern, wodurch sie effizient manipulierbar sind. Zum dritten haben relationale Datenbanken Probleme mit Daten, die nicht in Tabellenform beschreibbar sind, also typischerweise mit zeitvariablen, beliebig grossen und linearen Datenketten wie bei Multimedia oder mit der Vielzahl von Datenstrukturen, die beispielsweise in einem CAD-System ueblich sind.

Das Speichermodell des OODB ist unbegrenzt, weil es auf benutzerdefinierten Klassen basiert und deshalb an die Gegebenheiten angepasst werden kann. Nachweislich unterstuetzen OODB-Systeme also die Speicherung dieser Art von Datenstrukturen besser als relationale Datenbanken.

Wie oben schon erwaehnt, sind die relationalen DBMS-Produkte den objektorientierten Systemen allerdings ueberlegen, wenn es um die Bearbeitung von grossen Datenmengen mit geringer Strukturierungstiefe geht. Eine einzige Datenbanktechnik kann also nicht alle Anwendungsbereiche gleich gut abdecken. Vielmehr muessen zunaechst die Anforderungen an die Anwendung analysiert werden.

Anhand dieser Analyse ist die geeignete Datenbank gemaess ihren jeweiligen Eigenschaften zu waehlen. Das OODB ersetzt die relationale Datenbank nicht, sondern ergaenzt sie in besonderen Anwendungsbereichen.

* Peter Boehm ist Berater und Trainer zum Themenbereich Objektorientierung und hat seinen Schreibtisch in Nuernberg.