Relationale Algebra
Die Relationenalgebra oder Relationale Algebra ist eine formale Sprache, mit der sich Anfragen über einem relationalen Schema formulieren lassen. Sie erlaubt es, Relationen miteinander zu verknüpfen und komplexere Informationen daraus herzuleiten.
Es werden Operationen definiert, die sich auf einer Menge von Relationen anwenden lassen. Damit lassen sich bspw. Relationen verknüpfen, filtern oder umbenennen. Die Ergebnisse aller Operationen sind ebenfalls Relationen. Aus diesem Grund bezeichnet man die Relationenalgebra als abgeschlossen.
Ihre Bedeutung hat die Relationenalgebra als theoretische Grundlage für Anfragesprachen in relationalen Datenbanken. Die direkte praktische Umsetzung findet die Relationale Algebra in der Sprache SQL.
Operationen
Mengenoperationen
Seien R und S zwei Relationen über derselben Attributmenge.
Beispiel: | R:
|
S:
|
Vereinigung
Bei der Vereinigung R ∪ S werden alle Tupel der Relation R mit allen Tupeln der Relation S zu einer einzigen Relation vereint. Voraussetzung dafür ist, dass R und S das gleiche Relationenschema haben. Das heißt, sie haben gleiche Attribute und Attributtypen. Duplikate werden bei der Vereinigung gelöscht.
R ∪ S:
A | B | C |
7 | 8 | 9 |
4 | 5 | 6 |
1 | 2 | 3 |
Differenz
Bei der Differenz R \ S (auch R - S) werden aus der ersten Relation alle Tupel entfernt, die auch in der zweiten Relation vorhanden sind.
R \ S:
A | B | C |
1 | 2 | 3 |
Durchschnitt
Das Ergebnis der Durchschnittsoperation R ∩ S sind all die Tupel, die sich sowohl in R als auch in S finden lassen. Der Mengendurchschnitt lässt sich auch durch die Mengendifferenz ausdrücken: R ∩ S = R - (R - S)
R ∩ S:
A | B | C |
4 | 5 | 6 |
Kartesisches Produkt
Das Kartesische Produkt ist eine Operation sehr ähnlich dem Kartesischen Produkt aus der Mengenlehre. Die Schreibweise ist R × S. Das Resultat des Kartesischen Produkts ist die Menge aller Kombinationen der Tupel aus R und S. Ein gutes Beispiel findet sich auf der englischen Wikipedia-Seite: Relational algebra: The Cartesian Product
Projektion
Die Projektion kann auch Attributbeschränkung genannt werden.
Sei R eine Relation über {A1, ..., Ak} und β ⊆ {A1, ..., Ak}.
- Definition:
- eine andere Schreibweise:
- Beispiel:
R:
|
R[A,B]:
|
R[A]:
|
Selektion (Restriktion)
Bei der Selektion kann man mit einem Vergleichsausdruck (Prädikat) eine Auswahl von Tupeln festlegen, die in die Ergebnismenge aufgenommen werden sollen.
Sei R ein
- Definition:
- Schreibweise:
- Beispiel:
R:
|
R[A=1]:
|
R[C>6]:
|
Join und Kreuzprodukt
Der Join (deutsch Verbund) verbindet mehrere Relationen zu einer größeren.
- Definition:
- Beispiel:
Umbenennung
Durch diese Operation können Attribute und Relationen umbenannt werden.
- Beispiel:
R:
|
R[B→X]:
|
Division
Die Division kann man sich als Gegenoperation (oder Umkehroperation) zum Join vorstellen. Dies ist nicht völlig korrekt, erleichtert aber die Vorstellung.
Seien β und γ mit γ⊆β Attributmengen für R und S.
- Definition:
- Umgangssprachlich Formulierung (ungenau und unpräzise):
Nur wenn alle aus S Teilmenge von R sind nimmt man dann die Entschränkung von β\γ.
- Beispiel:
R:
|
S:
|
R÷S
|
- Division als Gegenoperation.
Wenn β∩γ=ø und β,γ,R,S≠ø vorausgesetzt ist, dann gilt:
Minimale Menge von Operationen
Die minimale Menge von Operationen, d.h. die Menge von Operationen die mindestens notwendig ist, um alle Ausdrücke der relationalen Algebra bilden zu können, umfaßt
- Projektion
- Selektion
- Kreuzprodukt
- Umbenennung
- Vereinigung
- Differenz
Alle anderen Operationen (z.B. Joins) lassen sich durch diese Grundoperationen nachbilden.
Siehe auch
Literatur
Alfons Kemper und André Eickler: Datenbanksysteme - Eine Einführung, ISBN 3486273922 Peter Kandzia und Hans-Joachim Klein: Theoretische Grundlagen relationaler Datenbanksysteme, ISBN 3411148918