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.
Mögliche Operationen
Man kann in einer relationalen Algebra folgende Arten von Operationen definieren:
- Mengenoperationen
- Projektion
- Selektion
- Join und Kreuzprodukt
- Umbenennung
- Division
Die Operationen im Einzelnen
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 |
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 Mengen von Operationen
Relationenalgebra als Anfragesprache
Siehe auch
Weblinks
noch andere Beispiele gibts bei Tino Hempel: Operationen der Relationenalgebra
Literatur
Alfons Kemper und André Eickler: Datenbanksysteme - Eine Einführung, ISBN 3486273922
Peter Kandzia und Hans-Joachim Klein: Theoretische Grundlagen relationaler Datenbanksysteme, ISBN 3411148918