# Datenspeicherung in Listen statt in einer Datenbank



## fireGlurak (10. Jul 2019)

Hallo,
folgendes: Derzeit entwickel ich eine Client-Server-Anwendung (Android App + NodeJS-Server). Ein Client kann mit einem oder mehrere Clients eine Sitzung starten und dann miteinander kommunizieren. 

Die Idee war, zunächst einen Prototypen zu entwickeln und sämtliche Daten erstmal in Listen abzulegen. Damit bin ich fertig und frage mich ob ich überhaupt eine Datenbankanbindung brauche, oder ob ich nicht einfach so verfahren kann, wie ich es bisher gemacht habe. Schließlich werden bei mir keine Daten langfristig gespeichert. Eine Sitzung wird entweder nach einer bestimmten Zeit (in der Regel paar Stunden) oder wegen eines Events geschlossen. 

Der Ablauf ist in etwa wie folgt: Ein Client fragt beim Server nach einem bestimmten String (aus einer Liste mit ca. 2000 Strings). Daraufhin wird der Client aufgefordert bestimmte Informationen anzugeben. Diese Informationen werden dann vom Server an alle anderen Client der Sitzung übergeben.

Meiner Meinung lässt sich das alles problemlos ohne einer Datenbank lösen. Oder übersehe ich da vielleicht was, was hinterher Probleme bereiten könnte ?


----------



## kneitzel (10. Jul 2019)

Die Anforderungen kennst nur Du. Ist es z.B. ok, dass alle Daten weg sind, wenn der Server neu gestartet wird?

Wenn die aktuelle Lösung alle Anforderungen erfüllt, dann brauchst Du nichts weiter.


----------



## fireGlurak (10. Jul 2019)

Ja stimmt wohl, es kam mir nur ein bischen "komisch" vor *keine *Datenbank zu verwenden, da irgendwie irgendwo immer eine Datenbank im Hintergrund läuft! Hätte ja sein können, dass Gründe wie erhöhte Peformance  (wobei das ja eher das Gegenteil ist) eine Rolle spielt etc. 



> Ist es z.B. ok, dass alle Daten weg sind, wenn der Server neu gestartet wird?


Ja ist ok. Es handelt sich ja nur um Sitzungsdaten, die zur Not nach einem Serverneustart von den Clients neu angefordert werden können.


----------



## mihe7 (10. Jul 2019)

fireGlurak hat gesagt.:


> es kam mir nur ein bischen "komisch" vor *keine *Datenbank zu verwenden, da irgendwie irgendwo immer eine Datenbank im Hintergrund läuft!


LOL. Der Taschenrechner mit der DB... Im Endeffekt ist es ganz einfach: auf Speichermedien wegschreiben muss man nur deshalb, weil a) der Hauptspeicher begrenzt ist und b) die Inhalte des Hauptspeichers verloren gehen, spätestens, wenn der Computer neu gestartet wird.

Es gab früher Geräte von Palm wie z. B. den Palm IIIc, die hatten zwar aus Sicht des Programmierers eine Art Datenbank API, mit der man auf  Datensätze zugreifen konnte etc., tatsächlich befanden sich diese aber im RAM und es wurden einfach Zeiger auf den jeweiligen Datensatz zurückgegeben (heute würde man das vermutlich als NoSQL In-Memory-DB bezeichnen).

Das funktionierte, weil bei der Synchronisation mit dem PC sämtliche Inhalte übertragen wurden. Wenn die Akkus leer waren, musste nach dem Aufladen neu synchronisiert werden, wobei alles wiederhergestellt wurde.


----------



## Xyz1 (10. Jul 2019)

mihe7 hat gesagt.:


> heute würde man das vermutlich als NoSQL In-Memory-DB bezeichnen


Heute stellt das wohl eher ein Sicherheitsrisiko dar...


----------



## looparda (10. Jul 2019)

Erinnert mich an diese Veröffentlichung von Robert C. Martin.
https://blog.cleancoder.com/uncle-bob/2012/05/15/NODB.html


----------



## mihe7 (11. Jul 2019)

Tobias-nrw hat gesagt.:


> Heute stellt das wohl eher ein Sicherheitsrisiko dar...


Warum?


----------

