Große Mengen an Daten speichern

Kenta1561

Bekanntes Mitglied
Hallo,

ich schreibe gerade ein Programm, bei dem ich eine große Menge an Daten brauche.
Vereinfacht beschrieben brauche ich sowas:
Ich übergebe ein Wort (String) an eine Methode und bekomme dann die zutreffenden Werte zurück.

Ich habe erst an HashMap gedacht, weil ich HashMap schonmal benutzt habe und es recht einfach war, jedoch verbraucht dies sehr viel RAM (vermute ich zumindest, bin kein Experte) und ich habe irgendwie das Gefühl, dass das nicht die optimalste Lösung ist.

An eine Datenbank habe ich auch gedacht, die einfachsten Anweisungen kenne ich ja zumindest. Jedoch will ich keine Datenbank hosten, und wenn zum Beispiel meine Freunde mein Programm ausprobieren wollen, will ich nicht, dass sie erstmal eine Datenbank hosten müssen/dass sie sich erstmal mit meinem Computer verbinden müssen (Port freigeben und was weiß ich was man noch alles machen muss) um mein Programm zu benutzen.

Gibt es auch eine andere Möglichkeit große Mengen an Daten zu speichern? Ist vielleicht eine XML-Datei eine optimale Lösung dafür?

LG
Kenta1561
 
@thecain
Ok, also mit "große Menge" war gemeint, dass das für mich eine große Menge ist, nicht für ein Computer. (Also dass das viel Tipparbeit werden wird) - also ich würde jetzt mal so sagen - um die 1500 Datensätze mit jeweils 3-4 Attributen(?).

LG
Kenta1561
 
Das ist nichts, da kannst du ruhig eine HashMap nehmen.
Einfach mal großzügig abschätzen, was sind das für Attribute?
1500 Datensätze * 10 Attribute * 8 Byte (double) = ~120 kB
Da kommt dann ggf. noch etwas mehr hinzu, wegen dem management, der verwendeten Datenstruktur etc. Aber die Größenordnung wird sich nicht ändern.
Bei den typischen 8GB RAM die die meisten Leute haben, fällt das überhaupt nicht auf.

Falls es doch mal größer werden sollte (mehrere 100 MB), würde ich dir schon eine DB empfehlen, dabei musst du nichtmals irgendwas hosten oder ports freigeben. z.b. per SQLite
 
@InfectedBytes
Also ich hab sehr wenig Ahnung von Datenbanken (deshalb frage ich auch gerade 😀), aber ich dachte, dass Datenbanken Daten in einer Art Tabelle speichern und dann zum Beispiel als Website darauf zugreift um Daten zu bekommen. Müssten dann Datenbanken nicht auf einem Server gehostet sein, damit man drauf zugreifen kann?
Ist dann SQLite was anderes oder habe ich Datenbanken falsch interpretiert? 😕

Und noch was: Ab wann sollte man/ist es empfehlenswert, Daten in einer XML-Datei zu speichern?

LG
Kenta1561
 
Du hast Datenbank falsch interpretiert. Eine Datenbank ist nichts weiter als eine Software, welche Daten für dich "clever" managed und diese Daten in einer (oder mehreren) Dateien organisiert. Im Webseiten Bereich ist dies dann oft ein MySQL server, welcher ein eigenständiges Programm ist und auf einem bestimmten Port auf Anfragen wartet und diese beantwortet. Diese Anfragen kommen dann z.B. von einem php script.
Bei SQLite ist die "Server Software" einfach teil deines Programms und kann direkt per API benutzt werden (ohne Sockets, etc.). SQLite speichert deine Daten dann in einer Datei auf deinem lokalen system.

Und noch was: Ab wann sollte man/ist es empfehlenswert, Daten in einer XML-Datei zu speichern?
(Achtung persönliche Meinung voraus)
XML? Meiner Meinung nach am besten gar nicht... Wenn du Dinge lokal speichern willst, dann doch bitte in einem "ordentlichen" Format. Als Ersatz für XML finde ich persönlich json ganz gut.
Ansonsten, wenn du eh Richtung Datenbanken gehen willst, solltest du es eben direkt in einer Datenbank speichern anstatt in einer xml
 
Es geht mir in dem Fall auch um die Syntax, XML hat viel zu viel redundanz.
Code:
<root>
  <something>
    xyz
  </something>
</root>
Als vergleich
Code:
"root" : {
  "something" : "xyz"
}
Oder noch etwas besser (ist allerdings kein "echtes" json)
Code:
root : {
  something : "xyz"
}

Ich persönlich finde eben das man json viel besser lesen kann und außerdem ist es auch noch kompakter.
 
Warum ist deiner Meinung nach JSON zum Beispiel ordentlich und eine gute Alternative zu XML? Für mich sehen JSON und XML (abgesehen vom Syntax) gleich aus.
Imho ist JSON wesentlich lesbarer für Menschen, als XML, und auch näher an typischen Objekten. Außerdem fällt der ganze Overhead weg, also etwas speichersparender 😉
 

Zurück
Oben