www.wikidata.de-de.nina.az
Unter temporaler Datenhaltung auch Historisierung genannt versteht man in der Informationstechnik das Festhalten der zeitlichen Entwicklung der Daten bei Speicherung in einer Datenbank Haufig ist es ausreichend in einem Datenbestand nur den jeweils aktuell heute gultigen Wert zu speichern bei einer Anderung wird der alte Datenwert einfach uberschrieben Wenn jedoch die Anforderung besteht alle Anderungen zu dokumentieren ist eine temporale Datenhaltung erforderlich Diese ermoglicht zu rekonstruieren welcher Wert zu welchem Zeitpunkt gultig war oder in weniger haufigen Fallen erst in Zukunft gultig werden wird Bei einer temporalen Datenhaltung sind zwei Arten der zeitlichen Betrachtung relevant BeispielGultigkeitszeit Der Zeitraum in dem ein Datenelement in der realen Welt gultig ist Beispiel Ein Artikel zum Preis von 1 95 verteuert sich am 1 Juni 2006 auf 2 25 Transaktionszeit auch Bearbeitungszeit Der Zeitpunkt an dem ein Datenelement im Datenbestand gespeichert wurde Beispiel Obige Preisanpassung des Artikels wurde am 25 Mai 2006 bearbeitet und in den Datenbestand aufgenommen In manchen Fallen sind dabei tatsachlich beide Arten relevant hierfur verwendet man auch den Ausdruck bitemporal Dies gilt beispielsweise fur folgende auf obige Beispiele bezogene Frage Welcher Preis wurde einem Kunden am 20 Mai 2006 fur den Kauf des Artikels genannt wobei der Kauf erst am 15 Juni 2006 stattfinden sollte Details zur temporalen Datenhaltung werden oft auch in Verbindung mit der Archivierung von Daten als Anforderungen zur Revisionssicherheit von Informationssystemen definiert z B wie lange Anderungen nachweisbar sein mussen Inhaltsverzeichnis 1 Abbildung temporaler Daten in Datenbanksystemen 2 Begriffserlauterungen und Terminologie 2 1 Gultigkeitszeit und Transaktionszeit 2 2 Zeitpunkte Zeitintervalle und Zeitdauern 2 3 Zeitstempelung 2 4 Tupel versus Attribut Zeitstempelung 2 5 Temporale Normalisierung Coalescing 3 Abbildung in herkommlichen relationalen Datenbanksystemen 3 1 Zeitstempelung 3 2 Bestimmen des Primarschlussels 3 3 Integritatsprufungen 3 4 Vereinfachende Abbildungen 4 Archivierung und Bereinigung 4 1 Mogliche Varianten 4 2 Kriterien zur Auslagerung 4 3 Sicherstellung der Konsistenz 5 Typische Anwendungsgebiete 5 1 Data Warehouse 5 2 Gehaltsabrechnung 5 3 Risikomanagement im Bankenbereich 6 Literatur 7 Weblinks 8 EinzelnachweiseAbbildung temporaler Daten in Datenbanksystemen BearbeitenBei der Abbildung temporaler Daten existieren folgende Varianten Verwendung temporaler DatenbankenDabei handelt es sich um Datenbanksysteme bei denen systemseitig bereits eine weitergehende Unterstutzung temporaler Datenhaltung vorhanden ist die uber die Unterstutzung zeitbezogener Datentypen hinausgeht Derzeit existieren hierfur jedoch lediglich Prototypen und es ist noch kein kommerzielles Datenbanksystem verfugbar das die Anforderungen der temporalen Datenhaltung umfanglich abbilden wurde 1 Verwendung spatio temporaler DatenbankenDabei handelt es sich um Datenbanksysteme die neben der Unterstutzung zeitabhangiger Daten auch fur die Speicherung raumlicher Informationen ausgelegt sind Dabei liegt der Fokus aber auf der raumlichen Information Eingesetzt werden derartige Datenbanken beispielsweise im Bereich der Verkehrstelematik Abbildung in herkommlichen relationalen DatenbankenDa die Unterstutzung temporaler Datentypen auch in herkommlichen relationalen Datenbanksystemen gegeben ist konnen temporale Daten prinzipiell in derartigen 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 Objektdatenbanken Fur andere Datenbanksysteme insbesondere auch die objektorientierten Datenbanken besteht keine mit den relationalen Systemen vergleichbare Einheitlichkeit und Verbreitung so dass eine generelle Aussage uber die Abbildung temporaler Daten nicht moglich ist Dennoch lassen sich sicherlich die meisten der im Folgenden dargelegten Aspekte auch auf solche Datenbanken ubertragen Im folgenden Abschnitt werden allgemeine Eigenschaften temporaler Datenhaltung betrachtet die weitestgehend fur alle oben genannten Abbildungen gelten Anschliessend erfolgt eine detaillierte Erlauterungen der Abbildung temporaler Daten in herkommlichen relationalen Datenbanken Weitere Informationen zu den anderen Abbildungsvarianten finden sich unter Umstanden bei der Erlauterung der Datenbankmanagementsysteme selbst Begriffserlauterungen und Terminologie BearbeitenIm Folgenden werden die wichtigsten Begriffe in Bezug auf temporale Datenhaltung erlautert Diese Erlauterungen decken sich im Wesentlichen mit dem sogenannten Konsens Glossar siehe Weblinks Gultigkeitszeit und Transaktionszeit Bearbeiten Wie anfangs bereits erwahnt bezeichnet Gultigkeitszeit Valid Time den Zeitpunkt oder Zeitraum wann ein Sachverhalt im modellierten Abbild der realen Welt der Bezugswelt gilt Dabei konnen sowohl zukunftige als auch vergangene Zeitraume 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 Gultigkeitszeit kann sich die Transaktionszeit also niemals auf die Zukunft beziehen Ein interessantes Beispiel fur temporale Daten findet sich in der Datenbank von Wikipedia selbst in der eine Transaktionszeitstempelung der Artikel stattfindet 2 um die Versionen eines Artikels zu verschiedenen Zeitpunkten rekonstruieren zu konnen siehe Versionsliste dieses Artikels Sind sowohl Gultigkeits als auch Transaktionszeit relevant spricht man von bitemporaler Datenhaltung In diesem Zusammenhang ist auch zu beachten dass die Transaktionszeit vom System z B dem Datenbanksystem festgelegt werden kann die Gultigkeitszeit muss dagegen vom Benutzer angegeben werden Im Konsens Glossar existiert auch der Begriff der benutzerdefinierten Zeit User defined Time 3 Damit sollen anderweitige Zeitangaben die normale Attribute in der Datenbank darstellen wie z B ein Geburtsdatum von der temporalen Datenhaltung abgegrenzt werden Diese Bezeichnung ist unglucklich da ja auch die Gultigkeitszeit vom Benutzer festgelegt wird Als Schnappschuss Snapshot bezeichnet man die Betrachtung temporaler Daten zu einem fixierten Zeitpunkt fur die Gultigkeits und ggf auch die Transaktionszeit Meist bezieht sich ein solcher Schnappschuss auf die aktuelle Zeit Eine Datenbank ohne temporale Unterstutzung bietet ausschliesslich einen solchen Schnappschuss deshalb werden solche Datenbanken auch als Schnappschuss Datenbanken bezeichnet Zeitpunkte Zeitintervalle und Zeitdauern Bearbeiten Ein Zeitpunkt Instant stellt einen Punkt auf einer verwendeten Zeitachse dar Dabei konnen unterschiedliche Granularitaten Verwendung finden z B tagesgenau sekundengenau Zeitangaben konnen verankert fixiert oder unverankert sein Eine verankerte Zeitangabe bezieht sich auf einen konkreten Zeitpunkt oder ein konkretes Intervall in der Zeitskala Bei einer Zeitdauer handelt es sich um ein unverankertes Zeitintervall Zeitlich verankerte Intervalle werden auch als Perioden Time Period bezeichnet Der Begriff Intervall ohne zusatzliche Angabe ist in dieser Hinsicht missverstandlich vor allem auch deshalb weil in SQL der Begriff fur eine Zeitdauer verwendet wird Das kleinste mogliche Zeitintervall bei einer bestimmten Granularitat wird als Chronon 3 bezeichnet bei einem Datum ware das beispielsweise ein Tag Zeitstempelung Bearbeiten Als Zeitstempelung bezeichnet man die Erganzung eines Zeitbezugs zu einem Datenattribut oder einer Datenzeile in Verbindung mit relationalen Datenbanken auch als Tupel bezeichnet Dabei werden Gultigkeits Transaktions und bitemporale Zeitstempelung unterschieden Allgemein wird erst einmal nicht definiert wie dieser Zeitbezug technisch abgebildet ist Dabei kann es sich um eine einfache Zeitangabe handeln die die Gultigkeit zu einem einzigen konkreten Zeitpunkt ausdruckt Haufiger jedoch ist der Zeitbezug in Form eines Zeitintervalls abgebildet Die allgemeinste Form ist hierbei ein sogenanntes temporales Element 3 das eine Menge von ein oder mehreren Zeitintervallen darstellt Dieser Zeitbezug wird im Konsens Glossar auch als Zeitstempel Timestamp bezeichnet 3 Hierbei ist wichtig dass man dies hier nicht mit der herkommlichen Bedeutung dieses Begriffs verwechseln darf da es sich hier um eine wesentlich abstraktere Form eines Zeitstempels handelt Bei der Befullung von Zeitstempeln unterscheidet man explizite und implizite Zeitstempelung Bei der expliziten Zeitstempelung wird der Zeitstempel nicht durch das Datenbanksystem versorgt sondern muss explizit durch das Anwendungsprogramm oder durch die verwendete Architektur z B einem Datenbanktrigger versorgt werden Eine implizite Zeitstempelung gibt es nur bei echten temporalen Datenbanken dort ubernimmt das Datenbanksystem in der Regel diese Aufgabe Zu beachten ist dabei dass dies nur im Falle der Transaktionszeit vollstandig gekapselt ablaufen kann bei der Gultigkeitszeit muss die Angabe des Gultigkeitszeitraums auch explizit vorgegeben werden konnen temporale Datenbanken bieten hierbei aber oft spezielle Schnittstellen an und handhaben den Zeitstempel nicht als normales Attribut Tupel versus Attribut Zeitstempelung Bearbeiten Bei der Einfuhrung einer Zeitstempelung stellt sich die Frage auf welcher Ebene man diese erganzt Im Grunde genommen musste jedes Attribut das sich nicht synchron mit einem anderen verhalt fur sich allein versioniert das heisst mit einer eigenen Zeitstempelung versehen werden Dieses Vorgehen bezeichnet man als Attribut Zeitstempelung Der technische Verwaltungsaufwand fur eine Attribut Zeitstempelung ist jedoch beachtlich so dass man haufig alle Attribute einer Datenzeile eines Tupels gemeinsam versioniert obwohl die Attribute sich zeitlich nicht synchron verhalten Dies bezeichnet man als Tupel Zeitstempelung Die Entscheidung welches Verfahren man wahlt hangt vor allem von der Anderungshaufigkeit der einzelnen Attribute ab Typischerweise wird man Attribute mit hoher Anderungshaufigkeit eher fur sich alleine hingegen Attribute mit geringer Anderungshaufigkeit gemeinsam versionieren 4 Temporale Normalisierung Coalescing Bearbeiten Mit der Tupel Zeitstempelung handelt man sich aber zwangslaufig das Problem ein dass man bei Auswertungen die nur eines der gemeinsam versionierten Attribute auswerten aufeinander folgende Zeitraume erhalt bei denen sich die Attributwerte nicht unterscheiden Man hatte dann gern diese Zeitraume zusammengefasst Eine derartige Zusammenfassung wird als temporale Normalisierung bezeichnet auch Coalescing 3 Die Verwendung der Tupel Zeitstempelung ist aber nicht der einzige Grund warum man eine temporale Normalisierung benotigt Beispielsweise ist diese Normalisierung ebenfalls erforderlich wenn man bitemporale Daten nur separat nach der Gultigkeits oder der Transaktionszeit auswertet Ausserdem ist eine solche Zusammenfassung auch dann wunschenswert wenn man bei Auswertungen mehrere mit Zeitstempelung versehene Tupel verknupft Join Formal versteht man unter temporaler Normalisierung eine Zusammenfassung gleichartiger Attributwerte wann immer das gemass der zur Zeitstempelung verwendeten Datentypen moglich ist 5 Bei Verwendung von Zeitintervallen zur Zeitstempelung sind also aufeinanderfolgende Intervalle mit gleichen Attributwerten zusammenzufassen bei Verwendung von temporalen Elementen werden sogar alle Zeitraume zusammengefasst zu denen ein spezieller Attributwert auftritt Im folgenden Beispiel werden fur die Artikeldaten der Preis und der Ziellagerbestand gemeinsam versioniert Werden sowohl der Preis als auch der Ziellagerbestand fur sich alleine ohne Normalisierung ausgewertet wurde man vier einzelne Intervalle erhalten Durch die temporale Normalisierung lassen sich dabei je zwei Einzelintervalle zu einem zusammenfassen Artikeldaten Art nr Gultig ab Gultig bis Preis Ziellgrbst 4711 01 03 06 31 05 06 1 95 10004711 01 06 06 31 07 06 2 25 8004711 01 08 06 30 09 06 2 25 7504711 01 10 06 b a w 2 45 750 Preis pro Artikel normalisiert Art nr Gultig ab Gultig bis Preis4711 01 03 06 31 05 06 1 95 4711 01 06 06 30 09 06 2 25 4711 01 10 06 b a w 2 45 Ziellagerbestand pro Artikel normalisiert Art nr Gultig ab Gultig bis Ziellgrbst 4711 01 03 06 31 05 06 10004711 01 06 06 31 07 06 8004711 01 08 06 b a w 750Abbildung in herkommlichen relationalen Datenbanksystemen BearbeitenDie Abbildung temporaler Daten in herkommlichen relationalen Datenbanken ist moglich dennoch gibt es kein standardisiertes Vorgehen zur Umsetzung da dies sehr stark von den jeweiligen Anforderungen abhangig ist Die Komplexitatssteigerung und die Nachteile bei Abbildung temporaler Daten im Vergleich zu einer herkommlichen Schnappschuss Abbildung sind dabei erheblich so dass es auch diverse vereinfachende Abbildungen gibt die jeweils situationsabhangig moglich sind Mit der Unterstutzung temporaler Daten sind folgende Nachteile verbunden Das Datenvolumen steigt betrachtlich Unter Umstanden ist eine Bereinigungsfunktion notwendig die altere Daten archiviert oder loscht Der Zugriff auf den aktuellen Wert wird wesentlich komplexer Implementierungsaufwand Performance dies ist vor allem deshalb bedeutsam da dies in vielen Fallen die mit Abstand haufigste Form des Zugriffs ist Aus dem ER Modell ohne temporale Betrachtung abgeleitete Integritatsbedingungen konnen nicht mehr so ohne weiteres mittels der Definition von Primarschlusseln und Nutzung der referentiellen Integritat abgebildet werden Es ist somit nicht zweckmassig eine temporale Abbildung fur Daten zu unterstutzen fur die das aufgrund der Anforderungen nicht unbedingt notig ist Das bedeutet auch dass bei der grundsatzlichen Einfuhrung der Zeitabhangigkeit in ein Datenmodell nicht grundsatzlich alle Relationen umgestellt werden sollten Im Folgenden werden zunachst verschiedene konzeptionelle Aspekte bei einer vollwertigen Abbildung temporalen Daten dargelegt Abschliessend erfolgt zudem noch die Diskussion diverser vereinfachender Abbildungen Zeitstempelung Bearbeiten Zur Zeitstempelung werden im Regelfall Zeitintervalle verwendet Da es ein fixiertes Zeitintervall nicht als explizites Attribut in relationalen Datenbanken gibt sind hierfur zwei Zeitattribute z B vom Typ DATE oder TIMESTAMP in die Tabellendefinition aufzunehmen die den Beginn und das Ende des Zeitintervalls definieren im bitemporalen Fall jeweils separat fur Gultigkeits und Transaktionszeit Dabei gibt es zwei grundsatzliche Ansatze 6 Interval Representation Erganzung zweier Zeitangaben pro Datenzeile Beginn Ende Point Representation Erganzung nur einer Zeitangabe die den Beginn der Zeile definiert das Ende wird hierbei implizit durch den Beginn der zeitlich folgenden Zeile festgelegtBeide Ansatze haben ihre Vor und Nachteile Nachteile der Interval Representation Uberschneidende Zeilen konnen eingefugt werden ohne die Datenbankintegritat zu verletzen Es ist eine gesonderte Validierung erforderlich z B mittels Datenbanktriggern Es ist ein spezieller Wert zur Kennzeichnung einer unbefristeten Gultigkeit erforderlich Hierfur kann entweder NULL oder das minimal bzw maximal mogliche Datum verwendet werden siehe unten Bei einer Wertanderung ist zusatzlich zum Einfugen einer neuen Zeile ggf die Anpassung Terminierung der bisher gultigen Zeile erforderlich Nachteile der Point Representation Die Ermittlung der Daten zu einem speziellen Zeitpunkt i d R aktueller Zeitpunkt ist schwierig und benotigt eine Unterabfrage Subselect Das Ende der Gultigkeit oder Gultigkeitsunterbrechungen konnen nur dadurch abgebildet werden dass alle Datenattribute der Zeile leer NULL gesetzt werden Im bitemporalen Fall kann die Point Representation nicht fur beide Zeitdimensionen verwendet werden siehe Beispiel Bei der Interval Representation steht man zudem vor der Wahl ein geschlossenes oder ein rechtsseitig halboffenes Intervall zu verwenden d h das Ende selbst ist nicht mehr Bestandteil des Intervalls Dabei spricht vieles fur letztere Variante da sonst bei der Ermittlung auf Luckenlosigkeit der Intervalle immer ein Chronon zum Ende addiert werden musste was beispielsweise beim Datentyp TIMESTAMP datenbankunabhangig gar nicht moglich ist Das folgende Beispiel stellt die SQL Abfragen fur beide Varianten im Falle einer Gultigkeitszeitstempelung dar Dabei werden die aktuell gultigen Preise zu Artikeln identifiziert durch ArtNr ermittelt Der Gultigkeitsbeginn wird jeweils durch die Spalte GueltigAb ausgedruckt fur die Interval Representation wird das Gultigkeitsende durch UngueltigAb definiert es handelt sich also um ein rechtsseitig halboffenes Intervall Zudem wird im Falle eines unbefristeten Gultigkeitsendes unterstellt dass das maximal mogliche Datum eingetragen wird SELECT ArtNr Preis FROM Artikel AS a WHERE a GueltigAb lt CURRENT DATE AND a UngueltigAb gt CURRENT DATE SELECT ArtNr Preis FROM Artikel AS a WHERE a GueltigAb SELECT MAX GueltigAb FROM Artikel WHERE ArtNr a ArtNr AND GueltigAb lt CURRENT DATE Noch etwas aufwandiger gestaltet sich eine solche Abfrage im bitemporalen Fall Auch bei diesem Beispiel werden rechtsseitig halboffene Intervalle verwendet das Intervall der Transaktionszeit wird dabei durch ErfasstAm und GeloeschtAm definiert Bei der Point Representation ist zu beachten dass es nicht moglich ist auch fur die Transaktionszeit lediglich den Beginn des Intervalls als Attribut zu erganzen hier muss dann zumindest bei der Transaktionszeit ein Intervall verwendet werden damit eine sinnvolle Interpretation moglich ist Abweichend zu obigem Beispiel soll hier nun nicht der Wert zum aktuellen Datum ausgedruckt durch CURRENT DATE sondern zu vorgegebenen Zeitpunkten ermittelt werden ausgedruckt durch die Parameter VorgGueltigkeit und VorgDatenstand SELECT ArtNr Preis FROM Artikel AS a WHERE a GueltigAb lt VorgGueltigkeit AND a UngueltigAb gt VorgGueltigkeit AND a ErfasstAm lt VorgDatenstand AND a GeloschtAm gt VorgDatenstand SELECT ArtNr Preis FROM Artikel AS a WHERE a GueltigAb SELECT MAX GueltigAb FROM Artikel WHERE ArtNr a ArtNr AND GueltigAb lt VorgGueltigkeit AND ErfasstAm lt VorgDatenstand AND GeloeschtAm gt VorgDatenstand AND a ErfasstAm lt VorgDatenstand AND a GeloeschtAm gt VorgDatenstandIm obigen Beispiel ist anzumerken dass fur das Ende der Transaktionszeit unterstellt wird dass fur die derzeit gultige Zeile das maximal mogliche Datum eingetragen wird Haufig wird jedoch fur diesen Fall stattdessen NULL verwendet da dann die Abfrage auf derzeit gultig ungeloschte Daten einfacher ist GeloeschtAm IS NULL Komplizierter wird in diesem Fall aber die Abfrage auf vergangene Datenstande wie im obigen Beispiel Dort musste jeweils die Spalte GeloeschtAm durch folgendes Konstrukt ersetzt werden CASE WHEN GeloeschtAm IS NULL THEN 9999 12 31 ELSE GeloeschtAm END Dabei ist 9999 12 31 das maximal mogliche Datum dieser Wert ist allerdings abhangig vom verwendeten Datenbanksystem Bestimmen des Primarschlussels Bearbeiten In temporalen Relationen die Evolutionen von Objektzustanden ausdrucken ist es nicht moglich Tupel Datenzeilen zu identifizieren ohne die Zeitdimension einzubeziehen 7 Bei Verwendung der Point Representation fur die Zeitstempelung ist der normale Primarschlussel lediglich noch um das den Gultigkeitsbeginn definierende Attribut zu erweitern Fur das Beispiel des Artikels ware also neben der Artikelnummer noch der Gultigkeitsbeginn in den Primarschlussel aufzunehmen Bei Verwendung der Interval Representation bieten sich mehrere Alternativen an Hierbei kann entweder der Beginn oder das Ende des Intervalls in den Schlussel aufgenommen werden Bei dieser Entscheidung spielt noch eine Rolle welchen Wert man als Stellvertreter fur eine unbefristete Gultigkeit definiert 8 Der Primarschlussel einer Relation wird einerseits zur Sicherstellung der Eindeutigkeit definiert andererseits ist die Definition des Primarschlussels auch eine Optimierungsfrage da beim Zugriff auf die Daten dieser Schlussel als Index zur Suche der passenden Zeilen verwendet wird Insbesondere bei der Transaktionszeitstempelung wird haufig die derzeit aktuell gultige Zeile benotigt Dies ist die Zeile bei der das Gultigkeitsende unbefristet ist Dies wurde fur die Aufnahme des Gultigkeitsendes in den Primarschlussel sprechen Bei herkommlichen relationalen Datenbanksystemen ist NULL nicht als Primarschlusselspalte moglich deshalb kann das Gultigkeitsende nicht in den Schlussel aufgenommen werden wenn man diese Abbildungsvariante fur ein unbefristetes Gultigkeitsende wahlt Alternativ wurde sich dann die Verwendung des maximal moglichen Zeitwerts zur Festlegung eines unbefristeten Gultigkeitsendes anbieten Zu beachten ist weiterhin dass bei Verwendung der Interval Representation keine der Varianten eine Uberschneidungsfreiheit der Zeilen sicherstellt diese ist gesondert zu prufen Aus Grunden der Performance wird gelegentlich in temporalen Relationen statt des zusammengesetzten Schlussels ein zusatzliches Attribut als Surrogatschlussel kunstlicher Schlussels eingefuhrt um eine moglichst kurze Identifikation einer Datenzeile zu erhalten Bei vielen Datenbanksystemen besteht fur solche Surrogatschlussel die Moglichkeit der automatischen Vergabe eindeutiger Identifikationen Integritatsprufungen Bearbeiten Wie bereits erwahnt mussen Integritatsbedingungen die normalerweise uber die Eindeutigkeit des Primarschlussels oder die referentielle Integritat abgedeckt werden bei temporalen Daten anderweitig abgesichert werden Hierzu bieten sich folgende Varianten an Definition von Integritatsregeln Constraints oder Assertions Datenbanktrigger Datenbankprozeduren Stored Procedures Bereitstellung anderweitiger zentraler Funktionen fur Datenbank Aktualisierungen beispielsweise im Rahmen eines Frameworks die die erforderlichen Prufungen beinhalten Insbesondere bei Nutzung von Constraints und Datenbanktriggern kann sich die Problematik ergeben dass die Integritat wahrend einer aus mehreren Datenbankoperationen bestehenden Aktualisierung temporar verletzt sein kann und erst nach Durchfuhrung aller Datenbankoperationen fur einen Aktualisierungsfall wieder eingehalten wird Hierfur muss das Datenbanksystem die Moglichkeit bieten die Integritatsprufungen erst am Ende einer Transaktion durchzufuhren 9 Bei Verwendung der Interval Representation ist wie schon erwahnt die Prufung auf Uberschneidungsfreiheit der Zeilen zu einem Objekt erforderlich Im Folgenden eine beispielhafte SQL Abfrage die uberschneidende Eintrage fur Zeilen zu Artikeln identifiziert durch ArtNr aus einer Tabelle mit Namen Artikel liefert wobei das Gultigkeitszeitintervall durch GueltigAb und UngueltigAb ausgedruckt wird SELECT FROM Artikel AS x Artikel AS y WHERE x ArtNr y ArtNr AND x UngueltigAb gt y GueltigAb AND y UngueltigAb gt x GueltigAb AND Bedingung en zum Ausschluss derselben Zeile in x und y Letztere Bedingung ist erforderlich damit eine Zeile nicht als uberschneidend mit sich selbst diagnostiziert wird Wie genau die Bedingung zu formulieren ist hangt vom gewahlten Primarschlussel ab manche Datenbanksysteme unterstutzen hier spezielle Funktionen oder Datentypen zur Identifikation einer Tabellenzeile Wenn uber den Primarschlussel sichergestellt ist dass es zu einem Gultigkeitsbeginn jeweils nur einen Eintrag geben kann ist auch eine vereinfachte Prufung auf folgende Weise moglich SELECT FROM Artikel AS x Artikel AS y WHERE x ArtNr y ArtNr AND x UngueltigAb gt y GueltigAb AND y GueltigAb gt x GueltigAb Dieser Ansatz hat zudem den Vorteil dass die zwei Zeilen eines sich uberschneidenden Paares nur als eine Ergebniszeile geliefert werden nbsp Beispiel Katalogeintrag Dependent referenziert Artikel Parent Noch etwas aufwandiger gestaltet sich die Prufung der referentiellen Integritat im temporalen Sinn wenn sowohl die referenzierende Tabelle die Dependent Tabelle als auch die referenzierte Tabelle die Parent Tabelle eine Zeitstempelung aufweist Hierbei muss fur jede Zeile der Dependent Tabelle gepruft werden ob eine davor oder gleichzeitig beginnende zugehorige Parent Zeile existiert die sich mit dem Zeitraum der Dependent Zeile uberlappt eine danach oder gleichzeitig beendete zugehorige Parent Zeile existiert die sich mit dem Zeitraum der Dependent Zeile uberlappt und fur alle Zeilen der Parent Tabelle deren Gultigkeitsende im Zeitraum der jeweiligen Dependent Zeile liegt nicht mit ihm zusammenfallt immer ein direkter Nachfolger existiert keine Lucken wo es stort Nur wenn alle drei Bedingungen gegeben sind liegt keine Verletzung der Integritat vor 10 Im abgebildeten Beispiel referenzieren zwei Katalogeintrage Dependent den Artikel Parent Dabei existiert ein Katalogeintrag fur den Zeitraum 1 Marz 2006 bis 31 August 2006 sowie ein weiterer Katalogeintrag der ab dem 1 September 2006 gilt und einen derzeit aktuellen Katalogeintrag darstellt Fur die gesamten durch die Kalendereintrage benotigten Zeitraume muss sichergestellt sein dass der referenzierte Artikel existiert wobei in diesen Zeitraumen durchaus Preisanderungen des Artikels stattfinden der Preis scheint im Katalog nicht dargestellt zu werden Beide Katalogeintrage beziehen sich somit auf je zwei verschiedene Zeilen des Artikels In diesem Beispiel ist zu beachten dass die Tabelle Artikel sowohl den Preis als auch die Existenz des Artikels definiert d h dass der Artikel zur entsprechenden Zeit im Sortiment ist Vereinfachende Abbildungen Bearbeiten Als Alternative zu einer Transaktionszeitstempelung kann fur den Fall dass nur in sehr seltenen Fallen auf altere Daten zuruckgegriffen werden muss uber eine Protokollierung Logging der Datenbank Aktualisierungen die Rekonstruierbarkeit alterer Datenkonstellationen sichergestellt werden Fur die Implementierung eines derartigen Protokollierungsverfahrens ist jedoch die Nutzung zentraler Funktionen fur Datenbank Aktualisierungen notig Zudem sind Funktionen bereitzustellen die durch Auswertung des Protokolls alte Datenbankstande rekonstruieren Bei der Gultigkeitszeitstempelung ist es fur den Fall zyklischer Datenanderungen sinnvoll statt der ublicherweise verwendeten Intervalle zur Zeitstempelung direkt die Identifikation der Gultigkeitsperiode zu verwenden z B bei einem jahrlichen Anderungszyklus kann allein das Jahr als zusatzlicher Primarschlusselbestandteil verwendet werden Diese Vorgehensweise hat zudem den Vorteil dass die von einigen Datenbanksystemen zur Verfugung gestellten Konzepte der Partitionierung zur Steigerung der Effizienz verwendet werden konnen Falls die Temporalitat ausschliesslich dafur erforderlich ist zu dokumentieren mit welchen Datenstanden eine bestimmte Auswertungsfunktion ausgefuhrt wurde kann auch das Ausfuhrungsereignis selbst als Zeitstempel verwendet werden Zu beachten ist aber dass dieser Ansatz fragwurdig wird sobald zwei verschiedene derartige Auswertungsfunktionen existieren die gleichartige Datentypen einbeziehen Ein weiterer Ansatz zur Vereinfachung des Zugriffs auf die aktuellen Daten ist die Historie in separate Tabellen auszulagern Dies ist vor allem auch im Hinblick auf die Performance bei Zugriff auf die aktuellen Daten interessant Dieses Verfahren ist sowohl fur die Transaktions als auch die Gultigkeitszeit moglich fur letztere allerdings nur dann wenn keine zukunftig gultigen Daten zu erfassen sind Zudem ist der Preis relativ hoch da alle Relationen dupliziert werden mussen Archivierung und Bereinigung BearbeitenEine temporale Datenhaltung fuhrt zwangslaufig zu einem standigen Anwachsen des Datenvolumens da veraltete Daten ja absichtlich nicht aus der Datenbank entfernt werden Insofern ist es bei Einfuhrung einer temporalen Datenhaltung auf langere Sicht erforderlich sich Gedanken uber ein Verfahren zur Datenbankarchivierung zu machen um damit eine Bereinigung der operativen Datenbank zu ermoglichen Mogliche Varianten Bearbeiten Im Gegensatz zu nicht temporalen Daten ist eine Archivierung bei temporaler Datenhaltung nicht erforderlich um geloschte oder geanderte Zustande eines Objekts rekonstruieren zu konnen da dies durch die Verwendung einer Transaktionszeitstempelung ohnehin moglich ist Aus diesem Grund ist situationsabhangig als einfachste Variante eine Bereinigung Vacuuming der temporalen Datenbank ausreichend d h ein Loschen alterer nicht mehr erforderlicher Daten Allerdings ist auch hier erforderlich dass der Bereinigungsvorgang die Konsistenz der Datenbank aufrechterhalt was ein Hauptaspekt auch bei einer richtigen anwendungsorientierten Datenbankarchivierung ist Fur die anwendungsorientierte Datenbankarchivierung gibt es wiederum unterschiedliche Verfahren Ein hauptsachliches Klassifizierungsmerkmal dieser Varianten ist die Unterscheidung zwischen einem eigenstandigen und einem integrierenden Archiv Ein eigenstandiges Archiv stellt dabei selbst eine Datenbank dar die in sich konsistent ist und auf die bei Bedarf direkt zugegriffen werden kann Ein integrierendes Archiv dient hingegen lediglich dazu die Daten bei Bedarf in die operative Datenbank zuruckzuspielen Copy back oder Move back Kriterien zur Auslagerung Bearbeiten Es ist erforderlich moglichst eindeutige und nachvollziehbare Kriterien festzulegen die definieren wann ein Datenelement aus der operativen Datenbank entfernt wird Bei bitemporalen Datenbanken bietet sich hierbei zunachst die Transaktionszeit an d h beispielsweise alle Datensatze bei denen das Transaktionszeitende alter als ein festgelegter Stichtag ist werden aus der Datenbank entfernt und gegebenenfalls archiviert Die Verwendung der Transaktionszeit hat vor allem den Vorteil dass diese vom System vergeben wird und nicht vom Benutzer beeinflussbar ist somit ist es nicht moglich dass neu erfasste Daten sich auf einen Zeitraum beziehen der eigentlich schon ins Archiv ausgelagert wurde Die Verwendung der Transaktionszeit ist nicht moglich wenn nur die Gultigkeitszeit verwaltet wird Zudem ist es auch im bitemporalen Fall sicherlich haufig notig zusatzlich zur Transaktionszeit auch die Gultigkeitszeit als Kriterium zu verwenden Sicherstellung der Konsistenz Bearbeiten Der Bereinigungs und Archivierungsvorgang darf die Konsistenz der operativen Datenbank nicht gefahrden Fur den Fall eines eigenstandigen Archivs gilt dies auch fur die zur Archivierung verwendete Datenbank nbsp Beispiel Bereinigung der Datenbank zum Stichtag 1 Juli 2006Im Hinblick auf temporale Daten bedeutet dies folgendes Intervalle fur die Gultigkeits oder Transaktionszeit eines Objekts durfen sich nicht uberlappen Fur Beziehungen zwischen Objekten muss die referentielle Integritat auch im temporalen Sinn gewahrt bleiben siehe auch Integritatsprufungen Die Daten sollten temporal normalisiert sein d h es muss ggf ein Coalescing durchgefuhrt werden Beim Entfernen von Daten aus der operativen Datenbank ist dabei zur Sicherstellung der referentiellen Integritat unter Umstanden ein Zerschneiden von Intervallen erforderlich 11 Nebenstehendes Beispiel soll dies verdeutlichen In der Datenbank soll eine Auslagerung aller Daten erfolgen deren Gultigkeit vor dem 1 Juli 2006 liegt Dies bedeutet dass die Artikelversion mit dem Preis von 1 95 ganzlich aus der Datenbank entfernt werden kann Um nun aber die referentielle Integritat weiterhin zu gewahrleisten muss die Artikelversion zum Preis von 2 25 zerschnitten werden Gleiches gilt fur den Katalogeintrag Fruhjahr Sommer 2006 Wenn nun fur den Fall eines eigenstandigen Archivs die Integritat auch im Archiv gewahrt werden soll mussen genau die abgeschnittenen Gegenstucke der Intervalle im Archiv eingefugt werden Dies macht auch deutlich dass dann in der Archiv Datenbank nach jeder weiteren Archivierung ein Coalescing notwendig ist da ja bei einem nachsten Archivierungsvorgang die bei der vorangegangenen Archivierung abgeschnittenen Teile der Intervalle archiviert werden Am problematischsten in diesem Zusammenhang ist die Wiedereinlagerung insbesondere dann wenn die Wiedereinlagerung nur partiell und nicht ubergreifend fur einen gesamten Zeitraum durchgefuhrt wird und zudem die wieder eingelagerten Daten zugleich im Archiv belassen werden Copy back Dann sind einige Massnahmen zur Sicherstellung der Konsistenz zu ergreifen da dann beispielsweise auch Uberschneidungen zwischen den Zeitintervallen eines Objekts auftreten konnen Typische Anwendungsgebiete BearbeitenIm Folgenden eine Aufstellung von typischen Anwendungsfallen fur temporale Datenhaltung Diese Aufstellung erhebt allerdings keinen Anspruch auf Vollstandigkeit Data Warehouse Bearbeiten Bei einem Data Warehouse handelt es sich um eine Datenbank die vorrangig zur Analyse der Daten angelegt wurde und aus ein oder mehreren anderen Systemen meist operative Datenbanken gespeist wird Typischerweise wird dabei periodisch ein Datenimport zur Ubertragung der Daten der operativen Systeme in das Data Warehouse durchgefuhrt Bei einer solchen Konstellation bietet sich auch an die Erganzung der Zeitabhangigkeit beim periodisch durchgefuhrten Import der Daten zu erganzen Der Gultigkeitsbeginn ist dabei der Zeitpunkt des Imports Dies hat den Vorteil dass das operative System nicht mit der fur temporale Datenhaltung erforderlichen Komplexitat belastet wird zeitabhangige Auswertungen uber das Data Warehouse aber dennoch moglich sind Da der Import dabei in der Regel mit einem konstanten Zyklus z B monatlich durchgefuhrt wird mussen zur Zeitstempelung keine Intervalle verwendet werden sondern der Gultigkeitszeitraum kann mittels eines einzelnen Attributs identifiziert werden siehe auch vereinfachende Abbildungen Weiterhin kann dabei eine Dimensionstabelle fur die Zeit im Sinne des Sternschemas aufgebaut werden was Auswertungen im Rahmen des Online Analytical Processing OLAP ermoglicht Gehaltsabrechnung Bearbeiten Ein typischer Fall fur das Erfordernis bitemporaler Daten ist eine Gehaltsabrechnung Hierbei muss unter anderem die Zugehorigkeit eines Mitarbeiters zu einer Gehaltsgruppe zeitlich korrekt festgehalten werden Gultigkeitszeit Bei nachtraglicher Korrektur Transaktionszeit einer zugeordneten Gehaltsgruppe oder auch nur des Zuordnungszeitraums dieser Gruppe muss nachvollziehbar bleiben auf welcher Basis ein Abrechnungsvorgang operiert hat Risikomanagement im Bankenbereich Bearbeiten Insbesondere durch die Vorschriften die durch die Basel II Verordnung definiert werden mussen Kreditinstitute und Finanzdienstleister nachvollziehbar dokumentieren konnen auf Basis welcher Informationen z B Eigenkapital und Ratings welche Entscheidung getroffen wurde Dies erfordert eine umfassende Transaktionszeitstempelung teilweise auch eine bitemporale Abbildung Letzteres ist beispielsweise fur die Ratings eines Kreditnehmers erforderlich da zum einen festzuhalten ist zu welchem Zeitpunkt eine derartige Einschatzung von einer Ratingagentur vorgenommen wurde Bewertungsdatum Zum anderen muss aber auch dokumentiert werden wann diese neue Einschatzung dem Kreditinstitut bekannt und in den Datenbestand aufgenommen wurde Literatur BearbeitenC J Date Hugh Darwen Nikos A Lorentzos Time and Relational Theory Temporal Databases in the Relational Model and SQL 2 Auflage Morgan Kaufmann Waltham Massachusetts 2014 ISBN 978 0 12 800675 7 Tom Johnston Bitemporal Data Theory and practice Morgan Kaufmann Waltham Massachusetts 2014 ISBN 978 0 12 408055 3 Thomas Myrach Temporale Datenbanken in betrieblichen Informationssystemen Teubner Wiesbaden 2005 ISBN 3 519 00442 9 Richard T Snodgrass Christian S Jensen Developing Time Oriented Database Applications in SQL Morgan Kaufmann San Francisco 2000 ISBN 1 55860 436 7 arizona edu PDF 5 0 MB Weblinks BearbeitenKonsens Glossar Consensus Glossary of Temporal Database Concepts TimeCenter Achim Demelt Temporale Datenhaltung Memento vom 29 September 2004 im Internet Archive PDF 359 kB GUIDE Arbeitskreis Applikation Management Pragmatische Losungsansatze zur Modellierung von Zeitaspekten PDF 152 kB Management of Temporal DataEinzelnachweise Bearbeiten Myrach 2005 Seite 23 Revision Table MediaWiki Database Layout a b c d e Konsens Glossar Definition benutzerdefinierte Zeit Chronon temporales Element Timestamp Coalesce Myrach 2005 Seite 389 392 Myrach 2005 Seite 63 James Clifford Abdullah Uz Tansel On An Algebra For Historical Relational Databases Two Views In Shamkant B Navathe Hrsg Proceedings of the 1985 ACM SIGMOD International Conference on Management of Data ACM Press 1985 ISBN 0 89791 160 1 S 247 265 doi 10 1145 318898 318922 Myrach 2005 Seite 134 Bela Stantic John Thornton Abdul Sattar A Novel Approach to Model NOW in Temporal Databases PDF 167 kB 2003 abgerufen am 25 Juni 2010 Myrach 2005 Seite 158 164 173ff Snodgrass Jensen 1999 PDF 5 0 MB Seite 127ff Theorie und Praxis von bitemporalen Datenbanken und deren Archivierung Pfister 2005 Memento vom 28 September 2007 im Internet Archive Seite 68fff nbsp Dieser Artikel wurde am 11 Mai 2007 in dieser Version in die Liste der lesenswerten Artikel aufgenommen Abgerufen von https de wikipedia org w index php title Temporale Datenhaltung amp oldid 231059786