Temporale Datenhaltung
Unter temporaler Datenhaltung (auch Historisierung genannt) versteht man in der Informationstechnologie die zeitabhängige Speicherung von Daten.
Normalerweise wird in einer Datenbank nur der jeweils aktuell (heute) gültige Wert gespeichert, bei einer Änderung eines Werts wird der alte Datenwert einfach überschrieben. Dagegen ermöglicht eine temporale Datenhaltung zu rekonstruieren, welcher Wert zu welchem Zeitpunkt gültig war (oder in weniger häufigen Fällen auch gültig werden wird).
Bezüglich temporaler Datenhaltung sind zwei Arten der zeitlichen Betrachtung relevant:
- Gültigkeitzeit: Der Zeitraum, in der ein Datenelement in der realen Welt gültig ist.
Beispiel: der Preis eines Artikels galt vom 1. Mai 2003 bis zum 1. Juni 2005. - Bearbeitungszeit (auch Transaktionszeit): Der Zeitpunkt, an dem ein Datenelement im Datenbestand gespeichert wurde.
Beispiel: Obige Preisanpassung des Artikels wurde am 1. April 2003 bearbeitet und in den Datenbestand aufgenommen.
In manchen Fällen sind dabei tatsächlich beide Arten relevant, hierfür verwendet man auch den Ausdruck "bitemporal". Dies gilt z.B. bei Beantwortung folgender auf obige Beispiele bezogenen Frage:
- Welcher Preis wurde einem Kunden am 31. März 2003 für den Kauf eines Artikels genannt, wobei der Kauf erst am 1. Juni 2004 stattfinden sollte?
Abbildung temporaler Daten in Datenbanksystemen
Bezüglich der Abbildung temporaler Daten existieren folgende Varianten:
- Verwendung temporaler Datenbanken
Dabei handelt es sich um Datenbanksysteme, bei denen systemseitig bereits eine gewisse Unterstützung temporaler Datenhaltung vorhanden ist, die über die Unterstützung von zeitbezogenen Datentypen hinausgeht. Vollwertige temporale Datenbanken haben derzeit noch keinen besonders hohen Verbreitungsgrad bzw. befinden sich noch in der Entwicklungsphase. - Verwendung spatiotemporaler Datenbanken
Dabei handelt es sich um Datenbanksysteme, die neben der Unterstützung zeitabhängiger Daten auch für die Speicherung räumlicher Informationen ausgelegt sind. Dabei liegt der Fokus aber i.d.R. auf der räumlichen Information. - Abbildung in herkömmlichen relationalen Datenbanken
Da die Unterstützung temporaler Datentypen auch in herkömmlichen relationalen Datenbanksystemen gegeben ist, können temporale Daten prinzipiell in relationalen Datenbanken gespeichert werden, wobei die temporalen Attribute als "normale" Attribute abgebildet werden. Die Abhandlung der temporalen Aspekte muss dabei durch die Anwendungsprogramme oder durch ein zur Anwendungsentwicklung verwendetes Framework erfolgen. - Abbildung in anderen Datenbanken (z.B. objektorientierten Datenbanken)
Bezüglich der anderen Datenbanksysteme besteht keine mit den relationalen Systemen vergleichbare Einheitlichkeit und Verbreitung, so dass eine generelle Aussage über die Abbildung temporaler Daten nicht möglich ist.
Im folgenden Abschnitt werden allgemeine Eigenschaften temporaler Datenhaltung betrachtet, die weitestgehend für alle oben genannten Abbildungen gelten. Anschließend erfolgt eine detaillierte Erläuterungen der Abbildung temporaler Daten in herkömmlichen relationalen Datenbanken. Weitere Informationen zu den anderen Abbildungsvarianten finden sich unter Umständen bei der Erläuterung der Datenbanksysteme selbst.
Begriffserläuterungen und Terminologie
Im folgenden werden die wichtigsten Begriffe in Bezug auf temporale Datenhaltung erläutert. Diese Erläuterungen decken sich im wesentlichen mit dem sogenannten "Konsens-Glossar" (siehe Weblinks).
Gültigkeitszeit und Transaktionszeit
Wie anfangs bereits erwähnt bezeichnet Gültigkeitszeit (Valid Time) den Zeitpunkt oder Zeitraum, wann ein Sachverhalt in der modellierten realen Welt (der Bezugswelt) gilt. Dabei können sowohl zukünftige als auch vergangene Zeiträume relevant sein.
Im Gegensatz dazu bezeichnet Transaktionszeit (Transaction Time) den Zeitpunkt, wann ein Sachverhalt in der Datenbank gespeichert wurde und damit den Zeitraum, wann dieser Sachverhalt als korrektes Abbild der Bezugswelt angesehen wurde. Im Gegensatz zur Gültigkeitszeit kann sich die Transaktionszeit also niemals auf die Zukunft beziehen.
Sind sowohl Gültigkeits- als auch Transaktionszeit relevant, spricht man von bitemporaler Datenhaltung.
In diesem Zusammenhang existiert auch der Begriff der benutzerdefinierten Zeit. Damit sollen anderweitige Zeitangaben, die "normale" Attribute in der Datenbank darstellen (wie z.B. ein Geburtsdatum), von der temporalen Datenhaltung abgegrenzt werden.
Zeitpunkte, Zeitintervalle und Zeitdauern
Ein Zeitpunkt (Instant) stellt einen Punkt auf einer verwendeten Zeitachse dar. Dabei können unterschiedliche Granularitäten Verwendung finden (z.B. tagesgenau, sekundengenau).
Zeitangaben können verankert (fixiert) oder unverankert sein. Eine verankerte Zeitangabe bezieht sich auf einen konkreten Zeitpunkt in der Zeitskala. Bei einer Zeitdauer handelt es sich somit um ein unverankertes Zeitintervall.
Zeitlich verankerte Intervalle werden auch als Perioden (Time Period) bezeichnet. Der Begriff Intervall ohne zusätzliche Angabe ist in dieser Hinsicht missverständlich, vor allem auch deshalb, weil in SQL der Begriff in für eine Zeitdauer verwendet wird.
Literatur
- Thomas Myrach: Temporale Datenbanken in betrieblichen Informationssystemen; Teubner Verlag; Wiesbaden 2005; ISBN 3-5129-00442-9
- Richard T. Snodgrass, Christian S. Jensen: Developing Time-Oriented Database Applications in SQL ; Morgan Kaufmann; San Francisco 1999, ISBN 1-55860-436-7