Aggregation (OLAP)

Aggregation (auch Konsolidierung oder Verdichtung) bezeichnet, im Zusammenhang mit der Verwaltung großer Datenmengen in einem Data-Warehouse, das Zusammenfassen einer Reihe von Fakten zu einem einzelnen Fakt. Beispielsweise lassen sich aus einer Menge von Zahlen der Mittelwert, das Minimum bzw. Maximum oder die Summe bestimmen. Solche Funktionen, die einer Menge von Zahlen einen einzelnen Wert zuordnen, nennt man Aggregationsfunktionen (oder Zusammenfassungsfunktionen). Das Ergebnis wird dann stellvertretend für die Quelldaten verwendet. Der umgekehrte Weg wird als Verfeinerung bezeichnet.

Aggregation und Verfeinerung sind Operationen des Online Analytical Processing (OLAP). Sie bilden einen OLAP-Würfel (englisch cube) auf einen kleineren (Aggregation) oder größeren (Verfeinerung) Würfel ab. Die Operationen finden entlang von Klassifikationspfaden statt und verändern somit die Klassifikationsstufen (auch: Konsolidierungsebenen) der einzelnen Dimensionen.

Die entsprechenden Operationen in einem DBMS werden auch als „Roll up“ und „Roll/Drill down“ bezeichnet. Eine einfache Aggregation ist in SQL mittels GROUP BY möglich.

Einige Multidimensionale Datenbanken verwenden eine memory-basierte Analyse. Sie ermöglichen durch die hohe Performance des Speichermediums und der begrenzten Datenmenge Aggregationen zum Zeitpunkt der Abfrage (Berechnung on-the-fly).

Inhaltsverzeichnis

Beispiel

Ein Data-Warehouse enthält als einzelne Fakten Verkäufe nach Datum, Branche und Geschäft. Die Datumsdimension enthält einen Klassifikationspfad mit den Klassifikationsstufen Tag-Monat-Jahr-TOP. Durch Aggregation entlang dieses Pfades lässt sich bei Verwendung der Summenfunktion beispielsweise die Anzahl der Verkäufe nach Jahr, Branche und Geschäft ermitteln. Bei Aggregation auf die oberste Klassifikationsstufe TOP fällt die Datumsdimension zusammen; der Ergebniscube enthält die Gesamtanzahl der Verkäufe aller Zeiten nach Branche und Geschäft. Die Anwendung von Aggregat-Funktionen und ggfs. weiterer arithmetischer Operationen zur Ermittlung einer einzigen Zahl nennt man auch die Ermittlung einer Kennzahl oder eines Key Performance Indicators (KPI).

Aggregatfunktionen

Die bei einer Aggregation verwendeten Funktionen lassen sich unterteilen in

  • Distributive Funktionen: Summe (SUM), Anzahl (COUNT), Maximum (MAX), Minimum (MIN)...

Formal lässt sich eine distributive Funktion F wie folgt beschreiben: Man teilt den zu aggregierenden Datenbestand in J Partitionen auf und es sei Xi das Attribut, welches aggregiert werden soll. Dann gibt es eine Funktion G, die auf einer Menge derselben Ergebnisse wie F operiert, und F lässt sich darstellen als:

F(\{X_i\}) = G(\{F(\{X_{i,j}\}) | j = 1 \dots J )\}).

Dabei ist {Xi} die Gesamtheit aller Attributwerte im Datenbestand und {Xi,j} sind diejenigen Attributwerte, die in der Paritition j liegen.

Beispielsweise gilt für die Funktion Anzahl (COUNT):


\begin{align}
F &= COUNT, F: Menge \rightarrow \mathbb{N}, F(s) = |s| \\
G &= SUM, G : \mathbb{N}^J \rightarrow \mathbb{N}
\end{align}

Man bildet also erst die Summe der einzelnen Partitionen und summiert dann die Einzelergebnisse auf.

  • Algebraische Funktionen: Mittelwert (AVG), gestutzter Mittelwert (truncated AVG), Standardabweichung, Top-N...

Ganz analog zu vorher werden algebraisch Funktionen definiert, jedoch hat man hier größere Freiheit, was die Funktion betrifft, die auf den einzelnen Partitionen arbeitet. Musste man hier zuvor dieselbe Funktion F anwenden, die auch auf dem gesamten Datenbestand angewendet wird, so kann man hier eine andere Funktion H wählen. Damit besitzt eine algebraische Aggregationsfunktion F folgende Darstellung:

F(\{X_i\}) = G(\{H(\{X_{i,j}\}) | j = 1 \dots J )\}).

Dabei ist G eine Funktion, die auf einer Menge von Ergebnistupeln der Funktion H operiert. {Xi} und {Xi,j} sind definiert wie oben.

Beispielsweise gilt für die Funktion Durchschnitt (AVG):


\begin{align}
&H : \text{Menge von } \mathbb{R} \rightarrow (\mathbb{R}, \mathbb{N}), s \mapsto (\sum_{x \in s} x, |s|) \\
&G : \text{Menge von } (\mathbb{R}, \mathbb{N}) \rightarrow \mathbb{R}, s \mapsto \frac{\sum_{x \in s} x.first}{\sum_{x \in s} x.second}
\end{align}

Die Ausdrücke x.first und x.second bezeichnen dabei das erste beziehungsweise zweite Element eines 2-Tupels.

Anschaulich gesprochen wird also für jede Partition ein Tupel aus Gesamtsumme und Anzahl der Tupel dieser Partition berechnet. Anschließend errechnet sich der Gesamtdurchschnitt einfach aus der Gesamtsumme geteilt durch die Gesamtanzahl.

  • Holistische Funktionen: Median, Rang, Percentile, häufigster Wert...

Holistische Funktionen sind Aggregationsfunktionen, für die keine der beiden vorhergehenden Definitionen zutrifft.

Faustregel: Distributive und algebraische Aggregatfunktion können aus einem oder einer festen Menge von Fakten aus tiefer liegenden Klassifikationsstufen berechnet werden, während bei holistischen Aggregatfunktionen auf die Grundgesamtheit aller Fakten zurückgegriffen werden muss. Distributive und algebraische Funktionen sind daher eher "gutmütig", d.h. man kann sie parallelisieren oder schrittweise ausführen (geringerer Speicherplatzbedarf!), wohingegen dies bei holistischen Funktionen nicht möglich ist.

Aggregierbarkeit

Anforderungen an die Dimensionen

  • Überlappungsfreiheit der Zuordnung von Klassifikationsknoten. Beispiel: die Fachrichtung eines Studenten ist nicht überlappungsfrei, denn man kann nicht ausschließen, dass ein Student für mehrere Fachrichtungen eingeschrieben ist.
  • Vollständigkeit der Zerlegung pro Klassifikationsstufe. Beispiele: Die Postleitzahl vom Hauptwohnsitz eines Einwohners ist nicht vollständig, denn es gibt auch Einwohner, die keinen festen Wohnsitz haben. Sie erfordern die Erweiterung der Dimension um eine null-Ausprägung oder eine 'sonstige'-Ausprägung.
  • Typverträglichkeit von Fakt und Aggregatfunktion. Beispiel: für Durchschnittswerte ist eine nochmalige Durchschnittsbildung auf einer höheren Aggregationsebene meist nicht möglich.

Datentypen der Fakten

  • voll aggregierbar sind alle Fakten, die einen Fluss eines Gutes in einer bestimmten Zeiteinheit quantitativ beschreiben. Hier sind alle Aggregat-Funktionen sinnvoll einsetzbar. Beispiele: Umsatz, Kosten, Stromverbrauch, Warenausgang.
  • teilaggregierbar sind alle Fakten, bei denen einige Aggregat-Funktionen nicht oder nur eingeschränkt eingesetzt werden können. Das sind 1. alle Fakten vom Typ Stück oder Bestand. Sie beschreiben eine vorhandene Menge zu einem bestimmten Zeitpunkt. Beispiel: Anzahl der Einwohner, Hochwasserpegel, Kontostand. Diese Fakten können nicht über die Zeit-Dimension summiert werden. Über andere Dimensionen, die den Bezug zum selben Zeitpunkt erhalten, können sie schon summiert werden. 2. gibt es noch weitere Gründe, die die Anwendung einiger Aggregat-Funktionen einschränken. Beispiele: Schulnoten, Datumsangaben, Durchschnittswerte. Hier sind Summierung grundsätzlich nicht sinnvoll oder überhaupt nicht definiert. Die meisten anderen Aggregat-Funktionen können schon angewendet werden.
  • nicht aggregierbar sind alle Fakten, bei denen überhaupt keine Aggregatfunktionen sinnvoll eingesetzt werden können. Beispiel: Warengruppen, Postleitzahlen, Kontonummern, Nachnamen. Wenn für den Datentyp keine Ordnung (Sortierbarkeit) definiert ist, dann sind noch nicht einmal die Funktionen Maximum und Minimum anwendbar.

Dimensionshierarchie und Aggregationspfade

Dimensionen lassen sich oft als Hierarchien gliedern.

Wenn jeder Knoten funktional abhängig ist von seinen Vorgängern, dann kann sich ein linearer Aggregationspfad ergeben. Beispiel:

Tag --- Monat --- Quartal --- Jahr

Es kann vorkommen, dass in einer Dimension unterschiedliche Aggregationspfade möglich sind. Beispiel:

Tag --- Woche --- Jahr
Tag --- Monat --- Jahr

Es gibt zwei verschiedene Aggregationspfade, um vom Tag zum Jahr zu führen. Beide liefern dasselbe Ergebnis. Von der Woche kann man jedoch nicht zum Monat gelangen und auch umgekehrt nicht.

An diesem Beispiel wird auch deutlich, dass unterschiedliche Aggregationspfade oft die Gefahr beinhalten, dass die Ergebnisse doch nicht exakt übereinstimmen. Wenn der Jahreswechsel nicht gleichzeitig mit dem Wechsel einer Woche zusammenfällt, dann kann es bei den beiden Aggregationspfaden zu Abweichungen kommen. Für die Behandlung der letzten Woche im Jahr muss eine eindeutige Handhabung gefunden werden, sonst ist der Aggregationspfad Tag --- Woche --- Jahr falsch.

Siehe auch

Literatur

  • Lenz und Shoshani: Summarizability in OLAP and Statistical Databases. SSDBM, 1997.

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Aggregation — (von lat. aggregatio, Anhäufung, Vereinigung) bezeichnet im Allgemeinen das Zusammenfassen von Gegenständen oder Daten zu größeren Einheiten. Spezielle Einzelbedeutungen sind: eine besondere Art der Assoziation zwischen Objekten, siehe… …   Deutsch Wikipedia

  • Aggregation (Programmierung) — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Aggregation in der Informatik ist entweder eine Verbindung… …   Deutsch Wikipedia

  • Aggregation (Routing) — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Aggregation in der Informatik ist entweder eine Verbindung… …   Deutsch Wikipedia

  • Aggregation (objektorientierte Programmierung) — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Aggregation in der Informatik ist entweder eine Verbindung… …   Deutsch Wikipedia

  • Aggregation (Informatik) — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Aggregation (Data Warehouse) — Aggregation (auch Konsolidierung oder Verdichtung) bezeichnet, im Zusammenhang mit der Verwaltung großer Datenmengen in einem Data Warehouse, das Zusammenfassen einer Reihe von Fakten zu einem einzelnen Fakt. Beispielsweise lassen sich aus einer… …   Deutsch Wikipedia

  • OLAP cube — An OLAP cube (for online analytical processing) is a data structure that allows fast analysis of data.[1] It can also be defined as the capability of manipulating and analyzing data from multiple perspectives. The arrangement of data into cubes… …   Wikipedia

  • OLAP — Online Analytical Processing (OLAP) wird neben dem Data Mining (auch Datenschürfung) zu den Methoden der analytischen Informationssysteme gezählt. OLAP wird weiterhin den hypothesengestützten Analysemethoden zugeordnet. Der Analyst muss vor der… …   Deutsch Wikipedia

  • Online Analytical Processing (OLAP) — Konzept für die im ⇡ Dialogbetrieb realisierte Verdichtung und Darstellung von managementrelevanten Daten aus einem Data Warehouse. Bei den Daten handelt es sich um Faktendaten, wie z.B. Umsatz oder Kostenkennzahlen, denen eine Vielzahl von… …   Lexikon der Economics

  • Aggregiert — Aggregation (von lat. aggregare, „anhäufen“, „beigesellen“; aggregatio „Anhäufung“, „Vereinigung“) bezeichnet: In der Informatik: Eine besondere Art der Assoziation zwischen Objekten, siehe: Aggregation (Informatik) Das Zusammenfassen von Daten… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”