Relationsalgebra

G.P.

Legendäres Mitglied
Hallo,

ich bin gerade nach Haus gekommen und habe noch ein Projekt aufgedonnert bekommen welches bis morgen fertig gestellt werden soll. Ganz nebenbei muss ich auch noch ein paar Uebungsaufgaben fuer die Uni loesen.
An sich habe ich inzwischen alle fertig, mit einer Aussnahme. Bei der Aufgabe handelt es sich um erweiterte Relationsalgebra. Leider habe ich davon keine Ahnung und auch gerade nicht die Zeit mich einzulesen. Waehre also echt super wenn mir jemand helfen kann.

QUOTE
Ein Kunde hat wenig Zeit und kauft gern günstig ein. Er braucht für das Wochenende unbedingt noch Orangen und Spaghetti, aber er möchte möglichst nur einen Supermarkt aufsuchen und nur Waren aus dem Angebot kaufen. Gibt es einen solchen Supermarkt? Gesucht sind Name und Adresse.
Formulieren Sie für diese Anfrage einen Ausdruck mit den Operationen der erweiterten Relationenalgebra.

Tabellen:

Supermarkt (SID, Name, Adresse)
Angebot (SID, ANr)
Artikel (ANr, Bezeichnung)



Danke schon einmal im Voraus.

MfG
GP
 
Ich glaub der Jürgen ist schon im Bett. Wir haben verloren...

Denn zu meinem Beschämen kann ich das nicht mehr! Die SQL Query würd ich locker hinkriegen...

Mein erster Wurf war:
\phi(name, add)(Supermarkt\fliege(Angebote)\fliege\sigma[Bezeichnung="Orangen" \v Bezeichnung="Spaghetti"](Produkt))

Kein latex plugin also:
\phi ist das 3.14 dings da
\fliege ist natural join, sieht halt aus wie ne Fliege
\sigma ist halt sigma
wink.gif
das kleine o mit dem Haken
\v ist logisch or

Jetzt ist das nur offensichtlich falsch, weil es alle Namen und Adressen der Supermärkte liefert, die entweder Spaghetti und Orangen haben...

Ich hab mein bestes probiert und bin gescheitert, also erwart ich von Dir, dass Du in die Übungsstunde gehst und die Lösung hier postest..
wink.gif


Hm. evtl. ist es korrekt, wenn das \v in ein logisches Und verwandelt wird, also
\phi(name, add)(Supermarkt\fliege(Angebote)\fliege\sigma[Bezeichnung="Orangen" \n Bezeichnung="Spaghetti"](Produkt))

Hm. Also wenn keine zweite Meinung reinkommt und Du gar nicht auf die Lösung kommst, gib zweite Variante ab, aber es ist doch zu lange her als dass ich eine grosse Hilfe bin.. Ich hätte doch lieber auf das Thema mit dem leuchtenden Schwein klicken sollen...


PS:
\phi ist Projektion
\sigma ist Selektion
Ist das anders-rum in Deinen Vorlesungsunterlagen, musste halt ändern, weiss nicht mehr genau.
 
Das ist das was ich habe:

PName,Adresse(JSID(JANr(Supermarkt,SBezeichnung='Orange'(Artikel) n SBezeichnung='Spaghetti'(Artikel))))

P = Projektion (PI)
J = Join (Fliege)
S = Selektion (Sigma)
n = und (kopfstehendes u)

Aber ich war in jeglicher Art von Formalsprachen nie sonderlich gut... In SQL wäre der Ausdruck aber auch nicht so simpel, da man einen Join einer Tabelle mit sich selbst machen müsste...
 
Hallo,

danke euch beiden.
Ich hatte das Glueck diese Aufgabe nicht machen zu muessen
biggrin.gif


Aber erst einmal zur Aufgabe. Beide Loesungsanzsaetze von euch sind Falsch, da die Tupel "Orange" und "Spagetthie" nicht mit einer "and" Verknuepfung verbunden werden koennen.
Der eine Bezeichner kann nicht gleichzeitig zwei Werte enthalten. Das ganze muss mit einer "or" Verbindung gemacht werden und Dividiert werden.
So genau habe ich es aber nicht verstanden.

Ein Komulitone hat eine (falsche) Loesung vorgetragen, danach hat die Dozentin ueberall noch etwas hinzugefuegt und gestrichen, bis wirklich alle komplett verwirtt waren und nichts mehr verstanden haben ^^
 
ich bin mir ziemlich sicher, dass mein Ansatz jedenfalls richtig ist. Evtl. habe ich es nur falsch geschrieben. In SQL ist's Wortwörtlich ungefähr:

SELECT Name,Adresse FROM (SELECT * FROM (SELECT * FROM Artikel WHERE Bezeichnung='Orange') WHERE Bezeichnung='Spaghetti') AS Selektion
LEFT JOIN Supermarkt ON Supermarkt.ANr=Selektion.ANr
LEFT JOIN Angebot ON Supermarkt.SID=Angebot.SID

OK, ein Fehler habe ich oben drin... Angebot fehlte...bzw. war vertauscht

PName,Adresse(JSID(Supermarkt,JANr(Angebote,SBezeichnung='Orange'(Artikel) n SBezeichnung='Spaghetti'(Artikel))))
 
PS: Ein zweiter ansatz wäre über ein Produkt von Angebot mit sich selbst...
 
Zurück
Oben