5 Allgemeine Datenmodelle
5 Allgemeine Datenmodelle
5 Allgemeine Datenmodelle
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5 <strong>Allgemeine</strong> <strong>Datenmodelle</strong><br />
Ziel der Datenmodellierung ist immer, ein Abbild der Realität in einer<br />
datentechnisch darstellbaren Form zu schaffen. Die einzelnen Formen<br />
der Abbildung unterscheiden sich hinsichtlich Realitätsnähe, Einfachheit<br />
und Performance. Diese Ziele sind einander entgegengesetzt, so<br />
dass die unterschiedlichen Modelle eine unterschiedlich starke Fokussierung<br />
auf die einzelnen Zielrichtungen legen und es nicht »das beste<br />
Datenmodell« geben kann. Jedes Modell verfügt über spezifische Vorzüge,<br />
so dass der Aufbau eines Datenmodells nur in Abhängigkeit von<br />
den betrieblichen Anforderungen erfolgen kann.<br />
Nachfolgend wird zunächst auf die Grundlagen für die Entwicklung<br />
von <strong>Datenmodelle</strong>n eingegangen. Anschließend werden die gängigsten<br />
Modelle erläutert, die bei der Modellierung von Data-Warehouse-Systemen<br />
zum Einsatz kommen. Dies sind<br />
■ Transaktionale Strukturen<br />
■ Flache Strukturen<br />
■ Star-Schema<br />
■ Snowflake-Schema.<br />
5.1 Grundlagen der Datenmodellierung<br />
Das Ziel jedes Datenmodells ist die Abbildung eines bestimmten Ausschnittes<br />
der Realität. Die klare Definition dieses Ausschnittes charakterisiert<br />
jedes Data Warehouse und grenzt es von anderen Systemen<br />
wie zum Beispiel Dokumenten-Management-Systemen oder Web-Content-Systemen<br />
ab.<br />
Dabei handelt es sich um nicht volatile (nicht veränderliche)<br />
Daten, die ab dem Zeitpunkt der Übernahme ins Data Warehouse<br />
nicht (oder nur geringfügig) verändert werden und zur Analyse und<br />
47
48<br />
5 <strong>Allgemeine</strong> <strong>Datenmodelle</strong><br />
Entscheidungsfindung verwendet werden sollen, also nicht für den<br />
operativen Geschäftsbetrieb.<br />
Bestandteil der Datenmodellierung sind Fakten, die sich in Form<br />
quantifizierbarer Größen (Kennzahlen) ausdrücken lassen und in eine<br />
Beziehung zu gruppierenden Größen (Merkmale, Attribute) gestellt<br />
werden können.<br />
5.1.1 Merkmale<br />
Merkmale sind Bezugsgrößen mit betriebswirtschaftlicher Bedeutung<br />
(zum Beispiel Kunde, Produkte, Werke oder Sachkonten), nach denen<br />
eine sinnvolle Gruppierung von Kennzahlen möglich ist (Umsatz pro<br />
Kunde, Produktionskosten der Produkte A bis G, durchschnittliche<br />
Lieferzeit aller Werke und so weiter).<br />
5.1.2 Attribute<br />
Bei Attributen handelt es sich um Merkmale, die von anderen Merkmalen<br />
abhängig sind. Dies ist zum Beispiel bei der Postleitzahl (Abhängigkeit<br />
vom Kunden) oder bei Produkteigenschaften (Abhängigkeit<br />
vom Material) der Fall.<br />
Die Abhängigkeit der Attribute von Merkmalen wird immer dann<br />
gestört, wenn sie sich im Zeitverlauf ändern. Dies wäre zum Beispiel<br />
der Fall, wenn sich die Adresse eines Kunden ändert oder Produkteigenschaften<br />
verändert werden.<br />
Während OLTP-Systeme zwingend auf aktuelle Attribute angewiesen<br />
sind, stellt sich beim Data Warehousing die Situation anders dar,<br />
da auch andere Möglichkeiten sinnvoll sein können, um derartige Veränderungen<br />
von Attributen im Zeitverlauf darzustellen.<br />
Diese Historisierung von Attributen kann im Datenmodell auf drei<br />
unterschiedlichen Wegen nachvollzogen werden:<br />
■ Aktuelle Darstellung: Attribute werden immer so ausgeprägt, wie<br />
sie sich zum Zeitpunkt des Reportings darstellen. Dabei ist es<br />
unabhängig, ob Daten des aktuellen Monats oder Vorjahresdaten<br />
analysiert werden.<br />
■ Stichtagsbezogene Darstellung: Alle Attribute werden im Reporting<br />
so dargestellt, wie sie sich zu einem festgelegten Stichtag dargestellt<br />
haben. Diesen Stichtag legt der Benutzer in der Regel selbst<br />
vor der Ausführung der Analyse fest.
5.1 Grundlagen der Datenmodellierung<br />
■ Historisierte Darstellung: Attribute werden immer so dargestellt,<br />
wie sie sich zum Bezugszeitraum des Reportings dargestellt haben.<br />
So werden Daten des Vorjahres mit den Attributen dargestellt, die<br />
im Vorjahr aktuell waren, während Daten des Vormonats im gleichen<br />
Bericht mit den Attributen dargestellt werden, die im Vormonat<br />
aktuell waren.<br />
Diese drei Möglichkeiten zur Historisierung von Attributen stellen<br />
sehr unterschiedliche Anforderungen an ein Datenmodell. Je nach<br />
Datenmodell werden unterschiedliche Historisierungen von Stammdaten<br />
unterstützt.<br />
5.1.3 Kennzahlen<br />
Kennzahlen sind quantifizierende Größen, mit denen mathematische<br />
Operationen möglich sind. Kennzahlen sind nur dann sinnvoll zu<br />
benutzen, wenn ihnen entsprechende Bezugsgrößen (Merkmale) zugeordnet<br />
werden. So erfordert die Angabe eines Umsatzes zum Beispiel<br />
immer die Angabe eines Zeitraumes, eines Kunden, eines Produktes<br />
oder Ähnliches.<br />
Im Rahmen der Datenanalyse werden Kennzahlen entweder mit<br />
Hilfe arithmetischer Operationen zusammengefasst (Summierung,<br />
Durchschnittsbildung, MIN/MAX-Werte etc.) oder sie dienen zur<br />
Berechnung weiterer Kennzahlen (zum Beispiel prozentuale Veränderungen,<br />
Differenzen etc.)<br />
Bei Analysen im BW werden Kennzahlen immer in Verbindung mit<br />
Merkmalen verwendet und umgekehrt. Die Verwendung von Kennzahlen<br />
ohne Merkmale oder umgekehrt ist in der Betrachtungsweise<br />
eines Data Warehouse nicht sinnvoll.<br />
5.1.4 Status Tracking<br />
Status Tracking beschreibt die Abbildung belegnaher Informationen in<br />
einem Datenmodell, zum Beispiel die Speicherung von Auftragsdaten.<br />
Ebenso wie bei der Historisierung von Attributen erhält die Aktualisierung<br />
auftragsbezogener Daten eine besondere Bedeutung.<br />
Ändert sich im OLTP-System zum Beispiel der Auftragsstatus (dieser<br />
ist im Datenmodell abhängig von der Auftragsnummer), so muss<br />
sich auch der Auftragsstatus im Datenmodell des Data Warehouse<br />
ändern. Im Unterschied zu Kennzahlen können die Informationen<br />
jedoch nicht auf einer aggregierten Ebene abgelegt werden, sondern<br />
müssen auf derselben Detaillebene gespeichert werden wie im OLTP-<br />
System.<br />
49
50<br />
Abb. 5–1<br />
Transaktionales<br />
Datenmodell<br />
5 <strong>Allgemeine</strong> <strong>Datenmodelle</strong><br />
5.2 Transaktionale Strukturen<br />
Transaktionale Strukturen dienen dazu, Daten eines OLTP-Systems in<br />
einer relationalen Datenbank zu speichern. Diese Strukturen werden<br />
dabei vor allem für die Speicherung von Daten auf einer atomaren<br />
Ebene 1 , zur Vermeidung von Redundanzen 2 und für den schnellen<br />
Zugriff auf einzelne Transaktionsdaten benötigt.<br />
Zu diesem Zweck werden die Daten in der Regeln in der dritten<br />
Normalform abgelegt, welche diese Anforderungen erfüllt (siehe<br />
Abbildung 5–1).<br />
Frühe OLAP-Tools haben für die Analyse direkt auf die Transaktionsdaten<br />
in OLTP-Systemen zurückgegriffen. da ihnen keine andere<br />
Datenbasis zu Verfügung stand. Dies bringt jedoch zwei gravierende<br />
Nachteile mit sich: Schlechte Performance und eingeschränkte<br />
betriebswirtschaftlichen Analysemöglichkeiten.<br />
Die schlechte Performance transaktionaler Strukturen ist dadurch<br />
bedingt, dass analytische Anwendungen in der Regel keinen Nutzen<br />
aus einzelnen Transaktionen gewinnen können, sondern eine übergreifende<br />
Information zu mehreren Transaktionen benötigen.<br />
In einem transaktionalen Datenmodell würde jedoch eine Abfrage,<br />
welchen Umsatz ein Unternehmen in den letzten zwei Jahren erbracht<br />
hat, das Lesen sämtlicher Transaktionen der letzten zwei Jahre mit sich<br />
bringen, was mitunter mehrere Stunden, Tage oder gar Wochen dauern<br />
könnte – und das, obwohl diese genaue Detaillierungstiefe gar nicht<br />
benötigt wird.<br />
1. Die atomare Ebene beschreibt die Speicherung von Informationen auf dem<br />
Detaillierungsgrad einzelner Transaktionen (zum Beispiel einer Auftragsposition).<br />
2. Zum Beispiel durch einmaliges Vorhalten von Stammdaten in der aktuellsten<br />
Form.
5.3 Flache Strukturen<br />
Des Weiteren würden die OLTP-Systeme mit Analysen belastet<br />
werden, für die sie ursprünglich nicht entworfen wurden.<br />
Neben den Performance-Problemen haben transaktionale Strukturen<br />
den Nachteil, dass sie ausschließlich die aktuelle Darstellung von<br />
Attributen unterstützen.<br />
Aus diesen Gründen werden die Daten der OLTP-Systeme in<br />
modernen Data-Warehouse-Systemen nur noch genutzt, um Informationen<br />
einmalig auszulesen und in spezielle <strong>Datenmodelle</strong> zu transformieren,<br />
die eher für analytische Anwendungen geeignet sind (Flache<br />
Strukturen, Star-Schema, Snowflake-Schema).<br />
5.3 Flache Strukturen<br />
Flache Tabellenstrukturen sind die »Urform« der OLAP-spezifischen<br />
<strong>Datenmodelle</strong>. Sie stellen den ersten Anfang dar, analytische Daten<br />
von operativen (transaktionalen) Daten zu trennen und bieten damit<br />
die Möglichkeit, Daten in einer aggregierten Form zu speichern, so<br />
dass Analysen je nach Aggregationsstufe auf eine stark verkleinerten 3<br />
Datenbasis zugreifen können. Abbildung 5–2 verdeutlicht dies.<br />
Während transaktionale Strukturen normalisiert sind (zum Teil bis zur<br />
dritten Normalform), werden flache Strukturen bewusst denormalisiert,<br />
um die Datenbasis auf einer höheren Aggregationsstufe und in<br />
einer einfacheren Form abzubilden. Dies stellt aus analytischer Sicht<br />
bereits eine Verbesserung gegenüber transaktionalen Strukturen dar,<br />
jedoch werden sie aufgrund einiger Nachteile in der Regel nicht mehr<br />
als Datenbasis für OLAP-Anwendungen genutzt:<br />
3. Bitte beachten Sie immer: Die Summe aller Kennzahlen bleibt auch nach der<br />
Aggregation gleich, vermindert wird lediglich die Detaillierungstiefe!<br />
Abb. 5–2<br />
Flaches Datenmodell<br />
51
52<br />
5 <strong>Allgemeine</strong> <strong>Datenmodelle</strong><br />
■ Sämtliche Merkmale müssen als Tabellenschlüssel abgelegt werden.<br />
Mit den so entstehenden sehr langen Schlüsseln ergeben sich bei<br />
relationalen Datenbanksystemen häufig Performance-Nachteile.<br />
■ Die Anzahl der Felder in Tabellen werden durch das Datenbanksystem<br />
begrenzt, so dass unter Umständen nicht alle Anforderungen<br />
erfüllt werden können.<br />
■ Es ist ausschließlich eine historisierte Darstellung von Attributen<br />
möglich.<br />
■ Änderung des Datenmodells machen einen aufwändigen Neuaufbau<br />
der gesamten Tabelle notwendig.<br />
Flache Strukturen werden in Data-Warehouse-Systemen heute vor<br />
allem noch zum Austausch von Daten zwischen Systemen und im<br />
Bereich des Staging eingesetzt. Gerade beim Datenaustausch kommt<br />
der Vorteil der flachen Strukturen zum Tragen, dass sie nicht auf relationale<br />
Datenbanken angewiesen sind und ebensogut auch als (Text-<br />
)Dateien abgelegt werden können.<br />
Im BW werden flache Strukturen in allen Bereichen verwendet, die<br />
für einen Datenaustausch zuständig sind (Extraktion von Daten aus<br />
Quellsystemen, Staging), da diese Form des Datenaustauschs am einfachsten<br />
und performantesten zu realisieren ist. Dabei werden die<br />
Daten bei Bedarf auch aus ihren jeweiligen <strong>Datenmodelle</strong>n in flache<br />
Strukturen transformiert.<br />
5.4 Star-Schema<br />
Das Star-Schema bietet aus analytischer Sicht die selben Leistungsmerkmale<br />
wie flache Strukturen, das heißt eine historisierte Darstellung<br />
von Attributen. Allerdings hat das Star-Schema nicht die Nachteile<br />
flacher Strukturen bezüglich der Performance, da es speziell auf<br />
die Leistungsmerkmale relationaler Datenbanken abgestimmt ist und<br />
die Daten auf mehrere Tabellen aufteilt. Dabei bleibt das Datenmodell<br />
denormalisiert wie in der flachen Struktur.<br />
Das Star-Schema setzt sich aus einer zentralen Faktentabelle und<br />
mehreren damit relational verbundenen Dimensionstabellen zusammen.<br />
Die relationale Verbindung zwischen Faktentabelle und Dimensionstabellen<br />
wird mittels künstlicher Schlüssel (Surrogate Keys) abgebildet.<br />
Bei entsprechender grafischer Darstellung erinnert das Datenmodell<br />
an einen Stern, was den Namen dieses Modells erklärt (siehe<br />
Abbildung 5–3).
5.4 Star-Schema<br />
Die Faktentabelle nimmt ausschließlich Kennzahlen und die Schlüsselfelder<br />
für die Dimensionen auf. Dabei wird es möglich, Schlüssel mit<br />
möglichst wenigen und kurzen Feldern (in der Regel 4 Byte) einzusetzen,<br />
was eine bessere Performance für die Datenbank ermöglicht.<br />
Zugriffe auf die Faktentabelle erfolgen normalerweise immer in<br />
Verbindung mit einer oder mehreren Dimensionstabellen, deren<br />
Schlüsselfelder den Zugriffsschlüssel für die Faktentabelle bilden.<br />
Die Dimensionstabellen bilden die Enden des »Sterns«. In ihnen<br />
werden Merkmale und Attribute zu den jeweiligen Datensätzen der<br />
Faktentabelle gespeichert. Auch Textinformationen (»Müller« für<br />
Kunde 4711) wird bei einem reinen Star-Schema in den Dimensionen<br />
gespeichert.<br />
Die Verknüpfung der Dimensionstabellen mit der Faktentabelle<br />
wird über eindeutige, künstliche Schlüssel (siehe unten) realisiert. Jeder<br />
dieser Schlüssel kennzeichnet eine Zeile in der Dimensionstabelle und<br />
eine oder mehrere Zeilen in der Faktentabelle. Der Schlüssel aller<br />
Dimensionstabellen zusammen identifiziert jeweils eine Zeile in der<br />
Faktentabelle.<br />
Dimensionstabellen sind denormalisiert (wie flache Strukturen)<br />
und häufig nach thematischen Geschichtspunkten gebildet. So werden<br />
Produktattribute in der Regeln in einer Produktdimension gespeichert,<br />
Kundenattribute in einer Kundendimension und so weiter.<br />
Die Verbindung der Dimensionstabellen mit der Faktentabelle<br />
wird über eindeutige Schlüssel realisiert. Dabei wird als Schlüssel nicht<br />
der Merkmalswert einer Dimension, sondern ein künstlicher Schlüssel<br />
gewählt.<br />
Abb. 5–3<br />
Star-Schema<br />
Faktentabelle<br />
Dimensionstabellen<br />
Künstliche Schlüssel<br />
53
54<br />
Abb. 5–4<br />
Snowflake-Schema<br />
5 <strong>Allgemeine</strong> <strong>Datenmodelle</strong><br />
Dies vereinfacht die Modellierung in der Form, dass Merkmale<br />
und Attribute frei in den Dimensionen verteilt werden können und<br />
auch n:m-Relationen innerhalb einer Dimension möglich sind. Dies ist<br />
die Grundvoraussetzung für die historisierte Darstellung von Attributen.<br />
Solche Dimensionen werden auch als Slowly Changing Dimensions<br />
bezeichnet; hier werden unterschiedliche Kombinationen von<br />
Merkmalen/Attributen in einer Dimension abgelegt.<br />
5.5 Snowflake-Schema<br />
Das Snowflake-Schema ist eine Erweiterung des Star-Schemas. Es<br />
erweitert das Star-Schema um Stammdatentabellen, die es ermöglichen,<br />
Attribute nicht nur historisiert, sondern auch aktuell darzustellen.<br />
Dabei wird das Grundmodell des Star-Schemas beibehalten. Hinzu<br />
kommt jedoch die Option, Attribute nicht in Dimensionen, sondern in<br />
Stammdatentabellen abzulegen, die relational mit Merkmalen in den<br />
Dimensionen verbunden sind.<br />
In Abbildung ist dies am Beispiel der Postleitzahl dargestellt. Diese<br />
kann entweder in der Kundendimension (historische Darstellung)<br />
oder in den Kundenstammdaten (aktuelle Darstellung) aufgenommen<br />
werden.<br />
Ebenso ist es möglich, die Postleitzahl in beiden Tabellen aufzunehmen,<br />
so dass der Anwender bei der Datenanalyse zwischen beiden<br />
Alternativen wählen kann. Dadurch wird das Snowflake-Schema<br />
jedoch wesentlich komplexer. Die Administration ist aufwändiger und<br />
für das Datenbankmanagementsystem ist es schwieriger, das Modell<br />
performant zu lesen
.<br />
5.6 Zusammenfassung<br />
Für Anwender ist die wahlweise historische oder aktuelle Darstellung von<br />
Attributen teilweise verwirrend. Setzen Sie daher die Möglichkeiten des<br />
Snowflake-Schemas sehr bewusst ein, um spätere Verwirrung oder gar die<br />
Ablehnung des Systems zu vermeiden.<br />
5.6 Zusammenfassung<br />
Die folgende Übersicht fasst noch einmal die wichtigsten Eigenschaften<br />
der beschriebenen <strong>Datenmodelle</strong> zusammen.<br />
Modell Transaktional Flach Star Snowflake<br />
Performance schlecht gut sehr gut sehr gut<br />
Komplexität hoch gering mittel hoch<br />
Historisiert – ✓ ✓ ✓<br />
Aktuell ✓ – – ✓<br />
Stichtag – – – –<br />
In der Praxis werden die vorgestellten <strong>Datenmodelle</strong> mit zahlreichen<br />
Abwandlungen und Erweiterungen eingesetzt. Auch das BW verwendet<br />
<strong>Datenmodelle</strong>, die speziellen Anforderungen angepasst wurden.<br />
55<br />
Tab. 5–1<br />
Überblick über allgemeine<br />
<strong>Datenmodelle</strong>