Objektorientierte und relationale Welt

Technologiebrüche beseitigen

10.12.2001

2. Einsatz von Mapping-Tools zur Abbildung von Objekten auf relationale Datenbanken: Zur Abbildung von Klassen auf die Tabellen eines RDBMS bieten Hersteller zahlreiche so genannte Mapping-Tools an. Die darin enthaltenen Komponenten setzen eine Zwischenspeicherung (Caching) der Operationen ein, um den Datendurchsatz zu erhöhen, die Integrität der Datenbankoperationen sicherzustellen, eindeutige IDs zu generieren oder Bindings (Java Beans, COM-Objekte) für den Einsatz der zugehörigen Programmiersprache bereitzustellen. Zwar

Unterschiedliche Ansätze

sind derartige Tools recht effektiv, wenn es darum geht, ein relationales Schema für eine OO-Anwendung zu entwickeln. Nimmt die Komplexität der zu lösenden Probleme jedoch zu, landet die Verantwortlichkeit wieder in den Händen des Entwicklers. Dies gilt dann, wenn eine Klasse auf mehrere Tabellen oder mehrere Klassen auf eine Tabelle abzubilden sind.

3. Einführung einer objektorientierten Datenbank: Eine weitere Möglichkeit, den Bruch zu überwinden, besteht darin, auf eine rein objektorientierte Datenbank zurückzugreifen. Allerdings ist der Marktanteil dieser Datenbanken eher gering. Andererseits müssen RDBMS und OODBMS synchronisiert, das heißt Transaktionen in der RDBMS auch in der OODBMS sichtbar und verfügbar sein. Abgesehen davon bieten objektorientierte Datenbanken im Allgemeinen nur einzelne Bindings, etwa für C++, Smalltalk oder Java.

4. Einführung einer postrelationalen Datenbank: Postrelationale Datenbanken basieren auf assoziativen Arrays, die sich zugleich und ohne zusätzliche Mapping-Tools oder Caching-Schichten sowohl auf Objektmodelle als auch auf relationale Modelle projizieren lassen. Über Befehle, welche die assoziativen Arrays manipulieren, sind Persistenzmethoden in der Datenbank selbst implementiert und stehen dem Entwickler somit direkt zur Verfügung. Zugleich stellen die Datenbank-Engines eine relationale Ansicht derselben Daten bereit.

Die Implementierung zum Beispiel von Insert oder anderen SQL-Befehlen stützt sich auf dieselben Datenbank-eigenen Befehle, wie sie auch die objektorientierten Persistenzmethoden verwenden. Da multidimensionale Datenbank-Engines unabhängig von der Darstellung direkten und gleichzeitigen Zugriff auf die Daten ermöglichen, verringern sie die oben erwähnten Probleme der ID-Erzeugung,