Table of Contents

Aggregationsfunktionen

distributiv

Es gibt eine Funktion G, so dass

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

Beispiel:

  1. min()
  2. max()
  3. count()

Angewandt für count: $${COUNT}(\{X_{i,j}\}) = SUM(\{COUNT(\{X_{i,j} | i=1, \dots, I\}) | j=1, \dots, J\})$$

$X_{0,0} = 1; X_{1,0} = 2; X_{2,0} = 3;$ $X_{0,1} = 4; X_{1,1} = 5; X_{2,1} = 6;$

algebraisch

Es gibt eine Funktion G, die M-Tupel liefert und H, so dass

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

M ist apriori bekannt, ebenso der Typ der Tupel.

Bsp.:

  1. Durchschnitt
  2. Truncated Average
  3. Standardabweichung
  4. Top-N

Bsp.: Durchschnitt:

G: (Summe, Count) H: (Gesamtsumme, Gesamtcount)

Bsp.: Truncated Average: G: (Summe, Count, Min, Max)

Bsp.: Standardabweichung:

Unkorrigierte Standardabweichung:

G: (Summe, Summe der Quadrate, Count)

holistisch

Es kann keine Beschränkung des Speicherbedarfs für Sub-Aggregate d.h. für Aggregate über $$\{X_{i,j} | i=1, \dots, I\}$$ angegeben werden / Größe des Zwischenergebnisses ist nicht beschränkt.

Beispiele

  1. Median()
  2. HäufigsterWert()
  3. TruncatedAverage() (dynamisch)

Self-maintainable

Wenn nach Änderung der neue Wert der Aggregationsfunktion aus dem alten Wert und den Änderungen berechnet werden kann.

Algebraische und holistische Aggregationsfunktionen sind nicht self-maintainable.

Bsp.:

  1. Count() self-maint. bzgl. Einfügen, Löschen
  2. Min() self-maint. bzgl. Einfügen
  3. Avg() ist nicht self-maint.