Daten lokal speichern

Hallo Leute,

ich stelle mir schon seit längerem die Frage, mit welchen Techniken man in verschiedenen Sprachen (mich interessieren vor allem Java, C/C++ und .NET) am Besten Daten lokal speichert. Genau das machen ja sehr viele Programme. Wie macht man sowas z. B. in einem Programm zur Führung eines Fahrtenbuchs? Gibt es Mechanismen, lokal möglichst einfach eine Datenbank (ohne Server, wäre ja sinnlos, wenn man nur lokal darauf zugreift) anzulegen?

Wenn euch die Frage zu unpräzise ist, freue ich mich natürlich auch über Links/Literatur. Habe zwar bereits gesucht, aber anscheinend fehlen mir die richtigen Stichwörter.

Viele Grüße
Woosh
 
Also wenn du die Daten wirklich wie in einer Datenbank verwalten willst wirst du wohl nicht um ein lokales DBMS herumkommen, also z.B. einen MySQL-Server im Loopbackinterface. Eine andere Möglichkeit wäre die Speicherung in XML-Datein, auf die du dann mit entsprechenden XML-Libs zugreifen kannst (mit fällt gerade irrXML ein weil ich gerdae mit Irrlicht arbeite).

EDIT: http://www.ambiera.com/irrxml/
 
Zuletzt bearbeitet:
Wenn es wirklich nur um die Führung (d)eines Fahrtenbuchs geht, denke ich die von fabuloes vorgschlagene Lösung mit der XML-Datei reicht völlig aus. Mit XML lassen sich Daten schön strukturieren und recht komfortabel bearbeiten. Nur bei großen Datenmengen und komplexen Operationen auf den Datenmengen würde ich dann doch zu einer Datenbanklösung raten - wenn es also um die Fahrtenbücher eines ganzen Betriebs geht, ist eine Datenbank angesagt...;)
 
Wenn es wirklich nur um die Führung (d)eines Fahrtenbuchs geht, denke ich die von fabuloes vorgschlagene Lösung mit der XML-Datei reicht völlig aus. Mit XML lassen sich Daten schön strukturieren und recht komfortabel bearbeiten. Nur bei großen Datenmengen und komplexen Operationen auf den Datenmengen würde ich dann doch zu einer Datenbanklösung raten - wenn es also um die Fahrtenbücher eines ganzen Betriebs geht, ist eine Datenbank angesagt...;)

Nein, das Fahrtenbuch war nur ein spontanes Beispiel. Genau gesagt handelt es sich um einen Kunden- und Produktstamm. Die einzelnen Produkte sind außerdem aus verschiedenen Bestandteilen zusammengesetzt. Das Ganze soll so flexibel gehalten werden, dass auch Bestandteile von Produkten aus Bestandteilen bestehen. Bei dem Kundenstamm handelt es sich um einige Tausend Datensätze. Der Porduktstamm wird vermutlich größer.

[EDIT] Aus Sicht der Datenverwaltung ist es wohl am klügsten, die Daten in Relationen zu verknüpfen.
 
in dem fall würde ich bereits zur ausgewachsenen mysql-db raten

OK. Ich stelle mir nur immer die Frage, warum dazu einen ganzen Server aufsetzen, wenn die DB sowieso nur lokal auf einem Rechner benutzt wird? Da würde es ja eigentlich reichen, ohne eine Client-Server-Kommunikation mit der Datenbank zu jonglieren, oder? Ist schließlich auch ein größeres Sicherheitsrisiko (<-- Achtung, gefährliches Halbwissen).
 
niemand würde dich daran hindern, deine MySQL instanz ohne tcp-port zu konfigurieren und sie nur lokal über eine named pipe, etc anzusprechen ... nur sobald so eine db dann mal via netzwerk verfügbar gemacht werden muss, da weitere user darauf zugreifen sollen, ist das dann viel einfacher zu realisieren...
 
Ich war mir nicht sicher, ob nur die Speicherung auf dem Datenträger gemeint war. Ansonsten ist das Stichwort "embedded db":
Eingebettetes Datenbanksystem
Embedded database - Wikipedia, the free encyclopedia
Da gibt es deutlich mehr, als SQLite ;) und zudem komplett ohne Netzwerkkommunikation. Der Vorteil ist eben, dass so eine Anwendung dann relativ leicht auf "richtige" DB Systeme umgestellt werden kann (wenn dies tatsächlich gebraucht wird). Und es gibt die eher für alle gängigen Sprachen. Nachteile/Einschränkungen haben die eingebetteten DBs natürlich auch - diese halten sich aber in Grenzen (sofern man nicht stupide versucht mit einer eingebetteten DB eine "richtige" zu ersetzen ;) )
 
Zurück
Oben