Bibliothek

Fach wählen

Themen

Relationenalgebra – Grundoperationen

Was ist Relationenalgebra?

Die Relationenalgebra ist die mathematische Grundlage relationaler Datenbanken. Sie definiert Operationen auf Relationen (Tabellen), deren Ergebnis wieder eine Relation ist. SQL ist im Kern eine syntaktische Verkleidung dieser Algebra. Die Operatoren werden durch griechische Buchstaben dargestellt: \( \sigma \) (Sigma) für Selektion, \( \pi \) (Pi) für Projektion und \( \cup, \cap, \setminus \) für Mengenoperationen.

Selektion \( \sigma \)

Die Selektion wählt die Zeilen einer Relation aus, die eine Bedingung erfüllen. Notation:

\[ \sigma_{\text{Bedingung}}(R) \]

Beispiel: \( \sigma_{\text{note} < 2.0}(\text{schüler}) \) liefert alle Schüler mit einer Note besser als 2,0. In SQL entspricht das der WHERE-Klausel:

SELECT * FROM schüler WHERE note < 2.0;
Projektion \( \pi \)

Die Projektion wählt bestimmte Spalten einer Relation aus. Doppelte Tupel werden entfernt. Notation:

\[ \pi_{A_1, A_2, \ldots, A_n}(R) \]

Beispiel: \( \pi_{\text{name, klasse}}(\text{schüler}) \) liefert nur Name und Klasse jedes Schülers. In SQL:

SELECT DISTINCT name, klasse FROM schüler;

Selektion und Projektion lassen sich kombinieren: \( \pi_{\text{name}}(\sigma_{\text{note}=1.0}(\text{schüler})) \) liefert die Namen aller Einser-Schüler.

Vereinigung \( \cup \)

Die Vereinigung zweier Relationen \( R \) und \( S \) liefert alle Tupel, die in \( R \) oder in \( S \) (oder in beiden) vorkommen. Voraussetzung: beide Relationen müssen gleich aufgebaut sein (gleicher Grad und kompatible Attributtypen). Doppelte Tupel werden eliminiert.

SQL: SELECT ... UNION SELECT ....

Differenz \( \setminus \) und Schnitt \( \cap \)

Die Differenz \( R \setminus S \) liefert alle Tupel, die in \( R \), aber nicht in \( S \) sind. Beispiel: alle Schüler aus Klasse 12, die nicht im Mathekurs sind. SQL: EXCEPT bzw. MINUS.

Der Schnitt \( R \cap S \) liefert alle Tupel, die in beiden Relationen vorkommen. SQL: INTERSECT. Auch hier müssen die Schemata kompatibel sein.

Kartesisches Produkt \( \times \)

Das kartesische Produkt \( R \times S \) kombiniert jede Zeile aus \( R \) mit jeder Zeile aus \( S \). Hat \( R \) \( n \) Zeilen und \( S \) \( m \) Zeilen, so hat das Produkt \( n \cdot m \) Zeilen. Es ist die Grundlage für den Verbund (Join), wird aber selten direkt verwendet, da es ohne Bedingung sehr große Ergebnisse liefert.

In SQL: SELECT * FROM r, s; – ohne WHERE-Bedingung ein vollständiges kartesisches Produkt.

Häufige Fehler

Verwechslung von Selektion (Zeilen) und Projektion (Spalten), Vereinigung von schemainkompatiblen Relationen, Vergessen, dass Doppeleinträge in der Algebra automatisch entfernt werden, und falsches Lesen verschachtelter Ausdrücke (immer von innen nach außen).

Zusammenfassung: Selektion wählt Zeilen, Projektion wählt Spalten, Vereinigung/Schnitt/Differenz arbeiten auf Mengen, das kartesische Produkt kombiniert alle Tupelpaare.

Abitur-Tipp: Übe das Übersetzen zwischen Algebra und SQL in beide Richtungen – das ist regelmäßig Prüfungsstoff.