db4o – Database for Objects

Am Wochenende bin ich auch db4o gestoßen. Eine objektorientierte Datenbank, die unter der GPL verfügbar ist.

Ich habe mich ja in den letzten Wochen mit einigen Ansätzen herumgequält, die es ermöglichen Objekte in einer Datenbank abzulegen. db4o hebt sich von diesen erfrischend ab.

Wie funktioniert db4o:

  • Die Datenbank ist lediglich eine Datei auf die man mit dll’s zugreift. Eine Serveranwendung gibt es wohl, man benötigt Sie aber nicht für einfache Szenarien.
  • Objekte speichert man mit der Set()-Funktion. Mehr gibt’s dazu nicht zu sagen, man muss zuvor nichteinmal Templates oder Schemata in der DB anlegen!
  • Für die Abfrage hat man mehrere Möglichkeiten:
    • Query-By-Example (QBE): Man legt ein neues Objekt an und setzt einige Membervariablen. Anschließend werden die gesetzen Member als Pattern für die Abfrage verwendet. Zurückgeliefert bekommt man dann alle matchenden Objekte.
    • Simple Object Database Access (SODA): Hier legt man einfach ein Query-Objekt an und legt constrains fest.
    • Native Queries: Abfragen die aus der zugrundeliegenden Sprache stammen. Wenn man .NET benutzt kann man hier z. B. Linq Abfragen nutzen.
  • Update und Delete sind selbsterklärend und damit ist der CRUD-Teil abgeschlossen.
  • Laut der Herstellerseite ist die Performance ausgesprochen gut. Selbst kann ich das noch nicht bestätigen.
  • db4o soll sogar in Echtzeitumgebungen eingesetzt werden (vgl. Golem).
  • Die Datenbank ist für .NET und Java verfügbar.

Share this content: