"Datenbank" für C++/Java Programm

Ich möchte ein Programm in C++ / Java erstellen welches diverse Adressdaten verwalten soll. Nun wollte ich euch fragen wie ich das mit der Speicherung der Daten am besten lösen kann. Dabei wollte ich möglichst auf große aufwendige Programme ( z.B.: MySQL ) verzichten.

Was für Möglichkeiten ausser einer CSV hätte ich denn da???

Danke für eure Tips!
 
Ich gebe Bitmuncher recht. Java und C++ haben eine so gute XML-Unterstützung, dass das Ablegen von Daten in XML Files heute ein Kinderspiel ist. Und du kriegst da normale Daten (Records) gut drinnen untergebracht.
Echte Datenbanken (mit SQL) lohnen sich erst dann, wenn du viele Relationen zwischen den Daten hast, Indizes brauchst oder andere kompliziertere Abfragen effizient durchführen willst.

mfg, metax.
 
Danke für eure Tipps!

XML als DB hört sich recht gut an. Mal schaun ob ich iwo ein gutes Tut oder ein paar passende Infos find ( falls wer nen Link hat ;) )
 
Ich hab selber noch nicht damit gearbeitet, aber im JavaMagazin wird immer von der CouchDB geschwärmt. Ist auch ein Apache-Projekt, was meiner Meinung nach schon auch für Qualität steht. XML hat halt immer den Nachteil, daß es durchaus schwierig und inperformant werden kann, wenn man in größeren Datenmengen spezifisch selektieren will.

http://couchdb.apache.org/
 
Also ich kann aus Erfahrung sagen, dass sich für Java dom4j am besten eignet. Für C++ würde ich auch Xerces empfehlen, diese Bibliothek ist mittlerweile eigentlich sehr gut voran geschritten (früher war das eher murks).
Wobei man sich im OO-Umfeld auch ruhig mal db4o ansehen sollte, da dies, wenn ich mich recht entsinne, um einiges performanter ist, als XMLs zu parsen.
 
@odigo: Ich kenne Spider/Processing-Engines, die mit XML arbeiten und die binnen weniger Sekunden problemlos Tausende von Einträgen durchsuchen können, die als XMLs abgelegt wurden. Ich denke bei einem Adressbuch ist die Datenmenge im Vergleich dazu eher überschaubar. Von CouchDB hab ich auch bereits viel gutes gehört, auch wenn ich der Apache Foundation nicht bei allen Projekten Qualität nachsagen würde.
 

Als ich eine Alternative zu Mysql suchte, kam mir auch SQLite als erstes in den Sinn. Hier aber muss man einfach sagen, dass Java-Wrapper allesamt mist sind oder nicht weiter entwickelt werden. Einzig effektive Umsetzung ist SQLJet, die allerdings nicht für den kommerziellen Einsatz frei erhältlich ist - derzeit verlangten die 5000 USD für die Nutzung der Software in kommerziellen Projekten.
Mittlerweile arbeite ich mit Apache Derby, was dir in C++ aber keinesfalls weiterhilft.

Die wohl beste Alternative ist die bereits genannte: Eigene Textdokumente zum de-/serialisieren der Daten.
XML eignet sich für sowas echt gut, du solltest dir allerdings mal JSON ansehen. (www.json.org)

@odigo: Ich kenne Spider/Processing-Engines, die mit XML arbeiten und die binnen weniger Sekunden problemlos Tausende von Einträgen durchsuchen können, die als XMLs abgelegt wurden. Ich denke bei einem Adressbuch ist die Datenmenge im Vergleich dazu eher überschaubar. Von CouchDB hab ich auch bereits viel gutes gehört, auch wenn ich der Apache Foundation nicht bei allen Projekten Qualität nachsagen würde.

Laufzeit VS Speicherverbraucht bzw. SAX VS DOM ... der Kampf geht weiter ^^
Aber odigo hat schon Recht, XML ist kein performantes Format, an dieser Stelle müssen schon Binär-Formate her bzw. Datenbanken.


Nichts desto trotz, embedded DBMS, die vollständig C++ und Java kompatibel und frei sind, sind ziemlich rar.
 
Zuletzt bearbeitet:
Zurück
Oben