webentwicklung-frage-antwort-db.com.de

Algebra Relational sql GRUPPE NACH SORTIEREN NACH BESTELLEN NACH

Ich wollte wissen, was das Äquivalent in GROUP BY, SORT BY und ORDER BY in der relationalen Algebra ist.

7
Cyberflow

Beides ist in der relationalen Algebra nicht möglich, aber es wurden einige "Erweiterungen" für diese Operationen erstellt (Hinweis: Im Originaltext ist ein Teil des Textes als Index geschrieben).

GROUP BY, gemäß dem Buch Fundamentals of Database Systems (Elmasri, Navathe 2011, 6. Auflage):

Eine andere Art von Anforderung, die in der relationalen Grundalgebra nicht ausgedrückt werden kann, besteht darin, mathematische Aggregatfunktionen für Wertesammlungen aus der Datenbank anzugeben.
...
Wir können eine AGGREGATE FUNCTION-Operation mit dem Symbol ℑ (ausgesprochenes Skript F) 7 definieren, um diese Arten von Anforderungen wie folgt anzugeben:

<Gruppierungsattribute> ℑ <Funktionsliste> (R)

dabei ist <Gruppierungsattribute> eine Liste von Attributen der in R angegebenen Beziehung und <Funktionsliste> eine Liste von Paaren (<Funktion> <Attribut>). In jedem dieser Paare ist <function> eine der zulässigen Funktionen - wie SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT - und <attribute> ist ein Attribut der durch R angegebenen Beziehung. Die resultierende Beziehung hat die Gruppierungsattribute plus eins Attribut für jedes Element in der Funktionsliste.

ORDER BY (SORT BY), eine andere Quelle:

Da es sich bei einer Relation um eine Menge (oder einen Beutel) handelt, ist für eine Relation keine Reihenfolge definiert. Das heißt, zwei Relationen sind unabhängig von der Reihenfolge gleich, wenn sie dieselben Tupel enthalten. Ein Benutzer möchte jedoch häufig, dass die Ausgabe einer Abfrage in einer bestimmten Reihenfolge aufgelistet wird. Wir können einen zusätzlichen Operator τ definieren, der eine Relation sortiert, wenn wir einen Operator zulassen möchten, dessen Ausgabe keine Relation, sondern eine geordnete Liste von Tupeln ist.

Zum Beispiel der Ausdruck

τLastName, FirstName (Student)

generiert eine Liste aller Student-Tupel, sortiert nach Nachname (als primärer Sortierschlüssel) und Vorname (als sekundärer Sortierschlüssel). (Der sekundäre Sortierschlüssel wird nur verwendet, wenn sich zwei Tupel auf den primären Sortierschlüssel einigen. Eine Sortieroperation kann eine beliebige Anzahl von Sortierschlüsseln auflisten, von höchstwertig bis niedrigstwertig.)

12
Simo Kivistö

Sie können die Projektion π für die Spalten verwenden, nach denen Sie die Tabelle gruppieren möchten, ohne sie zu aggregieren (die PROJECT-Operation entfernt alle doppelten Tupel):

π c1, c2, c3 (R)

dabei sind c1, c2, c3 Spalten (Attribute) und R ist die Tabelle (die Beziehung).

2
BJ Davey