Laden...

Objekt-Datenbank

Erstellt von thepaul vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.178 Views
T
thepaul Themenstarter:in
151 Beiträge seit 2005
vor 17 Jahren
Objekt-Datenbank

Hi,

ich habe gestern was von der Objektdatenbank db4o (http://db4o.com/) gelsen und das gleich mal ausprobiert.
Das ganze ist total simpel: ZUm speichern schreibt man einfach DB.Set(Object);

Auslesen ist genauso simpel. Nebenbei soll das ganze noch viel schneller sein als mit relationalen Datenbanken.

Meine Frage: Wenn man hier im Forum guckt, benutzt der Großteil relationale Datenbanken. Warum nimmt man nicht die Objekt-datenbank, womit "alles" einfacher und schneller geht?

476 Beiträge seit 2004
vor 17 Jahren

Original von thepaul
Meine Frage: Wenn man hier im Forum guckt, benutzt der Großteil relationale Datenbanken. Warum nimmt man nicht die Objekt-datenbank, womit "alles" einfacher und schneller geht?

hallo thepaul,

wenn du das Objekt so verwenden kannst wie du es in die Datenbank schreibst mag das sicher stimmen. Ich selbst bin mit Objektdatenbanken noch nicht in Berührung gekommen, aber ich denke sobald du dich nicht mit dem einen Objekt begnügen kannst, sondern andere Objekte in Abhängigkeit von diesem Objekt abfragen möchtest oder beispielsweise eine Summe über eine Auswahl von Objekten bilden möchtest, bist du über eine relationale Datenbank schneller.

Das ist meine Vermutung, da ich aber wie gesagt nicht mit Objektdatenbanken arbeite, bzw. auch nicht meine relationalen Daten auf Objekte mappe, kann ich keine gesicherte Auskunft geben 😁

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

1.457 Beiträge seit 2004
vor 17 Jahren

Ob nun eine OODB oder RDBMS schneller oder langsamer ist hängt von vielen Faktoren ab.

Man sollte auch bedenken, dass es bis heute (zumindest habe ich keine gefunden) keine OODB als kostenlose Version für den kommerziellen Einsatz gibt.

Desweiteren sind relationale Datenbanken in Firmen und Anwendungen sehr verbreitet.

OODB haben sich bis heute noch nicht 100%ig durchgesetzt.

_
227 Beiträge seit 2006
vor 17 Jahren

Wenn ich das bei db4o richtig verstehe, ist der interne (auch kommerzielle) Einsatz kostenlos. Erst wenn die Software außerhalb des eigenen Unternehemens eingesetzt wrid entstehen kosten.

Meiner Erfahrung nach, bringt eine Objektdatenbank je "komplizierter" ein Objekt ist immer mehr Vorteile und Geschwindigkeit.
Eine Klasse mit beispielsweise nur Name und Ort als Properties ist wohl schneller in deiner RDMBS, sobald aber die Verzweigungen immer Tiefer werden, mehrere Tabellen abgefragt werden müssen gewinntn die OODB an Geschwindigkeit.

Auch habe ich festgestellt, dass bei einer OODB die sinnvolle Setzung von indexes essentiel ist, um performante Abfragen zu haben.

Am besten du lädst dir mal db4o herunter (da du ja db4o angesprochen hast) und experimentierst etwas damit. Wichtig ist aber, dass du dich vollständig von der RDBMS welt löst und nicht mit parent IDs usw alles verknüpfen willst.

S
8.746 Beiträge seit 2005
vor 17 Jahren

Die Performance wird maßgeblich über die Art des Zugriffes bestimmt. RDBMS kennen nur die Abfrage als Zugriff. OODMBS kennen dagegen IMMER den navigierenden Zugriff (Hangeln über Beziehungen). Für bestimmte Arten von Zugriffsstrukturen kann dies einen enormen Performancevorteil bieten. Der Client-Cache kann dann auch nochmal ordentlich Speed bringen. Ganz schlecht ist allerdings eine Abfrage über Navigation nachzubilden (gib mir alle Objekte vom Typ X, suche nach Kriterium Y und gehe zu Sub-Objekt). Das wird grottenlahm, weil alle Objekte zunächst vom Server zum Client übers Netzwerk müssen.

Generell kann man - wie schon von meinem Vorredner gesagt - behaupten, dass komplexe JOINS oftmals deutlich langsamer als Navigation sind. Das kann Zehnerpotenzen ausmachen.

Sofern OODMBS auch serversieitge Anfragen unterstützen (tun fast alle) bewegt man sich im Prinzip in der Welt der RDMBS. Die Performance ist dann vergleichbar.

Rein theoretisch haben daher OODMBS mehr Potential.

Aber dass sich bessere Lösung nicht immer durchsetzen hat man ja schon bei VHS und Video2000 gesehen. 😉