mikrocontroller.net

Forum: PC-Programmierung Arrays in Datenbanken sinnvoll?


Autor: postgres (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal die rrdtools an. Exakt für sowas geschaffen.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: postgres (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.