Wie array in Datenbank schreiben

Hallo,

ich arbeite neu mit Datenbanken/Access und soll eine kleine Datenbank für unsere Messungen schreiben. In die Tabellen soll eine große Anzahl an Parametern geschrieben werden und später will ich mit externer Analysesoftware nach gewissen Parametern filtern und die entsprechenden Messergebnisse bearbeiten.
Manche der Messergebnisse sind allerdings nicht eine einzelne Zahl, sondern ein ganzer scan mit ~30-100 Werten (bzw. x-y Paare an Werten), also ein array.
Jetzt bin ich am grübeln wie ich mit diesen Arrays am besten verfahre.
Ich habe bisher 3 Lösungen ins Auge gefasst:

  1. Jeden array in einem externen (ascii oder binär) file speichern, und in der Datenbank den kompletten Pfad angeben.
  2. Für jede Messung eine eigene Tabelle erstellen, und in der Messübersichtstabelle die Tabellennamen ablegen. Allerdings wird die Anzahl der Messungen in die 1000e-10000e gehen, das heisst ich hätte dann eine große Anzahl an Tabellen.
  3. Die Messwerte in einen hast/string verwandeln und direkt in die Messtabelle ablegen.

Meine Tendenz geht zu 1), aber es ist mir etwas unwohl wenn ich daran denke dass die datenbank allein dann nichts mehr wert ist, sondern dass ich auch immer die entsprechende Verzeichnisstruktur brauche.
Gibt es irgendeinen Standardweg ein derartiges Problem zu lösen?

Vielen dank im Vorraus,
Johannes

Moin Moin,

das ist alles eigentlich kein Problem.

Erstelle eine Haupttabelle mit den einzelnen Messwerten. Jede Messung erhält eine eindeutige ID.

Ein Array wird dann in eine zusätzliche Tabelle gespeichert.
Über eine 1:n Beziehung werden diese dann einer Messung in der Haupttabelle zugeordnet.

Oder alle Werte werden mit der gleichen ID der Messung in der Haupttabelle gespeichert.

Frage: in welcher Form kommen denn die Daten an?

Grüße aus Rostock
Wolfgang
(Netwolf)

Hi,

und erst mal danke für die Antwort.

nur um sicher zu gehen: du meinst dass ich z.B. eine Tabelle mit 3 Feldern (meas_ID, x-Wert, y_Wert) erstell, dann für einen array der Länge N N Datensätze (=N Zeilen) anleg die alle den gleichen meas_ID Wert haben, und den nächsten array einfach unten anhänge mit entsprechend anderer meas-ID? Daran hab ich gar nich gedacht, aber klingt ganz gut…
Klingt so als ob das dann eine sehr lange Tabelle werden könnte (mit >1e6 „Zeilen“. Stellt das ein Problem dar?

Zu deiner Frage: die Daten werden von einem externen Perl-script über einen sql Befehl in die Datenbank geschrieben.

Viele Grüße,
Johannes

Moin Moin,

nur um sicher zu gehen:

ja, das meinte ich

Die Anzahl der Zeilen ist egal, die Datenbank kann aber nur max. 2 GB aufnehmen. Da es sich bei dir nur um wenig Informationen pro Datensatz handelt, wirst du ein paar Jahre damit auskommen.

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo Goa und Wolfgang,
die Access-Lösung funktioniert sicher, aber bietet es sich nicht an, bei der Auswertung von Messwerten gleich ein Programm zu nehmen, das für solche Sachen spezialisiert ist, wie z.B. R
http://www.r-project.org/
Nur mal so als Anregung…

Viele Grüße
Marvin

Hi Marvin,

vielen Dank für die Anregung.
Wenn ich frei in meinen Entscheidungen wäre, dann wäre das sicher eine Überlegung wert, wobei ich mir wohl eher irgendwas mit Python+Packages stricken würde.
Für die Datenanalyse bin ich freier, und da werde ich dann Python (bzw. numpy/matplotlib/scipy) hernehmen, einfach weil ichs schon kann und es für eine sehr elegante Sprache halte.
Der Neugier halber: kennst du irgendwo einen guten Vergleich zwischen R und Python/Pylab?

Viele Grüße,
Johannes

Hallo Johannes,

kennst du irgendwo einen guten Vergleich
zwischen R und Python/Pylab?

Hier habe ich zwei Artikel gefunden, die in etwa sowas bieten:
http://nixliving.blogspot.de/2010/01/pylab-r-and-qti…
http://ubuntuforums.org/showthread.php?t=1218193
Aber ich denke, wenn Du Python kannst, dann nimmst Du eben sowas in die Richtung. Wahrscheinlich ist es mit R und PyLab wie mit allen solchen Werkzeugen, das eine punktet eventuell an der einen Stelle und das andere an einer anderen, ohne daß eins explizit die Nase vorn hat.
Und wenn man denn will, so kann man auch von Python auf R zugreifen:
http://rpy.sourceforge.net/rpy2.html

Viele Grüße
Marvin