Datenbanken Online Lexikon TH Köln, Campus Gummersbach
Aktuelle Änderungen - Suchen:

Db4o

db4o-Objektdatenbank

Db4o geh�rt der Firma Versant Corp. Es gibt mehrere Niederlassungen weltweit. Die aktuelle Version ist 8.

�berblick db40
�berblick db40


db4o eine weit verbreitete ODB, die als freie (General Public License (GPL)) und kostenpflichtige Lizenz zur Verf�gung steht. Sie bietet alle Vorteile einer OO-Umgebung einschlie�lich der Daten-Abstraktion, der Vererbung sowie der Kapselung. Das Objektmodell erleichtert die Wartung, die �berarbeitung und den nahtlosen Einstieg mit modernen Programmiersprachen (Java,. NET, C#). Es gibt au�erdem umfangreiche Literatur zu diesem Framework. Einen besseren �berblick verschafft Abbildung "�berblick von db4o". Die angelegten Datenbanken werden in Datei mit Endung .yap abgespeichert.[DB4O_2011].

Vorteile

  • Entwickler k�nnen gefahrlos Funktionen anbieten. Das hei�t durch Kapselung(Unter Kapselung versteht man, dass Objekte einen kontrollierten Zugriff auf die Daten haben.[Bay_08]) von Objekten werden nur bestimmte Methoden zur Verf�gung gestellt.
  • db4o kann bis zur 55 mal schneller als Hibernate oder MySQL sein. Daf�r gibt es zwei Gr�nde. Erstens, es findet keine Umwandlung statt. Zweitens ist db4o optimiert f�r komplexere Objektstrukturen.
  • Es besteht die M�glichkeit, dass man von verschiedenen Clients aus in verschiedenen Sprachen(z.B. C# und Java) auf eine gemeinsame Datenbank zugreifen kann.
  • Die Datenbank kann direkt in die Anwendung integriert werden, funktioniert also ohne separaten Server. Dies ist besonders f�r den Einsatz in mobilen Anwendungen gedacht.
  • db4o bietet inzwischen umfangreiche Unterst�tzung f�r verteilte Anwendung mittels der db4o Replication Services (dRS).

Nachteile

  • Es wird kein 'klassischer' Datenbankserver ausgeliefert - dieser muss mit vorgefertigten Klassen selbst implementiert werden. Der Aufwand hierf�r ist aber bei einfachen Anwendungen gering.
  • Von au�en ist es nicht m�glich, db4o zu administrieren. Das bedeutet, dass alle Einstellungen �ber den Programmiercode durchgef�hrt werden m�ssen.

Arten von Abfragemethoden

Es gibt drei typische Arten von Abfragemethoden in db4o:

  • Query By Example(QBE)
  • Simple Object Database Access(SODA)
  • Native Abfragen

Query By Example(QBE) von db4o

Das bedeutet �Suche anhand von Beispielen�. D.h. Erstellung eines Prototypobjekts f�r db4o. z.B.

Auto rennwagen = new Auto("Rennwagen");

Es handelt sich dabei um ein einfaches Objekt mit einem �String� als Parameter. Jetzt kann dieses Objekt in der Datenbank abgespeichert werden. Die Umwandelung in db4o erfolgt �ber die folgende Zeile.

db.store(auto);

Mit den folgenden Zeilen lassen sich alle Objekte der Klasse Auto vom Typ Rennwagen abrufen.

Auto rennwagenBeispiel = new Auto("Rennwagen");
List<Auto> alleRennwagen;
alleRennwagen = db.queryByExample(rennwagenBeispiel);



QBE erlaubt lediglich einfach gehaltene Abfragen. Komplexere Bedingungen, z.B. Ungleichheit, Gr��er, Kleiner, sind nicht m�glich.

Als eine Vergleich-Analogie f�r die Ausgabe in SQL und db4o kann folgendes Beispiel dienen.

SQLdb4o
SELECT * FROM Autowhile(result.hasNext()){auto = result.next();arrayListAuto.add(auto);}

Tabelle:1 SQL vs. db4o

Simple Object Database Access(SODA)

SODA-Abfrage
SODA-Abfrage

Dieser feine Zugriff auf die Daten ist etwas aufw�ndiger, aber erm�glicht, komplexere Abfragen vorzunehmen, s. Abbildung: SODA-Abfrage. Dabei repr�sentiert das oberste Viereck ein Oberobjekt. Es besteht die M�glichkeit, auf eine Klasse direkt zuzugreifen.

query.constrain(Auto.class);

Wenn noch zus�tzliche Bedingungen einf�gt werden sollen, kann Folgendes als Beispiel genommen werden:

query.descend(�typ").constrain(„Rennwagen");

Dadurch wird nur ein bestimmter Typ(Rennwagen) von Auto ausgew�hlt. Auf dem Bild kann man diese oben genannten Zugriffe anschauen und sich das hierarchische Modell von Objekten in db4o vorstellen.

Bei Verwendung ergeben sich zwei Nachteile. Zun�chst werden die Objektattribute, f�r die Bedingung aufgestellt werden, als String selektiert (oben bspw. "typ"). Damit der Compiler keine M�glichkeit zu pr�fen, ob die Abfrage g�ltig ist, im Beispiel die Klasse "Auto" also �berhaupt ein Attribut "typ" hat. Zudem wird durch den direkten Zugriff auf die Attributwerte das OOP-Konzept der Datenkapselung verletzt.

Native Abfragen

Unter nativen Abfragen (auch: Native Queries) werden die Abfragen verstanden, die in einer Clientprogrammiersprache(C#, Java) formuliert werden. Solche Abfragen k�nnen einen direkten Vergleich oder Zugriff auf einzelne Elemente in der Datenbank erm�glichen, z.B.

List autoTyp = db.query(new Predicate() {
public boolean match(Auto einAuto) {
if(einAuto.getTyp() == �Rennwagen") return true;
else return false; }
});








In diesem Beispiel kann ein Objekt(einAuto.getTyp()) mit einem �String� Rennwagen verglichen werden. In erste Zeile wird die Variable �autoTyp� typisiert und initialisiert. In eine �if-Abfrage� wird es abgefragt, ob es in Datenbank existiert, wenn es zutrifft, dann wird es �true� �bergeben, sonst �false�. Da der Zugriff auf private Attribute nur �ber entsprechende Methoden m�glich ist, wird bei nativen Abfragen das Konzept der Datenkapselung gewahrt. Eine native Abfrage wird zur Laufzeit untersucht und wenn m�glich von db4o in eine Performance-optimierte SODA-Abfrae umgewandelt. Ist dies nicht m�glich, z.B. wegen des Aufrufs von f�r die abfrage irrelevanten Methoden, wird jedes Objekt der abgefragten Klasse instanziiert und die "match"-Methode darauf angewandt.[DB4O_2011]

Installation von db4o

Im ersten Schritt lassen sich db4o und Eclipse von der offiziellen Seite herunterladen. Laut der Spezifikation von db4o sollte eine Eclipse-Version h�her als 3.3 verwendet werden. F�r Eclipse muss nach dem Entpacken noch die Umgebungsvariable CLASSPATH gesetzt werden. Die db4o Variable kann als Systemvariable definiert und in PATH hinzuf�gt werden. z.B.

VariablePATH
DB4OX:\Programme\db4o-8.0-java\db4o-8.0\lib\

Tabelle:2 Variable & PATH

F�r Systempath

PATH%DB4O%\db4o-8.0\lib;

Tabelle:3 System Path

Externe .jar�s
Externe .jar�s


Ein �hnliches Prinzip gilt f�r JAVA_HOME. Anschlie�end soll Eclipse gestartet werden, um das db4o Plugin zu installieren. Dabei geht man folgenderma�en vor: Help-> Install Software, dann den folgenden Link in das Eingabefeld kopieren. Jetzt kann ein neues Projekt anlegt und externe Bibliotheken hinzugef�gt werden siehe Abbildung Externe .jar�s.

Dann empfiehlt sich die Erstellung von entsprechenden Klassen. z.B. der Objektklasse und Klassen mit notwendigen Methoden f�r die Verwaltung, das Ablesen und das Speichern, so wie db.queryByExample(auto); und db.queryByExample(auto); .

Realisierte Projekte mit ODBs

Es gibt viele Firmen, die db4o einsetzen, wie z.B. IBM, Intel, Postbank, BOSCH Sigpack, BMW und viele mehr .

Quellen:

Kategorie: Neue DB-Entwicklungen, NoSQL, ODBMS, O