RelaX Relationale-Algebra-Rechner

Relationale-Algebra-Rechner: Üben Sie relationale Algebra mit Selektion, Projektion, Joins und Mengenoperationen interaktiv im Browser ohne Datenbank-Server.

825.3K Berechnungen Aktualisiert · 2026-08-28 Lokale Ausführung · Kein Daten-Upload
AD

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.

  1. 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.
  2. Algebraischen Ausdruck formulieren — Nutzen Sie die praktischen Symbol-Buttons (σ, π, ρ, ∪, ∩, −, ×, ⨝, ⟕, ⟖, ⟗, ⋉, ÷) oder tippen Sie die Abfrage direkt in den Editor.
  3. 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.
  4. 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

OperatorSymbolText-KeywordBeschreibung
SelektionσSELECTZeilen anhand von Prädikaten filtern
ProjektionπPROJECTSpalten auswählen und Duplikate entfernen
UmbenennungρRENAMERelationen oder Spalten umbenennen
VereinigungUNIONTupel zweier Relationen zusammenführen
SchnittmengeINTERSECTGemeinsame Tupel ermitteln
DifferenzEXCEPT / DIFFERENCETupel einer Relation abziehen
Kartesisches Produkt×CROSSAlle Paare von Datensätzen kombinieren
Natürlicher JoinJOINGleichnamige Attribute automatisch verbinden
Left Outer JoinLEFTLinke Relation vollständig behalten
Right Outer JoinRIGHTRechte Relation vollständig behalten
Full Outer JoinFULLBeide Relationen vollständig behalten
Semi-JoinSEMIVorhandensein in Partnerrelation prüfen
Anti-JoinANTIAbwesenheit in Partnerrelation prüfen
Division÷DIVUniverselle 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.

Häufige Fragen zu RelaX Relationale-Algebra-Rechner

Was ist ein Relationale-Algebra-Rechner?

Ein Relationale-Algebra-Rechner ist ein interaktives Online-Tool, das Ausdrücke der relationalen Algebra wie Selektion (σ), Projektion (π), Umbenennung (ρ), Joins (⨝), Vereinigung (∪) und Division (÷) parst, schrittweise auswertet und die Ergebnistabellen direkt im Browser darstellt.

Wird für die Nutzung ein externer Datenbank-Server benötigt?

Nein. Der Relationale-Algebra-Rechner läuft vollständig clientseitig im Webbrowser mit JavaScript. Es ist keine Installation von PostgreSQL, MySQL oder anderen DBMS-Servern erforderlich. Datensätze und Berechnungen verbleiben lokal in Ihrem Browser.

Welche Operatoren der relationalen Algebra werden unterstützt?

Das Tool unterstützt alle Standard-Operatoren der Datenbank-Lehre: Selektion (σ), Projektion (π), Umbenennung (ρ), Vereinigung (∪), Schnittmenge (∩), Differenz (−), Kartesisches Produkt (×), Natürlicher Join (⨝), Theta-Join, Outer Joins (⟕/⟖/⟗), Semi-Join (⋉), Anti-Join (▷) sowie Division (÷).

Wie wird ein Ausdruck im Relationale-Algebra-Rechner eingegeben?

Sie können die Symbol-Schaltflächen der Benutzeroberfläche anklicken oder Ausdrücke direkt mit der Tastatur eingeben. Beispiel: σ[age>20](Students) filtert Studierende über 20 Jahren, π[name,age](Students) projiziert Spalten und Students ⨝ Enrollments führt einen Natural Join aus. Auch Text-Keywords wie SELECT, PROJECT und JOIN werden unterstützt.

Kann ich eigene Tabellendaten in den Rechner importieren?

Ja. Über die Import-Schaltfläche können Sie beliebige tabellarische Daten in den Formaten CSV, TSV oder JSON einfügen und als Relation laden. Zudem können Sie neue leere Tabellen anlegen und Zeilen manuell editieren.

Ist dies das offizielle RelaX-Tool der Universität Innsbruck?

Nein. Dieses Tool ist ein eigenständiger, vom universitären RelaX-Projekt inspirierter Relationale-Algebra-Rechner für Bildungszwecke. Es bietet eine moderne Weboberfläche zur schnellen Überprüfung von Übungsaufgaben und Datenbank-Konzepten.

Was ist der Unterschied zwischen Selektion (σ) und Projektion (π)?

Die Selektion (σ) filtert Relationen horizontal nach Zeilen (Tupeln), die eine Bedingung erfüllen (entspricht WHERE in SQL). Die Projektion (π) filtert vertikal nach Spalten (Attributen) und entfernt Duplikate (entspricht SELECT Spaltenliste in SQL).

Worin unterscheiden sich Natural Join und Theta Join?

Ein Natural Join (⨝) verknüpft Relationen automatisch anhand gleichnamiger Attribute. Ein Theta-Join ermöglicht beliebige explizite Verknüpfungsbedingungen in eckigen Klammern, beispielsweise Students ⨝[Students.sid=Enrollments.sid] Enrollments.