Aggregatfunktion
Eine Aggregatfunktion (auch Aggregierungsfunktion oder Aggregationsfunktion) ist eine Funktion, die gewisse Eigenschaften von Daten zusammenfasst.[1][2][3]
Unterteilungen
BearbeitenDie bei einer Aggregation verwendeten Funktionen lassen sich unterteilen in distributive Funktionen, algebraische Funktionen und holistische Funktionen.
Distributive Funktionen
BearbeitenBeispiele:
- 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
BearbeitenBeispiele:
- 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
BearbeitenBeispiele:
Holistische Funktionen sind Aggregationsfunktionen, für die keine der beiden vorhergehenden Definitionen zutrifft.
Berechnung
BearbeitenDistributive 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- ↑ Mit Aggregat-Funktionen und GROUP BY Daten auswerten und aggregieren. 23. August 2016, abgerufen am 3. Oktober 2016.
- ↑ Aggregatfunktionen. In: SQL=Structured Query Language (SEQUEL) – Grundlagen der Datenbanksysteme I. Wortschatz Lexikon Uni Leipzig, S. VII-19 ff, abgerufen am 3. Oktober 2016.
- ↑ 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 (nicht mehr online verfügbar) am 3. Oktober 2016; abgerufen am 3. Oktober 2016.