Datenhaltung

Datenhaltung

Bei einem flexiblen Gesamtsystem stellt sich neben der Frage wie wir Daten halten können auch die Frage welche Art von Daten haben wir. Fangen wir mal hinten an. Wir haben in unserern Unternehmenssysteme öffentliche Daten Dieses bedeutet, dass es Daten sind die überall frei zugänglich sind. Dieses Daten benötigen wir für alle Unternehmen nur ein mal und müssen diese nur intelligent verbinden um daraus geschützte Zusammenhänge zu machen. Ist es nicht so, dass eine Anschrift (Straße, Hausnummer, Postleitzahl, Ort) öffentlich sind und erst die Zuordnungen zu Bewohnern und deren Eigenschaften schutzwürdig sind. Dieses ist natürlich ein wenig abstrakt. Aber zum Beispiel für mehrere Unternehmen die öffentlichen Daten für Beitragsberechnungen, Statisiken, Drittempänger und anderes können öffentlich bereitgestellt werden.

Wir werden hier versuchen öffentliche und private Daten zu trennen. Unter öffentlichen Daten sehe ich auch allgemeine Beschreibungen zu der Anwendung und die grundlegenden Wörterbücher. Was das alles ist werdet Ihr auf Dauer schon verstehen.

Ich denke mal, dass das Ganze was ich machen will mit Django gut geht. Eine Voraussetzung ist schon einmal gegeben. Ich kann mehrere Datenbanken verwenden. Da diese getrennt verwaltet werden können es auch unterschiedliche Datenbanksysteme sein.

Neben diesen Unterscheidungen gibt es dann noch die unterschiedlichen Arten der Datenverwaltung:
  • historische Stammdaten
  • Stammdaten ohne Historie
  • Berechnungsdaten mit Periodensystem
Zuerst werde ich auf diese 3 unterschiedlichen Dinge kurz eingehen und dann auf den Inhalt der unterschiedlichen Datenbanken. Ob es sich so grundsätzlich gut realisieren lässt kann ich heute noch nicht sagen. Es geht auch darum Daten eines Objektes aus zwei Datenbanken performant auf die Reihe zu bekommen.

Die Daten sollten so bereitgestellt werden, dass andere externe Anwendungen direkt daruaf zugreifen können, ohne das dieses Daten über Schnittstelle bereitgestellt werden müssen. Das Thema Schnittstellen ist inzwischen so komplex, dass es nur mit einem erheblichen Aufwand aktuell gehalten werden kann. Mit jedem Update sind hier Herausforderungen gegeben. Mit einem direkten zugriff auf zentrale Daten gibt es keine Differenzen zwischen den Daten der Anwendungen.

Stammdaten

Alles Stammdaten werden in derselben Struktur gehalten, die ggf. immer eine historische Datenverwaltung zulässt. Dabei ist es so, dass  einfach ein Gültig-ab  vorhanden ist und ein Satz so lange gilt, bis das nächste Gültig-ab kommt. In der Vergangenheit habe ich ein solches System entworfen. Hier gabe es ein Gültig-ab und ein Gültig-bis, das maschinell denselben Wert bekommen hat wie das Gütig-ab des nächsten Satzes. Der letzte Satz hatte immer ein offenes Gültig-bis (4999365). Es war ganz gut hier nach einem Stichtag zu lesen. Etwas komliziert wurde es hier, beim Einfügen oder Löschen von Sätzen, das Gültig-ab des vorherigen Satzes, bzw. des folgen Satzes musste angepasst werden.

Ich stelle mir immer wieder die Frage ob etwas nicht noch einfacher geht und bin hier zu der Überzeugung gelangt, dass für unsere historische Reihe ein Gültig-ab genügt, wenn wir rückwärts den nächsten Satz zum Stichtag ermitteln, ob und wie performant dieses gelingt, muss ich erst noch ausprobieren. Auf alle Fälle könnte man dann problemlos Sätze überlesen (wenn diese als gelöscht markiert sind) oder auch einfügen. Die Verwaltung wäre dann wohl recht einfach. Wenn dann alle Sticke reißen, besteht immer noch die Möglichkeit das Gültig-ab als reversen Wert mit vorzuhalten.

Stammdaten mit Historie

Die Daten des Objekts beginnen mit dem Gültig-ab. Ab diesem Zeitpunkt ist das Objekt im System bekannt. Bei Veränderungen gibt es ein neues Gültig-ab. Eine Begrenzung des Objekts im technischen Sinne gibt es nicht. Stirbt das Objekt, dann gibt es  lediglich ein neues Gültig-ab. Würde man ein Objekt begrenzen, wäre es in der Zukunft nicht mehr sichtbar und es könnten alle vergangen Objekte nicht mehr betrachtet werden.

Stammdaten ohne Historie

Stammdaten ohne Historie haben denselben Zugriff und ein Gültig-ab wie bei der Historie mit der Ausnahme das ein Gültig-ab immer den Wert 0 hat und damit der aktuelle Wert in einem Satz steht. Die Technik muss also immer so sein, dass alle Änderungen, die nicht zu einem Zeitpunkt stattfinden zum Zeitpunkt protokolliert werden. Damit werden auch hier die Änderungen festgehalten und sind nachvollziehbar. Über die Speicherdauer oder Generationen solcher Logs muss an anderer Stelle diskutiert werden.

Berechnungsdaten mit Periodensystem

Berechnungsergebnisse werden in einer eigenen Stuktur von Daten gehalten. Diese orientiernen sich an einem Periodensystem und werden zu einem Objekt abgelegt.

Grundsätzlich funktioniert dieses so, das es eine Periodendefinition gibt in der die einzelnen Eckwerte vorhanden sind. Als 1. legen wir die OID der Periodendefinition in jedem Ergebnissatz ab. Dann haben wir ein Beginn der Periode (JJJJTTT,Zeit) und ein Ende der  Periode (JJJJTTT,Zeit).
Diese Webseite verwendet Cookies, um Ihnen ein optimales Online-Erlebnis bieten zu können. Durch die Nutzung dieser Webseite erklären Sie sich mit der Verwendung von Cookies einverstanden. Mehr Infos
×
Share by: