Was ist die Kernidee von Temporal Data?
Statt nur den aktuellen Zustand zu speichern, wird jede Version eines Datensatzes mit Zeitstempel gespeichert → Zeitreise durch die Daten wird möglich.
Nenne 4 typische Anwendungsfälle für temporale Daten.
Gehaltserhöhungen, Versicherungsänderungen, Preishistorie, Zinssätze
Was bedeutet Application Time?
Der Zeitraum, in dem ein Fakt in der realen Welt gültig war/ist.
Was bedeutet Transaction Time?
Der Zeitraum, in dem ein Fakt in der Datenbank gespeichert war/ist.
Was sind Bitemporal Data?
Daten, bei denen sowohl Application Time als auch Transaction Time gleichzeitig getrackt werden.
Was ist ein Snapshot in temporalen Datenbanken?
Temporale Daten zu einem bestimmten Zeitpunkt — eine Momentaufnahme.
Was ist Interval Representation?
Jede Zeile hat explizit valid_from UND valid_to gespeichert.
Was ist Point Representation?
Nur valid_from wird gespeichert; valid_to ergibt sich implizit aus dem nächsten Tupel.
Welches Risiko hat die Interval Representation?
Temporale Überlappungen — zwei Zeilen mit gleicher ID könnten gleichzeitig gültig sein.
Wie wird unendliche Gültigkeit in Interval Representation dargestellt?
Mit einem künstlichen Maximalwert, z.B. 9999-12-31.
Was ist der Nachteil der Point Representation?
Abfragen zu bestimmten Zeitpunkten sind schwierig; Lücken und Enden sind schwer darstellbar.
Welche Spalte eignet sich als Teil des Primary Keys bei Interval Representation?
valid_from ODER valid_to (z.B. PRIMARY KEY (item_id, valid_to)).
Welche Integrity Checks sind bei temporalen Tabellen nötig?
Vermeidung von Überlappungen, Vermeidung ungewollter Lücken, Sicherstellung referentieller Integrität.
Was ist Coalescing (Temporale Normalisierung)?
Aufeinanderfolgende Zeilen mit gleichen Attributwerten werden zu einem einzigen Intervall zusammengefasst.
Was ist Attribut-Splitting bei temporalen Daten?
Verschiedene Attribute mit unterschiedlichen Änderungshistorien werden in separate Tabellen aufgeteilt.
Nenne 3 Nachteile temporaler Tabellen.
Kapazität (mehr Datenvolumen), Komplexität (aufwändigere Abfragen), Modellierung (schwer in ER-Modellen abzubilden).
Was ist eine System-Versioned Temporal Table?
Eine SQL-Server-Tabelle, bei der die Versionshistorie automatisch vom DBMS verwaltet wird — bestehend aus Temporal Table (aktuell) und History Table (vergangen).
Was ist der Unterschied zwischen System-Versioned Tables und Application Time?
Bei System-Versioned Tables setzt das DBMS die Zeitstempel automatisch (Transaction Time); bei Application Time verwaltet die Anwendung die Gültigkeitszeiträume manuell.
Wie erstellt man eine System-Versioned Temporal Table?
Mit SYSTEM_VERSIONING = ON, zwei DATETIME2-Spalten mit GENERATED ALWAYS AS ROW START/END und PERIOD FOR SYSTEM_TIME.
Was passiert bei einem INSERT in eine System-Versioned Table?
SystemStartTime = Transaktionszeitpunkt, SystemEndTime = 9999-12-31. In die History Table kann nicht direkt eingefügt werden.
Was passiert bei einem UPDATE einer System-Versioned Table?
Temporal Table: neue Werte + neuer SystemStartTime. History Table: alter Zustand wird mit SystemEndTime = jetzt eingetragen.
Was passiert bei einem DELETE einer System-Versioned Table?
Temporal Table: Zeile wird entfernt. History Table: letzter Zustand bleibt mit SystemEndTime = jetzt erhalten.
Was macht FOR SYSTEM_TIME AS OF?
Gibt den gültigen Datensatz zum angegebenen Zeitpunkt zurück (Punkt-Abfrage).
Was ist der Unterschied zwischen FOR SYSTEM_TIME FROM…TO und BETWEEN?
FROM…TO: start < t2 AND end > t1 (exklusiv t2). BETWEEN: inklusiv t2.