![]() ![]() |
Objektorientiert versus relational – Datenbanktheorie für Nicht-Informatiker
Während meiner Arbeit im Bereich des Dokumentenmanagement wurde ich oftmals mit den
Begriffen der relationalen und objektorientierten Speicherung von Daten in Datenbaken
konfrontiert. Schnell lernte ich, welcher Hersteller, welches Modell anwendet und dass
allgemein das relationale Modell weiter verbreitet ist, obwohl das objektorientierte
Modell für Dokumentenmanagement vorteilhafter wäre. Dann fragte mich mal ein Kunde, was
denn eigentlich der Unterschied sei – und so genau konnte ich ihm das leider auch nicht
erklären. Unzufrieden mit mir selbst habe ich mich also hingesetzt, Bücher gewälzt, im
Internet recherchiert und Entwickler und Datenbankspezialisten ausgefragt. ![]() Eine Tabelle verwaltet sämtlich Dokumententypen. Die andere Tabelle stellt den Vertrag von Herrn Müller dar. Die Tabellen referenzieren aufeinander, sodass das Datenbankmanagementsystem weiß, dass die Dokumentenypnr. 4 auf den Dokumententyp Vertrag hinweist. Damit das Datenbankmanagementsystem sieht, dass der Vertrag zu Herrn Müller gehört, bekommt Herr Müller von Anfang an eine Kundenummer, welche auch in der Tabelle des Vertrages auftaucht und beide Tabellen verbindet. ![]() Jetzt nehmen wir einmal an, Herr Erwin Müller heiratet Elke Fröhlich aus der Kornblumenstraße. Herr Müller ist ein fortschrittlicher Mensch und seinen Nachnamen konnte er eh noch nie so richtig leiden. Daher nimmt er den Namen seiner Frau an und zieht zu ihr. Selbstverständlich meldet er dies seiner Versicherung. In der Datenbank wird dann die erste Tabelle dementsprechend geändert. Kundennummer | Anrede | Vorname | Name | Straße | Ort 123 | Herr| Erwin |Fröhlich |Kornblumenstraße |Berlin Damit ändert sich aber in der Datenbank der gesamte Zusammenhang seiner Verträge. Laut Datenbank hat nun Herr Erwin Fröhlich sämtliche Verträge abgeschlossen und es ist auf den ersten Blick nicht zu erkennen, dass Herr Fröhlich damals noch Müller hieß. Wenn jetzt ein älterer Kollege sich an Herrn Müller erinnert und nach ihm in der Datenbank sucht, wird er Mühe haben, ihn zu finden. Soviel zu Systematik und ersten Problemen bei relationalen Datenbanken. Objektorientierte Datenbanken In einer objektorientierten Datenbank wird jeder Datensatz als ein Ganzes gespeichert. Herr Müller wird im ersten Schritt gespeichert als Kundennr. 123 Herr Erwin Müller Gartenstraße Berlin Der Unterschied zur relationalen Datenbank wird erst bei Abschluss der Versicherungspolice deutlich. Diese wird ebenfalls als ein Objekt gespeichert als Dokumententyp Vertrag Dokumtententypnr. 4 Versicherungspolice Kundennr. 123 Herr Erwin Müller Gartenstraße Berlin Herr Müller schließt im Laufe der Zeit viele Verträge ab und jeder wird als eigenständiges Objekt gespeichert. Wenn man dann nach den Verträgen von Herrn Müller sucht, durchsucht das Datenbankmanagementsystem alle Objekte der Datenbank nach solchen, welche die Ausprägungen "Vertrag" und "Herr Müller" beinhalten. Es ist also möglich, direkt den Suchbegriffen zu folgen, ohne Referenzierung auf vielfältige andere Tabellen. Dies steigert die Leistungsfähigkeit der Suche innerhalb der Datenbank. Gleichzeitig werden viele Informationen jedoch doppelt gespeichert – man spricht hier von redundanter Datenhaltung. Dies ist auch der Grund, weswegen objektorientierte Datenbanken lange Zeit wenig beachtet wurden – frühere Speichermedien wären bereits nach kurzer Zeit völlig überlastet gewesen. Heutzutage stellen Datenmengen in diesem Bereich seltenst eine Herausforderung dar. Jetzt heiratet Herr Erwin Müller, Elke Fröhlich aus der Kornblumenstraße. Herr Müller nimmt den Namen seiner Frau an und zieht zu ihr. Selbstverständlich meldet er dies seiner Versicherung. In der Datenbank wird ein Verweis von Herrn Erwin Müller auf Herrn Erwin Fröhlich hinterlegt. Die Datensätze werden hierdurch nicht geändert, ebenso wenig der Zusammenhang, in welchem sie gespeichert wurden. Wenn jetzt ein älterer Kollege sich an Herrn Müller erinnert und nach ihm in der Datenbank sucht, wird er ihn wie eh und je finden. Fazit Natürlich ist dies ein sehr vereinfachtes Beispiel. Aber es stellt zwei große Unterschiede beider Arten der Datenbankmodellierung dar: Zum einen ist die Suche in relationalen Datenbanken deutlich verstrickter als in objektorientierten Systemen. Ergebnis sind längere Suchzeiten. Meiner Meinung nach folgen hieraus auch weniger Möglichkeiten der Suche. In jedem Falle sind die verschiedensten Suchmöglichkeiten innerhalb einer objektorientierten Struktur deutlich einfacher zu gestalten. Zum anderen garantiert die objektorientierte Datenbank Unveränderlichkeit. Vor allem im Dokumentenmanagement ist dies ein nicht zu vernachlässigender Faktor. Selbstverständlich werden die Dokumente selbst auch in der relationalen Datenbank nicht verändert – nur der Zusammenhang, in welchem sie gespeichert sind. Doch reicht dies oftmals aus, um verwirrende Suchergebnisse zu liefern. Es gibt noch viele andere Unterschiede zwischen beiden Datenbanken. So gehen heute fast sämtliche Programmiersprachen (Delphi, C++, Perl, Java) objektorientiert vor. Daher wird vor allem Software meist mit objektorientierten Programmiersprachen entwickelt. Diese objektorientierten Objekte in relationalen Datenbanken zu speichern oder sie damit zu verbinden ist selbstredend deutlich aufwendiger, als wenn beide Systeme einer Modellierung folgen. Der relationale Ansatz ist für die Datenhaltung einfacher, stringenter Informationen mit wenigen Querverweisen zwischen den Datensätzen die beste Lösung. Doch gerade die umfangreichen Verknüpfungen zwischen Dokumenten, Personen, Unternehmen, etc. in Dokumentenmanagementsystemen sind innerhalb einer objektorientierten Datenbank deutlich besser abzubilden. So kann man in objektorientierten Datenbanken besser Strukturen abbilden (Unternehmen/Bereich/Abteilung) und die Datenbanken sind generell leistungsfähiger. Dennoch beherrschen relationale Datenbanken den Markt im Dokumentenmanagement und es steht in den Sternen, ob sich dies jemals ändern wird. Aber in jedem Fall kennen wir jetzt den Unterschied zwischen beiden Modellierungen ein wenig besser… 02/2007, Pia Heine
| ![]() ![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© 1999-2010 FEiG & PARTNER | Nutzungsbedingungen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | ||
![]() |