Antwort

10

Dies ist in der relationalen Algebra nicht möglich, aber die Leute haben einige "Erweiterungen" für diese Operationen erstellt (Anmerkung: Im Originaltext wird ein Teil des Textes als tiefgestellt geschrieben).

GROUP BY, nach dem Buch Grundlagen der Datenbanksysteme (Elmasri, Navathe 2011 6. ed):

Eine andere Art von Anforderung, die nicht im Grund relationale Algebra ausgedrückt werden kann, ist zu mathematische Aggregatfunktionen angeben auf Sammlungen von Werten aus der Datenbank.
...
wir eine AGGREGAT Funktion Operation definieren können, das Symbol unter Verwendung i (ausgesprochen Skript F) 7, um diese Art von Anfragen wie folgt angeben:

Attribute

<Gruppierung> i <Listenfunktion> (R)

wo < Gruppierung Attribute> ist eine Liste der Attribute der Beziehung in R angegeben ist, und < Funktionsliste> ist eine Liste von (< Funktion> < attribute>) -Paare. In jedem solchen Paar ist < Funktion eine der erlaubten Funktionen wie SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT und < Attribut> ist ein Attribut der durch R angegebenen Relation. Die resultierende Beziehung hat die Gruppierungsattribute plus ein Attribut für jedes Element in der Funktionsliste.

ORDER BY (SORT BY), another source:

Da eine Beziehung A gesetzt ist (oder Beutel), gibt es keine Anordnung für eine Beziehung definiert. Das heißt, zwei Relationen sind identisch, wenn sie die gleichen Tupel enthalten, unabhängig von der Reihenfolge. Ein Benutzer möchte jedoch häufig, dass die Ausgabe einer Abfrage in einer bestimmten Reihenfolge aufgeführt wird. Wir können einen zusätzlichen Operator τ definieren, der eine Relation sortiert, wenn wir einen Operator zulassen wollen, dessen Ausgabe keine Relation ist, sondern eine geordnete Liste von Tupeln.

Zum Beispiel kann der Ausdruck

τLastName, Vorname (Student)

erzeugt eine Liste aller Studenten Tupeln, geordnet nach Namen (als primärer Sortierschlüssel) dann Vorname (als ein sekundärer Sortierschlüssel). (Das sekundäre Sortierschlüssel wird nur verwendet, wenn zwei Tupeln auf dem primären Sortierschlüssel übereinstimmen. Eine Sortiervorgang eine beliebige Anzahl von Sortierschlüssel auflisten kann, von der höchstwertigen zur niedrigstwertigen.)

2

Sie können Projektions verwenden π für die Spalten, die Sie Gruppe der Tabelle ohne aggregieren von ihnen wollen (das Projekt Operation entfernt doppelte Tupel) , wie folgend:

π c1, C2,3 (R)

wo c1, c2, c3 sind Spalten (Attribute) und R ist die Tabelle (die rel a)

Verwandte Themen