Objektorientierte und relationale Welt

Technologiebrüche beseitigen

10.12.2001
Objektorientierte Programmiersprachen erfreuen sich großer Beliebtheit. Doch die Anbindung an relationale Datenbanken macht Probleme. von Thomas Weihrich*

Sollen objektorientiert modellierte Daten in klassischen relationalen Tabellen gespeichert werden, führt dies zum Bruch der Datenmodelle - im Fachjargon "Impedance Mismatch" genannt. Objekte auf Tabellen abzubilden ist äußerst komplex und ohne Informationsverlust kaum möglich. Dies zeigt sich nicht nur an hohen Designkosten, längerer Entwicklungszeit und damit späterer Markteinführung (Time to Market), sondern es betrifft auch die Qualitätssicherung sowie die Wartung und Änderbarkeit des Codes während des Betriebs. Um den Bruch zwischen den konzeptionellen Welten zu überwinden, bieten Datenbankhersteller verschiedene Lösungsansätze.

Im Kern besteht das Problem in der Schwierigkeit, objektorientierte Strukturen auf das Datenmodell relationaler Datenbank-Management-Systeme (RDBMS) abzubilden. Dies erfordert eine Anpassung der gekapselten und in Klassenhierarchien gegliederten Objekte an das Schema flacher Tabellen. C++-Programmierer kennen dieses Problem bereits seit längerem. Mit der

Objekt versus Tabelle

wachsenden Verbreitung von Java rückt der "Impedance Mismatch" nun zunehmend auch in das Interesse einer breiteren Entwicklergruppe.

Objektorientierte (OO-)Programmiersprachen wie C++, Visual Basic, Delphi oder Java stellen Sprachelemente bereit, die sich nicht nur hervorragend dazu eignen, Bedienungsoberflächen zu entwickeln, sondern auch dazu, logische Probleme anzugehen. Sprachelemente wie Kapselung, Polymorphismus und Vererbung sind inzwischen so beliebt, dass kaum ein Anwendungsentwickler auf sie verzichten möchte. Allerdings müssen auch OO-Anwendungsentwickler zur dauerhaften Sicherung ihrer Daten auf einen permanenten Speicher, oftmals ein Datenbanksystem, zugreifen. Er basiert zumeist auf einem relationalen, objektorientierten oder postrelationalen Modell.