Relationenalgebra und SQL: Gruppierungsoperator und Aggregatfunktionen

Aus Wikibooks

Wechseln zu: Navigation, Suche
Wikibooks buchseite.svg Zurück zu "Nullwerte" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "NF2"


Die Gruppierung wendet Funktionen auf gleiche Attribute in einer Relation an. Der Operator γ erhält eine Liste von Funktionen und eine Attributliste. Die Funktionen werden dann auf Tupel angewendet für die die Attribute der Attributliste gleich sind. Die Ausgabe ist eine neue Relation bestehend aus der Attributliste und einem neuen Attribut, das die Ergebnisse der Funktionsliste enthält.

Die Funktionen sind dann die üblichen Aggregatfunktionen cnt, sum, max, avg ….

Definition

Seien R eine Relation und A = {A1, …, An} Attribute aus R. F(X) sei eine Funktionsliste f1(x1), …, fn(xn). Die Gruppierung ist dann

\gamma_{F(X); A} (R) := \bigcup_{t \in R} \gamma_{F(X); \emptyset}(\sigma_{A=t.A}(R))

Für eine leere Attributmenge (also γF(X);{}(…)) wird ein zusätzliches Attribut erzeugt, das den Wert der Funktionsanwendung über die gesamte Relation enthält. Dies wird ausgenutzt, um die Relation mit der Selektion in Teilrelationen mit gleichen Attributen zu zerlegen, die dann mit der Funktionsanwendung wieder zusammengesetzt werden.

Weiter gilt, dass eine Gruppierung mit einer leeren Funktionsliste keinen Effekt hat.


Wikibooks buchseite.svg Zurück zu "Nullwerte" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "NF2"
Persönliche Werkzeuge