<< >> Up Title Contents Index

Erzeugen von Snapshot-Tabellen

Eine View-Tabelle, wie sie im vorhergehenden Kapitel vorgestellt wurde, bietet eine logische Sicht auf Daten, die physisch in einer Basistabelle gespeichert sind. Eine Snapshot-Tabelle wird ähnlich beschrieben wie eine View, bietet aber die Möglichkeit, Teildatenbestände aus einer Basistabelle als Kopien zu erzeugen.

Es wird - wie der englische Name Snapshot besagt - ein "Schnappschuß" eines beschriebenen Ausschnitts einer Tabelle angelegt, der auch physisch als Datenbestand erzeugt wird.

Veränderungen in der dem Snapshot zugrundeliegenden Tabelle werden nicht automatisch für den Snapshot mitgezogen, können aber asynchron nachgetragen werden. Dies erfolgt entweder durch Kopieren der gesamten betroffenen Daten oder mit Hilfe des sogenannten Snapshot-Logs, der dabei als Änderungsprotokoll dient. Die Ausführung der Veränderungen wird durch die REFRESH-Anweisung angestoßen.

In Snapshot-Tabellen kann nur selektiert werden. INSERT-, UPDATE- oder DELETE-Anweisungen sind nicht möglich.

Ein Ausschnitt aus der Kundentabelle soll in einer Snapshot-Tabelle festgehalten werden; und es wird für die Tabelle ein Snapshot-Log angelegt:

CREATE SNAPSHOT snap1 AS
       SELECT knr,nachname,vorname,ort
              FROM kunde

CREATE SNAPSHOT LOG ON kunde

Es findet nun eine Veränderung der zugrundeliegenden Kundentabelle statt, indem alle Berliner Kunden aus der Tabelle entfernt werden.

DELETE FROM kunde
       WHERE ort = 'Berlin'

Ein anschließend auf die Snapshot-Tabelle abgesetztes SELECT führt weiterhin zu folgendem Ergebnis:

Das Kommando

REFRESH SNAPSHOT snap1

bewirkt, daß die für 'kunde' ausgeführte Änderung nun auch in der Tabelle 'snap1' nachgezogen wird.

SELECT * from snap1


<< >> Up Title Contents Index