Suchtiefe festlegen
Wer einen Kunden aus der Datenbank holt und seinen Bestellungen folgt, erhält immer nur genau die ersten fünf Bestellungen (Listing 6). Theoretisch könnte Db4o zwar die gesamte Liste erstellen und zurückliefern. Im schlechtesten Fall - beispielsweise bei einer sehr langen Liste - würden dann aber alle Objekte aus der Datenbank instanziiert und den Hauptspeicher fluten. Also folgt Db4o standardmäßig nur fünf Referenzen in die Tiefe. Alle anderen sind dann automatisch »null«.
01 ObjectSet ergebnisse=db.get(Kunde.class);
02 Kunde einkunde=(Kunde)ergebnisse.next();
03 Bestellung eintrag=einkunde.getErstebestellung();
04 while(eintrag!=null) {
05 System.out.println(eintrag);
06 eintrag=eintrag.getNext();
07 }
|
Wer tiefer hinabsteigen will, muss explizit das hinter einer Referenz stehende Objekt mit
while(eintrag != null) {
db.activate(eintrag,1);
System.out.println(eintrag);
eintrag = eintrag.getNext();
}
aktivieren oder die so genannte Activation Depth erhöhen. Das kann der Programmierer beispielsweise über folgende Anweisung erledigen:
Db4o.configure().objectClass(Bestellung.class).cascadeOnActivate(true);
Damit steigt Db4o die gesamte Hierarchie hinab.
|
Datenbanken klassifiziert man nach der Art, wie sie ihre gespeicherten Daten strukturieren und in Relation zueinander setzen. Die bekannten relationalen Datenbanken arbeiten mit Tabellen, während die Objektdatenbanken ganze Datenobjekte verdauen.
Zwischen den beiden Extremen gibt es noch Mischformen, beispielsweise die objektrelationalen Datenbanken. Sie nehmen Objekte zwar entgegen, pressen sie aber intern wieder in eine Tabellenform. Hierzu zählen beispielsweise Hibernate und die meisten Datenbanken, die den Standard JDO einhalten [6], zum Beispiel Apache JPOX vor Version 1.2 [7] oder Speedo [8], aber auch die von Oracle&Co. angebotenen Wrapper.
Einige Datenbankhersteller verwenden gerne den etwas schwammigen Begriff der objektorientierten Datenbank, hinter der sich meist jedoch nur eine objektrelationale Datenbank verbirgt. Reine und auch noch kostenlose Objektdatenbanken muss man immer noch mit der Lupe suchen. Für Python existiert beispielsweise ZODB [9], deren Objekte der Anwender jedoch alle von einer Persistenzklasse ableiten muss. Der brauchbare Rest, beispielsweise Versant [10], stammt aus kommerziellen Softwarehäusern.
|
Server-Modus
Bisher fand Db4o lediglich als eingebettete Datenbank Verwendung. Einen eigenständigen Server liefert der Hersteller nicht aus, doch lässt sich Db4o in einen Server-Modus versetzen. Dazu ist nur ein passendes Server-Objekt zu erstellen:
ObjectServer server=Db4o.openServer("adressdatenbank", Port);
Ab sofort lauscht der Server am TCP-Port Port auf eingehende Anfragen. Per
server.grantAccess(Benutzer, Passwort);
schränkt man den Zugriff noch auf den Benutzer mit seinem Passwort ein. Die Client-Anwendung erzeugt wie gewohnt einen Container, der diesmal jedoch keine Datei öffnet, sondern den (auf Localhost laufenden) Server anspricht:
ObjectContainer client=Db4o.openClient("localhost", Port, User, Passwort);
Ab hier funktioniert der »client« wie ein normaler Container.
|
Ähnliche Artikel
|
|
Tooltipps
|
Werkzeuge im Kurztest
|
|
LAMP mal ohne AMP
|
Performante Webapplikationen in C++ entwickeln
|
|
Türöffner
|
Service-orientierte Abbildung von Geschäftsprozessen mit freier Software
|
|
Flottes Projekt
|
GPS-basiertes Flottenmanagement mit Open GTS
|
|
Passt!
|
C#-Entwicklung unter Linux - Teil 4
|
|
Tooltime
|
Die besten zehn Eclipse-Plugins
|
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|