Aggregationsfunktionen

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;$

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)

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)

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.