embedded Datenbanksystem

Gast #3133737
Lesenswert?

Hallo zusammen,

ich überlege im Moment wie man im embedded Bereich eine große Menge an 
Daten verwalten könnte.

Es gibt folgende Daten:
-  Aktueller Wert [8/16/32 bit groß]
-  Grenzwert Min [8/16/32 bit groß]
-  Grenzwert Max [8/16/32 bit groß]
-  Attribut 1 [16 bit]
-  Attribut 2 [16 bit]

Macht in Summe für einen Datensatz (bei max. bit Größe): 32 + 32 + 32 + 
16 + 16 = 128 bit = 128 bit [16 byte]

Geplant sind min. 500 bis max. 1000 Parameter, daher wurde ein 32 mbit 
Dataflash vorgesehen.

Da ich mich mit Access ganz gut auskenne, habe ich mit gedacht das 
Prinzip einer lokalen Datenbank auch ein embedded System zu übertragen.

Aufbau über Index-Tabellen die einen Pointer auf den jeweiligen 
Speicherbereich eines Parameters enthalten.

-  Parameter ID (quasi der Primärschlüssel)
-  Index akt. Wert
-  Index Grenzwert Min
-  Index Grenzwert Max
-  Index Attribut 1
-  Index Attribut 2

Die Daten plane ich hintereinander in vorher definierten 
Speicherbereichen abzulegen, immer mit einem Speicherplatz von 32 bit 
bzw. bei den Attributen mit je 16 bit. Die Parameter werden nicht linear 
hochgezählt, es existieren Lücken. Für diese Lücken würde ich den 
Speicherplatz einfach reservieren. In einem normalen DB-System würde ich 
die Daten einfach in die Tabelle hinten anfügen.

Gibt es so was wie Access für µC?
#3134799
Lesenswert?

Jürgen schrieb:

> ich überlege im Moment wie man im embedded Bereich eine große Menge an
> Daten verwalten könnte.

Für IMHO merkwürdige Mengen an "groß"

> Es gibt folgende Daten:
> -  Aktueller Wert [8/16/32 bit groß]
> -  Grenzwert Min [8/16/32 bit groß]
> -  Grenzwert Max [8/16/32 bit groß]

Und die muß man wirklich speichern? Ergeben die sich nicht implizit 
aus dem aktuellen Wert über einen bestimmten Zeitraum?

> -  Attribut 1 [16 bit]
> -  Attribut 2 [16 bit]
>
> Macht in Summe für einen Datensatz (bei max. bit Größe): 32 + 32 + 32 +
> 16 + 16 = 128 bit = 128 bit [16 byte]

Also praktisch nix. OK, nicht nix. Aber weniger als ein 
durchschnittlicher µC in Registern halten kann.

Apropos: sollte da nicht noch ein Timestamp sein?

> Da ich mich mit Access ganz gut auskenne, habe ich mit gedacht das
> Prinzip einer lokalen Datenbank auch ein embedded System zu übertragen.

Komisch. Access ist doch gar keine Datenbank. Das ist doch nur ein GUI.

> Aufbau über Index-Tabellen die einen Pointer auf den jeweiligen
> Speicherbereich eines Parameters enthalten.
>
> -  Parameter ID (quasi der Primärschlüssel)
> -  Index akt. Wert
> -  Index Grenzwert Min
> -  Index Grenzwert Max
> -  Index Attribut 1
> -  Index Attribut 2

Örks.

Sieh doch mal zu, ob du noch ein Textbook zum Thema ISAM findest. Das 
ist so in etwa die Essenz deiner Idee und seit 40(?) Jahren Stand der 
Technik. Uni-Bibliothek. Die Ecke mit den ausgesonderten Fachbüchern.

> Gibt es so was wie Access für µC?

Nein. Es gibt auch keine Anhängerkupplungen, um Wohnwagen an RC-Modelle 
zu hängen. SQLite wurde ja schon genannt.

Ansonsten http://de.wikipedia.org/wiki/Eingebettetes_Datenbanksystem 
lesen oder Google nach "embedded database" fragen.


XL
#3134818
Lesenswert?

Bei dem geringen [eine richtige DB umfasst eher mehr Datensätze] kommt 
eher eine flat file DB in Frage.

Was mir aber tatsächlich die Haare sträubt, ist das Index-Konzept.
Üblicherweise sollte der Primärschlüssel ausreichen - die konkrete 
Adresse der Werte innerhalb des dadurch bereits identifizierten 
Datensatzes ergibt sich dann schlicht durch deren Offset.
#3135145
Lesenswert?

Jürgen schrieb:
> Macht in Summe für einen Datensatz (bei max. bit Größe): 32 + 32 + 32 +
> 16 + 16 = 128 bit = 128 bit [16 byte]
>
> Geplant sind min. 500 bis max. 1000 Parameter, daher wurde ein 32 mbit
> Dataflash vorgesehen.

Was meinst du mit "Parameter"? Einen Datensatz? Das wären dann also 
insgesamt maximal 16.000 Bytes. Das passt damit 262 mal in deinen 
Dataflash.

Jürgen schrieb:
> Aufbau über Index-Tabellen die einen Pointer auf den jeweiligen
> Speicherbereich eines Parameters enthalten.

Wozu der Umweg über diese ganzen Pointer?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren