Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Idee für Historisierung

11 views
Skip to first unread message

Philipp Kraus

unread,
Dec 20, 2012, 9:13:15 AM12/20/12
to
Hallo,

ich brauche noch einmal eine Idee für einen Teil einer Datenbank:

Ich erstelle eine Datenbank für Simulationen. Die Clients erstellen
eine Simulation, in der Simulation
werden diverse Tasks mit unterschiedlichen Parametern erstellt und
diese werden dann von einem
Dienst berechnet und die Ergebnisse zurück in die Datenbank transferiert.

Eine Simulation besteht einmal aus Daten und Quellcode, der in er
Datenbank liegt. Als DBMS
nehme ich Postgres. Zusätzlich soll es aber möglich sein, dass ich mir
eine Simulation lokal speichern
kann z.B. wenn der Client keinen Netzzugriff auf die Datenbank hat.
Ich möchte aber mit der lokalen Kopie, die ich wohl als SQLite
Datenbank ablege, weiter arbeiten können
und bei erneuten Zugriff auf die Postgresdatenbank abgleichen können.

Letztendlich soll so etwas wie ein Repository z.B. bei Git möglich
sein, so dass man Commits, Push / Pull,
Merges & Branches, sowie ein Diff erzeugen kann. Einen Datensatz aus
Postgres zu nehmen und dann
Änderungen zu finden, ist kein Problem, denn ich kann ihn ja anhand des
PK identifizieren und dann
die Felder abgleichen. Bei Branches & Merges habe ich aber aktuell noch
keine gute Idee bzw.
wenn jetzt der User lokal neue Datensätze in der Historisierung anlegt
und diese dann später an die passende
chronologische Position der Postgres Datenbank eingepflegt werden müssen.

Hätte jemand ein paar hilfreiche Ideen?

Danke

Phil

Siegfried Schmidt

unread,
Dec 20, 2012, 1:27:27 PM12/20/12
to
Philipp Kraus schrieb:

> Eine Simulation besteht einmal aus Daten und Quellcode, der in er
> Datenbank liegt. Als DBMS
> nehme ich Postgres. Zusätzlich soll es aber möglich sein, dass ich mir
> eine Simulation lokal speichern
> kann z.B. wenn der Client keinen Netzzugriff auf die Datenbank hat.
> Ich möchte aber mit der lokalen Kopie, die ich wohl als SQLite
> Datenbank ablege, weiter arbeiten können
> und bei erneuten Zugriff auf die Postgresdatenbank abgleichen können.

Überleg mal, ob nicht Firebird für dieses Szenario besser wäre. Firebird
kann sowohl als Server als auch lokal als Filedatenbank arbeiten, d.h durch
das Umschalten ändert sich nichts an der Funktion.

> Hätte jemand ein paar hilfreiche Ideen?

Das Änderungsproblem sollte sich dann mit einem der vielen *) dazu
erhältichen Replikationsmanangern lösen lassen.

Siegfried

*) FiBRE, FBReplicator, IBO Replication, ReplicadorBR, Replicador Firebird,
DB Replicator, DBRE sowie einige kommerzielle Lösungen..

Philipp Kraus

unread,
Dec 20, 2012, 3:43:10 PM12/20/12
to
On 2012-12-20 19:27:27 +0100, Siegfried Schmidt said:

> Philipp Kraus schrieb:
>
>> Eine Simulation besteht einmal aus Daten und Quellcode, der in er
>> Datenbank liegt. Als DBMS
>> nehme ich Postgres. Zusätzlich soll es aber möglich sein, dass ich mir
>> eine Simulation lokal speichern
>> kann z.B. wenn der Client keinen Netzzugriff auf die Datenbank hat.
>> Ich möchte aber mit der lokalen Kopie, die ich wohl als SQLite
>> Datenbank ablege, weiter arbeiten können
>> und bei erneuten Zugriff auf die Postgresdatenbank abgleichen können.
>
> Überleg mal, ob nicht Firebird für dieses Szenario besser wäre. Firebird
> kann sowohl als Server als auch lokal als Filedatenbank arbeiten, d.h durch
> das Umschalten ändert sich nichts an der Funktion.

Danke für den Hinweis, bisher kenne ich Firebird nur vom Namen, also
die technischen Details muss ich mir erst einmal anschauen

>> Hätte jemand ein paar hilfreiche Ideen?
>
> Das Änderungsproblem sollte sich dann mit einem der vielen *) dazu
> erhältichen Replikationsmanangern lösen lassen.

Ich will hier keine Replikation machen, d.h. nicht die komplette Datenbank
spiegeln. Im Grunde sagt der User "ich will Datensatz X und alle damit
zusammenhängenden Daten lokal speichern". Nun kann er lokal
diese Daten verändern und beim nächsten Connect eben entscheiden
ob und was er wieder in die Datenbank gibt.

Letztendlich wäre die Spiegelung auf ein paar ausgewählte Datensätze begrenzt.
Wäre das mit Firebird möglich?

Danke

Phil

Siegfried Schmidt

unread,
Dec 21, 2012, 4:39:26 PM12/21/12
to
Philipp Kraus schrieb:

> Ich will hier keine Replikation machen, d.h. nicht die komplette
> Datenbank spiegeln. Im Grunde sagt der User "ich will Datensatz X und
> alle damit zusammenhängenden Daten lokal speichern". Nun kann er lokal
> diese Daten verändern und beim nächsten Connect eben entscheiden
> ob und was er wieder in die Datenbank gibt.

Ich verstehe nicht ganz, wo das besondere Problem dabei sein soll. Deine
Historieneinträge haben doch einen eindeutigen Bezug zu einem Vorgänger,
ganz gleich ob sich dieser in der Haupt- oder einer Nebendatenbank
befindet. Damit lassen sie sich die Daten wechselseitig abgleichen.

> Letztendlich wäre die Spiegelung auf ein paar ausgewählte Datensätze
> begrenzt. Wäre das mit Firebird möglich?

Momentan sehe ich nicht, was nicht mit den Bordmitteln irgendeines sql-
Servers möglich sein sollte.


Siegfried
0 new messages