Bedienungsanleitung für den Relationale-Algebra-Rechner
Der Relationale-Algebra-Rechner ermöglicht das interaktive Lernen und Berechnen relationaler Algebra-Ausdrücke direkt im Webbrowser. Mit diesem interaktiven Editor können Sie relationale Datenbankabfragen ganz ohne lokale DBMS-Installation simulieren.
- Datensätze einrichten — Nutzen Sie die integrierten Beispieltabellen (Students, Courses, Enrollments) oder importieren Sie eigene Daten im CSV-, TSV- oder JSON-Format über den Import-Dialog.
- Algebraischen Ausdruck formulieren — Nutzen Sie die praktischen Symbol-Buttons (σ, π, ρ, ∪, ∩, −, ×, ⨝, ⟕, ⟖, ⟗, ⋉, ÷) oder tippen Sie die Abfrage direkt in den Editor.
- Ausführung starten — Ein Klick auf „Ausführen“ parst die Eingabe in einen abstrakten Syntaxbaum (AST) und führt jeden Schritt im Relationale-Algebra-Rechner zuverlässig aus.
- Ergebnisse analysieren — Überprüfen Sie den geparsten Ausdruck, die einzelnen Rechenschritte sowie die finale Relationstabelle inklusive Zeilen- und Tupelstatistiken.
Operatoren und mathematische Grundlagen im Relationale-Algebra-Rechner
Der Relationale-Algebra-Rechner implementiert alle klassischen Basis- und abgeleiteten Operationen der relationalen Datenbanktheorie:
Selektion (σ)
Die Selektion filtert Tupel (Zeilen) aus einer Relation, die ein bestimmtes Prädikat bzw. eine Bedingung erfüllen:
σ[Bedingung](Relation)
→ Liefert alle Tupel aus der Relation zurück, die die Bedingung erfüllen.
Beispiel: σ[age>20](Students)
Projektion (π)
Die Projektion wählt bestimmte Attribute (Spalten) aus einer Relation aus und eliminiert eventuell entstehende Duplikate:
π[Attribut1, Attribut2, ...](Relation)
→ Liefert eine neue Relation mit den ausgewählten Spalten zurück.
Beispiel: π[name,major](Students)
Umbenennung (ρ)
Die Umbenennung modifiziert den Namen einer Relation oder einzelner Attribute:
ρ[NeuerRelationsname](Relation) → Benennt die gesamte Relation um
ρ[NeuesAttribut/AltesAttribut](Relation) → Benennt ein einzelnes Attribut um
Beispiel: ρ[Learners](Students)
Mengenoperationen: Vereinigung (∪), Schnittmenge (∩), Differenz (−)
Für diese Mengenoperationen müssen beide Relationen vereinigungskompatibel sein (identische Spaltenanzahl und passende Datentypen):
R ∪ S → Vereinigung: Alle Tupel, die in R oder S (oder beiden) enthalten sind
R ∩ S → Schnittmenge: Tupel, die sowohl in R als auch in S enthalten sind
R − S → Mengendifferenz: Tupel, die in R, aber nicht in S enthalten sind
Kartesisches Produkt (×)
Erzeugt alle möglichen Kombinationen von Tupeln aus zwei Relationen:
R × S
→ Bildet das Kreuzprodukt aller Datensätze von R und S.
Gleichnamige Spalten werden automatisch mit dem Tabellennamen präfixiert.
Natürlicher Join (⨝)
Verbindet zwei Relationen anhand aller übereinstimmenden Attributnamen durch Gleichheit:
R ⨝ S
→ Führt einen Natural Join über alle gleichnamigen Spalten aus.
Beispiel: Students ⨝ Enrollments
Theta-Join
Verknüpft zwei Relationen über eine frei definierbare Vergleichsbedingung:
R ⨝[Bedingung] S
→ Verknüpft Tupel aus R und S, sofern die Bedingung erfüllt ist.
Beispiel: Students ⨝[Students.sid=Enrollments.sid] Enrollments
Äußere Joins (Outer Joins: ⟕, ⟖, ⟗)
Bewahren nicht matchende Tupel und füllen fehlende Attribute mit NULL-Werten auf:
R ⟕ S → Left Outer Join (alle Tupel aus Relation R bleiben erhalten)
R ⟖ S → Right Outer Join (alle Tupel aus Relation S bleiben erhalten)
R ⟗ S → Full Outer Join (alle Tupel aus beiden Relationen bleiben erhalten)
Semi-Join (⋉) und Anti-Join (▷)
Filtern Tupel einer Relation basierend auf dem Vorhandensein oder Fehlen von Entsprechungen:
R ⋉ S → Semi-Join: Liefert Tupel aus R, für die mindestens ein Partner in S existiert
R ▷ S → Anti-Join: Liefert Tupel aus R, für die kein passender Partner in S existiert
Division (÷)
Die relationale Division löst Anfragen nach dem Muster „Finde alle Entitäten, die mit allen Elementen einer anderen Menge in Beziehung stehen“:
R ÷ S
→ Ermittelt jene Tupel aus R, die zu ALLEN Tupeln aus S zugeordnet sind.
Übersicht der Operatoren und Syntaxvarianten
| Operator | Symbol | Text-Keyword | Beschreibung |
|---|---|---|---|
| Selektion | σ | SELECT | Zeilen anhand von Prädikaten filtern |
| Projektion | π | PROJECT | Spalten auswählen und Duplikate entfernen |
| Umbenennung | ρ | RENAME | Relationen oder Spalten umbenennen |
| Vereinigung | ∪ | UNION | Tupel zweier Relationen zusammenführen |
| Schnittmenge | ∩ | INTERSECT | Gemeinsame Tupel ermitteln |
| Differenz | − | EXCEPT / DIFFERENCE | Tupel einer Relation abziehen |
| Kartesisches Produkt | × | CROSS | Alle Paare von Datensätzen kombinieren |
| Natürlicher Join | ⨝ | JOIN | Gleichnamige Attribute automatisch verbinden |
| Left Outer Join | ⟕ | LEFT | Linke Relation vollständig behalten |
| Right Outer Join | ⟖ | RIGHT | Rechte Relation vollständig behalten |
| Full Outer Join | ⟗ | FULL | Beide Relationen vollständig behalten |
| Semi-Join | ⋉ | SEMI | Vorhandensein in Partnerrelation prüfen |
| Anti-Join | ▷ | ANTI | Abwesenheit in Partnerrelation prüfen |
| Division | ÷ | DIV | Universelle Zuordnung (Für-alle-Bedingung) |
Typische Anwendungsfälle für den Relationale-Algebra-Rechner
Der Relationale-Algebra-Rechner unterstützt Studierende, Dozierende und Entwickler in vielfältigen Lernszenarien:
- Übungen für Datenbank-Vorlesungen — Lösen und kontrollieren Sie universitäre Hausaufgaben zur relationalen Algebra mit dem Relationale-Algebra-Rechner.
- Verständnis von SQL-Abfragen vertiefen — Erkennen Sie die theoretischen Zusammenhänge hinter SQL-Befehlen wie SELECT, WHERE und JOIN durch praktische Auswertung im Relationale-Algebra-Rechner.
- Klausurvorbereitung Informatik — Trainieren Sie typische Prüfungsaufgaben zu Joins, Mengendifferenzen und relationaler Division praxisnah im Relationale-Algebra-Rechner.
- Query-Optimierung erforschen — Vergleichen Sie äquivalente algebraische Ausdrücke (wie Prädikat-Pushdown vor Joins) direkt in der Schritt-für-Schritt-Ansicht.
- Join-Typen im Detail vergleichen — Untersuchen Sie das unterschiedliche Verhalten von Natural Join, Outer Joins, Semi-Join und Anti-Join auf demselben Datensatz im Relationale-Algebra-Rechner.