Forum: PC-Programmierung Arrays in Datenbanken sinnvoll?


von postgres (Gast)


Lesenswert?

Hallo,

Wann macht eine Verwendung von Arrays in einer Datenbank sinn?
Ich stehe gerade vor der Entscheidung wie ich Sensordaten von mehreren 
Tagen in einer Datenbank speichere.
Die Messungen erfolgen immer in festen Abständen, den ganzen Tag über.

Entweder bekommt jeder Wert seinen eigenen Eintrag in einer Tabelle 
(versehen mit Zeitstempel) oder es gibt eine andere Tabelle, die 
Relationen zwischen Tagen und Arrays herstellt. In diesen Arrays stehen 
dann die Sensorwerte, der Zeitstempel ergibt sich implizit durch die 
Position im Array.
Auf den ersten Blick braucht Variante 2 weniger Speicherplatz, da die 
Zeitstempel nicht für jeden einzelnen Wert mitgespeichert werden.


Ist dem so und gibt es Argumente, die gegen diese Variante sprechen?

Vielen Dank schonmal

von Fabian (Gast)


Lesenswert?

Spielt heutzutage Speicherplatz noch eine Rolle? Ich persönlich würde 
eine Tabelle aus Zeitstempel und Messwert bevorzugen. Der Zeitstempel 
muss ja nicht eine Auflösung von 1ms haben, sondern entsprechend dem 
Messinterval.
Arrays in DBs ist irgendwie inkonsequent, oder?!

von (prx) A. K. (prx)


Lesenswert?

Schau dir mal die rrdtools an. Exakt für sowas geschaffen.

von Floh (Gast)


Lesenswert?

postgres schrieb:
> Entweder bekommt jeder Wert seinen eigenen Eintrag in einer Tabelle
> (versehen mit Zeitstempel) oder es gibt eine andere Tabelle, die
> Relationen zwischen Tagen und Arrays herstellt. In diesen Arrays stehen
> dann die Sensorwerte, der Zeitstempel ergibt sich implizit durch die
> Position im Array.

Ich bevorzuge Version 2.
Die Zeitstempel lassen sich aus der Speicherposition im Array berechnen, 
warum sollte man redundante Information speichern?

von (prx) A. K. (prx)


Lesenswert?

Wenn man schon auf die Idee kommt, ein Array äquidistanter Werte in eine 
Datenbank zu stopfen, weshalb verwendet man dann überhaupt eine 
Datenbank? Dann kann man es doch genausogut gleich beim Array (File) 
belassen und das bei fester Grösse reihum durch beschreiben.

von postgres (Gast)


Lesenswert?

Fabian schrieb:
> Arrays in DBs ist irgendwie inkonsequent, oder?!

Floh schrieb:
> Die Zeitstempel lassen sich aus der Speicherposition im Array berechnen,
> warum sollte man redundante Information speichern?

Ok, das sind wohl die zwei Hauptargumente.

Ich denke der kleine Speicherplatzvorteil macht nicht die Flexibilität 
wett, die durch Speicherung in den Arrays vorbei am DBMS verloren geht.
Daher werde ich wohl zu Variante 1 gehen.

Danke auch für den Tipp mit den rrdtools, wobei die wohl eher die 
Datenbank ersetzen und für reines Logging gemacht sind.
Ich brauche noch viele zusätzliche Daten, daher ist eine Datenbank schon 
notwendig.

von (prx) A. K. (prx)


Lesenswert?

postgres schrieb:

> Danke auch für den Tipp mit den rrdtools, wobei die wohl eher die
> Datenbank ersetzen und für reines Logging gemacht sind.

Korrekt, wobei stufenweise Datenverdichtung und Grafikdarstellung gleich 
mit drin enthalten sind. Aber wenns nicht passt...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.