Zum Inhalt springen

Slowly Changing Dimensions

aus Wikipedia, der freien Enzyklopädie

Unter dem Begriff Slowly Changing Dimensions (englisch für „sich langsam verändernde Dimensionen“) werden im Data-Warehousing Methoden zusammengefasst, um Änderungen in Dimensionstabellen zu erfassen und gegebenenfalls historisch zu dokumentieren. Im Wesentlichen unterscheidet man vier Verfahren, die nach Kimball in Typen unterteilt werden, und zusätzlichen Hybridvarianten.[1][2] Allen gemein ist, dass vorhandene Datensätze über den Primärschlüssel mit neuen Datensätzen verbunden werden, um Änderungen in der Tabelle zu speichern.

Typ 0 – Dauerhafte Speicherung des ursprünglichen Wertes

[Bearbeiten | Quelltext bearbeiten]

Der Typ 0 wird ein einmal erfasster Wert dauerhaft gespeichert und niemals verändert, auch wenn sich der Wert in der Quelle ändert. Dieses Vorgehen eignet sich für Angaben, die grundsätzlich nicht ändern sollen.

Beispiel ist das Geburtsdatum einer Person oder das Gründungsjahr einer Firma.

Typ 1 – Überschreiben ohne Historie

[Bearbeiten | Quelltext bearbeiten]

Bei Typ 1 wird ein geänderter Wert direkt überschrieben. Es wird nur der aktuellste Zustand gespeichert. Eine Historie früherer Werte entsteht nicht.

In einer Tabelle nach SCD Typ 1 wird das Betriebsergebnis (Gewinn) der Firma Apple gespeichert, das quartalsweise berichtet wird. Eine Abfrage am 15. April 2025 liefert folgendes Ergebnis:

ID (PK) Firma Betriebsergebnis
AAPL Apple 42 000

Am 1. Mai 2025 veröffentlicht Apple die neuen Quartalszahlen. Der bestehende Eintrag wird dabei mit den aktuellen Werten überschrieben:

ID (PK) Firma Betriebsergebnis
AAPL Apple 29 000

Auf diese Weise wird stets nur der aktuellste Wert vorgehalten. Eine Historie früherer Werte lässt sich nicht nachvollziehen.

Typ 2 – Historisierung durch neue Datensätze

[Bearbeiten | Quelltext bearbeiten]

Bei Typ 2 wird ein geänderter Wert nicht überschrieben, sondern als neuer Datensatz in der Tabelle hinzugefügt. Der alte Datensatz bleibt erhalten, sodass die vollständige Änderungshistorie nachvollziehbar ist.

Da der ursprüngliche Schlüssel mehrfach vorkommt, kann er nicht mehr der Primärschlüssel sein. Stattdessen wird ein künstlicher Ersatzschlüssel (surrogate key) eingeführt. Zusätzliche Spalten kennzeichnen den Gültigkeitszeitraum jedes Datensatzes. Häufig wird der der aktuelle Eintrag zusätzlich durch ein Kennzeichen (Flag) markiert.

In einer Tabelle nach SCD Typ 2 wird wieder das Betriebsergebnis (Gewinn) der Firma Apple gespeichert.

ID (PK) Ticker Firma Betriebsergebnis Gültig Ab Gültig Bis Aktuell
1 AAPL Apple 42 000 2025-01-01 9999-12-31 ja

Diese sieht nach der Veröffentlichung der Quartalszahlen am 1. Mai 2025 dann so aus:

ID (PK) Ticker Firma Betriebsergebnis Gültig Ab Gültig Bis Aktuell
1 AAPL Apple 42 000 2025-01-01 2025-04-30 nein
2 AAPL Apple 29 000 2025-05-01 9999-12-31 ja

Beachte die zusätzlichen Spalten für den Gültigkeitszeitraum. Für den aktuellen Datensatz wird für das Feld „Gültig Bis“ typischerweise ein Wert für Unendlich verwendet, z. B. 31. Dezember 9999 oder 31. Dezember 3000.

Der Vorteil hier ist die lückenlose Historie. Nachteil ist eine größere Tabelle und eine aufwendigere Abfrage, da für den aktuellen Wert stets nach dem gültigen Datensatz gefiltert werden muss.

Typ 3 – Historisierung durch zusätzliche Spalten

[Bearbeiten | Quelltext bearbeiten]

Bei Typ 3 wird die Tabelle verbreitert. Der Datensatz bleibt bei einer Änderung bestehen, aber es wird der vorherige Wert in einer eigenen Spalte gespeichert.

In einer Tabelle nach SCD Typ 3 wird wieder das Betriebsergebnis (Gewinn) der Firma Apple gespeichert.

ID (PK) Firma Betriebsergebnis (aktuell) Betriebsergebnis (vorher)
AAPL Apple 29 000 42 000

Auf diese Weise lässt sich eine begrenzte Anzahl von früheren Zuständen abbilden. Ältere Änderungen gehen jedoch verloren, sobald erneut überschrieben wird. SCD Typ 3 eignet sich daher vor allem, wenn nur ein kurzer Rückblick benötigt wird, wie hier im Beispiel auf das Vorquartal.

Typ 4 – Historisierung in einer separaten Tabelle

[Bearbeiten | Quelltext bearbeiten]

Bei Typ 4 werden aktuelle und historische Daten auf zwei Tabellen aufgeteilt. Die Haupttabelle enthält ausschließlich den aktuellsten Wert, während frühere Zustände in einer eigenen Historientabelle nach SCD Typ 2 abgelegt werden.

Wir erweitern das Beispiel um einen weiteren Zeitraum. Am 31. Juli 2025 veröffentlichte Apple seine Quartalszahlen und nun sieht die Haupttabelle so aus:

Quartalszahlen
ID (PK) Firma Betriebsergebnis Gültig Ab
AAPL Apple 28 000 2025-07-31

und die entsprechende Historientabelle:

Quartalszahlen_historie
ID (PK) Ticker Firma Betriebsergebnis Gültig Ab Gültig Bis
1 AAPL Apple 42 000 2025-01-01 2025-04-30
2 AAPL Apple 29 000 2025-05-01 2025-07-30

Vorteil von SCD Typ 4 ist, dass Abfrage auf den aktuellen Stand schnell bleiben, da die Haupttabelle klein bleibt. Die vollständige Historie steht bei Bedarf getrennt zur Verfügung. Nachteil ist der höhere Pflegeaufwand, da bei jeder Änderung beide Tabellen konsistent aktualisiert werden müssen.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Ralph Kimball, Margy Ross: The Data Warehouse Toolkit. The Complete Guide to Dimensional Modeling. 2. Auflage. John Wiley & Sons, New York u. a. 2002, ISBN 0-471-20024-7
  2. ↑ Margy Ross: Design Tip #152 Slowly Changing Dimension Types 0, 4, 5, 6 and 7. In: Kimball Group. 5. Februar 2013, abgerufen am 29. Juli 2026 (amerikanisches Englisch).