Eine Aggregatfunktion (auch Aggregierungsfunktion oder Aggregationsfunktion) ist eine Funktion, die gewisse Eigenschaften von Daten zusammenfasst.[1][2][3]

Unterteilungen

Bearbeiten

Die bei einer Aggregation verwendeten Funktionen lassen sich unterteilen in distributive Funktionen, algebraische Funktionen und holistische Funktionen.

Distributive Funktionen

Bearbeiten

Beispiele:

  • Summe (SUM)
  • Anzahl (COUNT)
  • Maximum (MAX)
  • Minimum (MIN)
  • Top-N
  • ...

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

 .

Dabei ist   die Gesamtheit aller Attributwerte im Datenbestand und   sind diejenigen Attributwerte, die in der Partition   liegen.

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

 

Man berechnet also erst die Kardinalität der einzelnen Partitionen und summiert dann die Einzelergebnisse auf.

Algebraische Funktionen

Bearbeiten

Beispiele:

  • Mittelwert (AVG)
  • gestutzter Mittelwert (truncated AVG)
  • Standardabweichung...

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   anwenden, die auch auf dem gesamten Datenbestand angewendet wird, so kann man hier eine andere Funktion   wählen. Damit besitzt eine algebraische Aggregationsfunktion   folgende Darstellung:

 .

Dabei ist   eine Funktion, die auf einer Menge von Ergebnistupeln der Funktion   operiert.   und   sind definiert wie oben.

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

 

Die Ausdrücke   und   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

Bearbeiten

Beispiele:

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

Berechnung

Bearbeiten

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.

Literatur

Bearbeiten
  • Grabisch, M., Marichal, J., Mesiar, R., Pap, E. (2009). Aggregation Functions. (n.p.): Cambridge University Press. ISBN 9781139643221 Google Books

Einzelnachweise

Bearbeiten
  1. Mit Aggregat-Funktionen und GROUP BY Daten auswerten und aggregieren. 23. August 2016, abgerufen am 3. Oktober 2016.
  2. Aggregatfunktionen. In: SQL=Structured Query Language (SEQUEL) – Grundlagen der Datenbanksysteme I. Wortschatz Lexikon Uni Leipzig, S. VII-19 ff, abgerufen am 3. Oktober 2016.
  3. Thomas Wiedemann: Abfrage von Datenbanken mit dem Select-Befehl - 5. In: Grundlagen der Informatik – Datenbanken-Technik – SQL und Marktübersicht. Hochschule für Technik und Wirtschaft Dresden, Fachgebiet Informatik / Mathematik, S. 6/22, archiviert vom Original (nicht mehr online verfügbar) am 3. Oktober 2016; abgerufen am 3. Oktober 2016.