Relationale Algebra - Anfragen formulieren

ac1989

Grünschnabel
hallo,

ich hatte die folgende Anfrage und sollte sie in relationale Anfrage ausdrücken:

"Gesucht sind alle Reiseabschnitte am Anfang einer Reise."

dazu habe ich in dem Ordner die Relationen, Musterlösung sowie meine Analyse der einzelnen Schritte hinzugefügt.
DIe Analyse habe ich für mich selber gemacht, um die Schritte nachzuvollziehen, indem ich zunächst die Relation "Reiseabschnitte"
als Tabelle aufgefasst und nacheinander aufgezeichnet habe, was passiert.
Aber habe trzdem nicht ganz verstanden wie die vorgegangen sind bzw. warum dieser Ausdruck(musterlösung) die Lösung zu der Anfrage liefert.



gruß,
ac1989
 

Anhänge

  • Relationale Algebra.7z
    1,8 MB · Aufrufe: 24
Möp. Ähm...

Mit dem Algebrazeugs kann ich leider nicht sonderlich viel anfangen. Wenn ich für mich in Deutsch die Aufgabe auf die vorhandene Relation anwende, kommt da folgende Logik bei raus:

Code:
Suche Reiseabschnitte, deren ID niemals auch als NachfolgerID in dieser Relation vorkommt.

Ein PseudoSQL-Statement würde dann so aussehen:

Code:
SELECT * 
FROM Reiseabschnitt
WHERE ID NOT IN (
  SELECT NachfolgerID 
  FROM Reiseabschnitt
)

Wenn man das etwas (für mich umständlicher) macht, könnte man es auch so angehen

Code:
SELECT Reiseabschnitt.ID,
Vergleichstabelle.NachfolgerID
FROM Reiseabschnitt
LEFT JOIN Reiseabschnitt AS Vergleichstabelle ON Reiseabschnitt.ID = Vergleichstabelle.NachfolgerID
WHERE Vergleichstabelle.NachfolgerID IS NULL

Mit viel gutem Willen könnt ich die Musterlösung dann so lesen:
Reiseabschnitt-(AUSDRUCK) ziehe von dem gesamten Datenbestand AUSDRUCK ab
PID ? NachfolgerID(AUSDRUCK) ich hab keine Ahnung was der Pfeil bedeutet - vllt eine Entsprechung? PID muss einer NachfolgerID aus dem danach folgenden Ausdruck entsprechen
? NachfolgerID (Reiseabschnitt)) JOIN Reiseabschnitt keine Ahnung was das ? bedeutet, ansonsten würd ich hierunter das JOIN verstehen



Wie würdest du diese....Lösungsformel in Pseudocode übersetzen?
 
Zurück