FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

Gdb Relationenalgebra

Gdb Relationenalgebra 2009-01-26 18:12
Anonymer User
Foliensatz 4 Folie 52
Finde die Schauspieler, die nur Faust oder Wallenstein gespielt haben.
Projektion PNR (DA) - Projektion PNR (σ FIGUR≠„FAUST“∧ FIGUR≠„Wallenstein“ (DA)))
Ich ziehe also von allen Darstellern diejenigen ab die beides Faust und Wallenstein gespielt haben?? dann erhalte ich doch aber nicht das gewünschte Ergebnis die Schauspieler die übrig bleiben können doch noch alle möglichen anderen Rollen gespielt haben???

RE: Gdb Relationenalgebra 2009-01-26 21:57
rothose86
Nein, du ziehst von allen Schauspielern die ab, die einmal NICHT Faust und NICHT Wallenstein gespielt haben.
Übrig bleiben also die Schauspieler, die Faust oder Wallenstein gespielt haben.

RE: Gdb Relationenalgebra 2009-01-27 12:19
Mr.Powers
Musterlösung 4
Aufgabe 2b)
ii)Worüber wird Behandelt und Reitet gejoint? Über die HID? dann erhalte ich doch eine Riesen Tabelle die mir nicht wirklich weiter hilft bei meinem Problem den ich will doch die Pferde haben die im Attribute Datum.Behandelt und im Datum.Reitet = sind ???
MM glaube ich habe das mit dem Join noch nicht richtig verstanden was das Ergebnis des Joins?
Wenn ich eine Projektion von Datum und Hid auf reitet mache und dann eine Projektion auf Behandelt auch mit Datum und Hid und dann davon die Schnittmenge bilde habe ich doch genau die Pferde die B.datum=R.Datum sind dann ein Join mit Pferd über die Hid und ich müsste doch auch das gewünschte Ergebnis haben oder????

RE: Gdb Relationenalgebra 2009-01-27 21:13
rothose86
Musterlösung 4
Aufgabe 2b)
ii)Worüber wird Behandelt und Reitet gejoint? Über die HID? dann erhalte ich doch eine Riesen Tabelle die mir nicht wirklich weiter hilft bei meinem Problem den ich will doch die Pferde haben die im Attribute Datum.Behandelt und im Datum.Reitet = sind ???
Da bei dem Join nichts näheres spezifiziert wird, ist das ein "natürlicher Join". Es werden dabei über die Spalten gejoint, die die selben Bezeichner haben. D.h. da Behandelt die Spalten Pferd und Datum hat die auch Reitet hat, wird über Pferd und Datum gejoint.
Dadurch ist das Ergebnis des Joins alle Ritte und Behandlungsdaten von Pferden, die an einem gleichen Tag auch geritten sind.

Wenn ich eine Projektion von Datum und Hid auf reitet mache und dann eine Projektion auf Behandelt auch mit Datum und Hid und dann davon die Schnittmenge bilde habe ich doch genau die Pferde die B.datum=R.Datum sind dann ein Join mit Pferd über die Hid und ich müsste doch auch das gewünschte Ergebnis haben oder????

Ja, denke schon.

RE: Gdb Relationenalgebra 2009-01-27 21:36
Anonymer User
Allgemeine frage zu den Joints :)
Welche zwei unterscheidet er nun? denn natürlichen Verbund ?und denn teta join??
oder unterscheidet er gar nicht???? Wenn ich unter den Join denn Fremdschlüssel schreibe über den gejoint werden soll was ist es dann?und was ist dann genau das Ergebnis?
Und wo genau liegt der unterschied?
Wenn ich nix an denn join schreibe dann joine ich doch Automatisch über alle gleichen Attribute oder??was ist dann genau das Resultat?
Kann vielleicht jemand vielleicht die Verwirrung durch ein kleines bsp beseitigen:)

RE: Gdb Relationenalgebra 2009-01-27 21:44
rothose86
Also. Es gibt den natürlichen Verbund, das ist der Join wenn du NICHTS dranschreibst.
Dann joint er über alle gleichen Attributspalten.
Also z.B. haben wir die Relation Person(PID,Name,Alter) und die Relation Tierarzt(TID,Name).
Machst du jetzt einen Natürlichen Verbund, also einen Join ohne genauere Spezifizierung zwischen Person und Tierarzt, dann wird über das Attribut Name gejoint, weil es den gleichen Spaltenbezeichner hat.

Wenn du unter den Join ein Prädikat schreibst, ist es kein natürlicher Verbund mehr, sondern dann ist es dasselbe wie das kartesische Produkt mit anschließender Selektion.

RE: Gdb Relationenalgebra 2009-01-28 10:48
Mr.Powers
Und bei beiden join arten werden auch nur die Tupel übernommen die bzg der werte in den gleichen Attributen gleich sind oder?
also nehmen wir an wir haben In Tierarzt ein Rudolf denn gibt es aber nicht bei Person dann fällt das komplette Tupel in der neuen Relation also nach dem join weg oder?
Gilt das für beide?oder ist es nur bei dem natürlichen Verbund?

RE: Gdb Relationenalgebra 2009-01-30 18:02
Mr.Powers
Wenn ich eine Differenz (R-S)habe und ich will ein Tupel von einem andern abziehen und die Einträge in dem Tupel aus der Relation R lauten zb (a,b)und aus S (a,c) wobei a,c werte von den Attributen Pnr,Figur sind und a,c auch kan ich dann die Differenz bilden ?
Oder muss das Tupel was ich von R abziehe wirklich identisch sein also in allen Werten gleich??Also nur wenn es auch (a,b) wäre würde ich es entfernen?
Die fragen habe ich mir gestellt als ich mir die Musterlösung von Blatt 4 an geguckt haben und versucht habe zu verstehen warum 4c) falsch ist