Databases Reference
In-Depth Information
return album.getJahr()>=1970 && album.getJahr()<1980;
}
};
Die beiden Methoden queryByExample und query gehören zur API von db40.
Eine mit SQL vergleichbare Abfragesprache gibt es nicht. Im folgenden Abschnitt
stellen wir db4o in einen allgemeineren Kontext und sehen, dass db4o in dieser
Hinsicht kein Einzelfall ist.
21.3
Warum nicht gleich objektorientiert?
Scherzhaft wird gelegentlich behauptet, dass wir eine Objektdatenbank wie eine
Garage nutzen können: Wir fahren mit dem Auto in die Garage und steigen aus.
Später setzen wir uns in unser Auto und verlassen die Garage. Arbeiten wir mit
relationale Datenbanken, ist es hingegen so, als ob wir das Auto in Einzelteile
zerlegen, nachdem wir in die Garage gefahren sind, und dann die Einzelteile in
Regale legen, um sie vor dem Verlassen der Garage einzusammeln und wieder zu
einem Auto zusammenzusetzen. Und in der Tat erscheinen Systeme wie db4o auf
den ersten Blick als bequemes und mächtiges Werkzeug. Doch sollten wir auch
einige Schwachstellen kennen:
Mit Hilfe der Methode matches können wir zwar beliebige Prädikate defi-
nieren, doch wissen wir nicht, wie db4o sie ausführt. SQL bietet uns hier nur
seine bescheidene Ausstattung an Operatoren und Funktionen, doch können
wir uns sicher sein, dass die Vergleichsoperatoren etwa mit Hilfe eines Index
sehr schnell verarbeitet werden können. Bei den vielen Möglichkeiten für na-
tive Abfragen wissen wir im Einzelfall nicht, ob der Optimierer einen Index
verwendet oder den ganzen Datenbestand sequenziell durchsucht.
Aggregate sind derzeit in db4o unbekannt. Was in relationalen Systemen mit
den Standardfunktionen aus SQL oft schnell berechnet werden kann, bleibt bei
db4o dem Client überlassen: Er muss die Ergebnismenge verarbeiten und die
Aggregate selbst ermitteln - und bei großen Datenvolumina braucht das seine
Zeit.
In den vergangenen Jahrzehnten wurde immer wieder versucht, Standards für
die verschiedenen ODBMS zu finden. Diese Bestrebungen wurden durch die Ob-
ject Database Management Group 3 (ODMG) vorangetrieben. Ergebnisse sind die
Object Definition Language (ODL) und die Object Query Language (OQL). Bei-
de Sprachen haben sich in der Welt der ODBMS aber nie zu einer Lingua franca
entwickelt, wie es SQL bei relationalen Systemen ist. Zwischenzeitlich hat sich die
ODMG aufgelöst. Die Hersteller der ODBMS scheinen nicht mehr das Erfolgsmo-
dell SQL adaptieren zu wollen, sondern orientieren sich eher an den Program-
3
www.odbms.org/odmg/
 
Search WWH ::




Custom Search