- Temporale Datenbank
-
Als temporale Datenbank werden Datenbanksysteme bezeichnet, die eine Unterstützung zumindest einiger Aspekte der Speicherung zeitbezogener Daten bieten, die über die Unterstützung zeitbezogener Datentypen hinausgeht[1] und die somit für eine temporale Datenhaltung besonders geeignet sind.
Neben den temporalen Datenbanken gibt es auch noch die spatio-temporalen Datenbanken, die neben der zeitlichen auch noch eine räumliche Dimension abbilden, der Schwerpunkt bei diesen Datenbanken liegt aber im Regelfall auf der räumlichen Dimension.
Abgesehen von Teradata 13.10 existiert derzeit noch kein kommerzielles Datenbanksystem, das die Anforderungen der temporalen Datenhaltung umfänglich abbildet. Es existieren jedoch einige Entwürfe, die im Wesentlichen Erweiterungen relationaler Datenbanken darstellen. Insbesondere der in Arbeit befindliche zukünftige Standard SQL/Temporal, der ursprünglich als Teil des SQL-Standards SQL3 bzw. SQL:1999 vorgesehen war, soll die Ansätze der derzeit existierenden Entwürfe vereinen und eine umfassende Unterstützung zur Speicherung temporaler Daten bieten[2]. Allerdings ist die Standardisierung aufgrund von Meinungsverschiedenheiten ins Stocken geraten, und SQL/Temporal ist auch nicht im derzeit aktuellen Standard (SQL:2008) enthalten.
Inhaltsverzeichnis
Kriterien
Die folgenden Kriterien sind zur Einordnung temporaler Datenbanken hilfreich:
- Zeitdimension
Dabei wird zwischen Gültigkeitszeit (Zeitraum, in dem ein Objekt in der modellierten Realität den beschriebenen Zustand aufweist) und Transaktionszeit (Zeitpunkt, zu dem eine Datenänderung in der Datenbank erfolgt) unterschieden. Sind sowohl Gültigkeits- als auch Transaktionszeit relevant, spricht man von bitemporal. - Verwendeter Datentyp zur Zeitstempelung
Hier sind elementare Zeitangaben, Intervalle oder sogenannte temporale Elemente (eine Zusammenfassung beliebig vieler Intervalle) zu unterscheiden. - Explizite oder implizite Zeitstempelung
Hierbei wird unterschieden, ob der Zeitstempel implizit vom Datenbanksystem ergänzt wird oder explizit angegeben werden muss. - Tupel- oder Attribut-Zeitstempelung
Es ist zu unterscheiden, ob die Zeitstempelung für jedes Attribut einzeln oder für eine gesamte Datenzeile (Tupel) erfolgt. - Automatische temporale Normalisierung (Coalescing)
Manche Datenbanksysteme führen nach entsprechenden Aktualisierungsoperationen automatisch eine Zusammenfassung von Zeiträumen mit übereinstimmenden Attributwerten durch.
Konzepte temporaler Datenbanken
Im folgenden werden wesentliche derzeitige Konzepte temporaler Datenbanken kurz dargelegt. Diese Aufstellung erhebt aber keinen Anspruch auf Vollständigkeit.
IXSQL
Zeitdimension Gültigkeitszeit Datentyp zur Zeitstempelung Intervall Zeitstempelung explizit/implizit explizit Tupel- oder Attributzeitstempelung Tupel Automatisches Coalescing Nein Das Interval Extended Relational Model (IXRM) und die darauf basierende Sprache IXSQL ist eine Erweiterung von SQL um eine umfassende Unterstützung von Intervalldaten, die sich nicht notwendigerweise ausschließlich auf temporale Intervalle beziehen müssen. Damit unterscheidet es sich grundlegend von den anderen hier vorgestellten Konzepten temporaler Datenbanken. IXSQL ist dabei aufwärtskompatibel zu SQL92.
Die wichtigsten Erweiterungen gegenüber SQL92 sind neben dem Intervall-Datentypen die Operationen FOLD („Zusammenfalten“) bzw. UNFOLD („Auffalten“). Dabei bewirkt UNFOLD eine Zerlegung eines Intervalls in eine Menge einzelner Punktwerte. FOLD ist die gegenteilige Operation - dabei wird eine Menge einzelner Punktdaten wieder zu Intervallen zusammengefasst - und bewirkt somit eine temporale Normalisierung für die betroffenen Attribute.
TSQL2
Zeitdimension bitemporal Datentyp zur Zeitstempelung Temporales Element Zeitstempelung explizit/implizit implizit Tupel- oder Attributzeitstempelung Tupel Automatisches Coalescing Ja Die Sprache TSQL2 wurde von einer größeren Gruppe von Forschern entwickelt und basiert auf dem Bitemporal Conceptual Data Model (BCDM). Auch TSQL2 ist aufwärtskompatibel zu SQL92.
Das BCDM verwendet bitemporale Elemente zur Zeitstempelung, d. h., alle Tupel mit gleichen Attributwerten können immer zu einer einzigen Zeile zusammengefasst werden, da der bitemporale Zeitstempel die Vereinigungsmenge aller relevanten Zeitintervalle jeweils aufnehmen kann. Außerdem erfolgt die Zeitstempelung implizit, d. h., bei den Zeitstempeln handelt es sich um keine „normalen“ Attribute, die direkt beeinflussbar sind. Ein weiteres besonderes Merkmal des BCDM ist, dass diese Zusammenfassung von Tupeln mit gleichartigen Attributwerten (Coalescing) automatisch erfolgt.
Um auch zeitlich verankerte Intervalle abbilden zu können, existiert in TSQL2 der Datentyp PERIOD. In Verbindung mit diesem Typ werden auch zusätzliche spezielle Vergleichsoperatoren eingeführt (MEETS, PRECEDES, OVERLAPS und CONTAINS).
ATSQL2
Zeitdimension bitemporal Datentyp zur Zeitstempelung Intervall Zeitstempelung explizit/implizit explizit Tupel- oder Attributzeitstempelung Tupel Automatisches Coalescing Nein Im Unterschied zu den anderen hier vorgestellten Konzepten stützt sich ATSQL2 nicht auf ein spezielles Datenbanksystem ab, sondern fungiert als Frontend eines herkömmlichen relationalen Datenbanksystems. Dabei werden beispielsweise Oracle und Sybase unterstützt.
Die von ATSQL2 verwendete Sprachsyntax ist an TSQL2 angelehnt. Jede Datenbank-Anweisung wird dabei in eine oder mehrere SQL92-Anweisungen umgewandelt.
Ein weiterer wesentlicher Unterschied von ATSQL2 zu den anderen vorgestellten Konzepten ist, dass es mit TimeDB bereits einen funktionsfähigen Prototypen gibt (siehe Weblinks).
Siehe auch
Einzelnachweise
- ↑ Consensus Glossary of Temporal Database Concepts
- ↑ Snodgrass, Böhlen, Jensen, Steiner: Transitioning Temporal Support in TSQL2 to SQL3, 1998
Literatur
- Thomas Myrach: Temporale Datenbanken in betrieblichen Informationssystemen; Teubner Verlag; Wiesbaden 2005; ISBN 3-519-00442-9
Weblinks
- Zeitdimension
Wikimedia Foundation.