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:
- min()
- max()
- 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.:
- Durchschnitt
- Truncated Average
- Standardabweichung
- 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
- Median()
- HäufigsterWert()
- 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.:
- Count() self-maint. bzgl. Einfügen, Löschen
- Min() self-maint. bzgl. Einfügen
- Avg() ist nicht self-maint.