FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

Prolog komischen Verhalten bei '>='

Prolog komischen Verhalten bei '>=' 2003-12-07 14:11
Anonymer User
Kann mir jemnd einen Tip geben, wie ich Teilaufgaben 7 und 8 lösen kann?
Wie kann ich die Gehälter der Spieler und Trainer für einen Vergleich auseinanderhalten?

Re: Prolog komischen Verhalten bei '>=' 2003-12-07 17:49
Anonymer User
hallo kann jemand mir sagen wo ich die datenbasis der probeklausur von P1 finden kann da sie nicht in der probeklausur enthalten ist?

// Slater: P1 möglichst in eigenen Thread!, falls noch Nachfragen sind also neu aufmachen

Re: Prolog komischen Verhalten bei '>=' 2003-12-07 18:21
Dennis-
zur P1-Frage:
die gibts nicht? man soll wohl ohne datenbasis auskommen
in der klausur steht aber wie die datenbasis aufgebaut ist
außerdem soll man ja eh so fragen das die genaue kenntnis der datenbasis keine rolle spielt

Re: Prolog komischen Verhalten bei '>=' 2003-12-09 18:39
Ksireau
Hab mal ne Frage zum eigentlichen Topic:

DB-Schema:
Verein (VName, Ort, Präsident)
Spiel (Heim, Gast, Resultat, Zuschauer, Termin, Spieltag, H-Trainer, G-Trainer)
Spieler (SpNr, Name, Vorname, Verein, Alter, Gehalt, Geb-Ort)
Trainer (TrNr, Name, Vorname, Verein, Gehalt)
Einsatz (Heim, Gast, SpNr, von, bis, Tore, Karte)

Primärschlüssel
Fremdschlüssel

Aufgabe ist: Formulieren Sie folgende Anfragen mit der Relationenalgebra

5. Welche Spieler haben noch nie gespielt?
Muss man dann davon ausgehen, dass der Spieler in der Einsatz Tabelle garnicht vorhanden ist, oder ist er dann im folgenden Schema eingetragen:
('HSV', 'Schalke', 1, 0, 0, 0, keine)?
Wenn der Datensatz nicht vorhanden ist, kann mir dann vielleicht jemand nen Ansatz verraten? Ich komm da echt nicht weiter =(

Achja, und wenn man die Tabellen Spieler und Verein joinen will, und man 'Verein' als Schlüssel haben will, sind dann Verein und VName das gleiche?

Re: Prolog komischen Verhalten bei '>=' 2003-12-09 23:58
tekai
Alle ohne einsatz sind alle spieler ohne die die einen einsatz hatten, das ist jedenfalls mein ansatz.

Re: Prolog komischen Verhalten bei '>=' 2003-12-10 20:46
slaYer977
dann müsste man doch irgendwie negieren so, dass
alle, die NICHT gespielt haben bleiben, oder?
aber dass können wir doch nicht, oder?

Ich hätte da noch mehr Fragen:

Kann ich selektieren, bevor ich einen Verbund mache?
Bsp.: Gib alle SpielerNamen des Vereins HSV
Ist diese Selektion zulässig?

pSpielerName (Spieler X(s Verein = HSV (Verein)))

Oder muss man dass unbedingt so machen:
pSpielerName (s Verein = HSV (Verein X Spieler))

Ich hoffe man versteht was ich meine :-)

——————

Ist das Joinen über mehrere möglich?
Müsste doch.

Bsp

pNamenderFrauenderSpieler (s Verein = HSV (Frauen X(Verein X Spieler)

——————

Zur guter Letzt:

Wie soll man 3.8 verstehen?
Frage ich jetzt nach den Trainern oder nach den Vereinen?

——————
thx

Re: Prolog komischen Verhalten bei '>=' 2003-12-10 22:22
tekai
dann müsste man doch irgendwie negieren so, dass
alle, die NICHT gespielt haben bleiben, oder?
aber dass können wir doch nicht, oder?
wenn negation von nöten wäre dann wäre sie auch auf dem aufgabenzettel angegeben.
Ich hätte da noch mehr Fragen:

Kann ich selektieren, bevor ich einen Verbund mache?
Bsp.: Gib alle SpielerNamen des Vereins HSV
Ist diese Selektion zulässig?

pSpielerName (Spieler X(s Verein = HSV (Verein)))

Oder muss man dass unbedingt so machen:
pSpielerName (s Verein = HSV (Verein X Spieler))

Ich hoffe man versteht was ich meine :-)
Das ist nicht nur zulässig sondern wohl auch besser die daten auf denen man operiert möglichst klein zu halten um so schneller zu sein.

Ist das Joinen über mehrere möglich?
Müsste doch.

Bsp

pNamenderFrauenderSpieler (s Verein = HSV (Frauen X(Verein X Spieler)
klar ist das möglich, du kannst alle operationen beliebig tief schachteln.
Zur guter Letzt:

Wie soll man 3.8 verstehen?
Frage ich jetzt nach den Trainern oder nach den Vereinen?

thx
Wenn man richtig fragt hängt es lediglich von der Projektion ab ob man Trainer oder Vereine haben will.

Re: Prolog komischen Verhalten bei '>=' 2003-12-12 19:07
Antje
Um nochmal auf diese frae zurückzukommen…

"Achja, und wenn man die Tabellen Spieler und Verein joinen will, und man 'Verein' als Schlüssel haben will, sind dann Verein und VName das gleiche?"

Kann mir jemand nen Hinweis zu Aufgabe 3.4 geben?

Re: Prolog komischen Verhalten bei '>=' 2003-12-12 21:06
tekai
Um nochmal auf diese frae zurückzukommen…

"Achja, und wenn man die Tabellen Spieler und Verein joinen will, und man 'Verein' als Schlüssel haben will, sind dann Verein und VName das gleiche?"

Kann mir jemand nen Hinweis zu Aufgabe 3.4 geben?
davon kann man ausgehen, die aufgabe ist dann kein problem mehr oder?

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 11:30
Alter Sack
dann müsste man doch irgendwie negieren so, dass
alle, die NICHT gespielt haben bleiben, oder?
aber dass können wir doch nicht, oder?
wenn negation von nöten wäre dann wäre sie auch auf dem aufgabenzettel angegeben.

Also, nach meiner Auffassung benötigst Du die Mengendifferenz, die aber auch nicht angegeben ist. Denn die gesuchte Relation ist ja diejenige aller Spieler ohne die Spieler, die schon einen Einsatz hatten. Ich denke, daß alle möglichen Operationen der Relationenalgebra auch verwendet werden können.

Soll x für Verbund als Symbol für die natürliche Verknüpfung oder das kartesische Produkt stehen? Benötigte ich übrigens auch beide, habe bislang x für NV und X für KP verwendet.

Gruß, Dirk

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 18:26
Soccer
Ich habe mal eine generelle Frage zu der Relationenalgebra:
Wenn ich aus zwei Mengen differenzierien will, benutze ich ja das / (oder doch das \?) Zeichen. Meine Frage lautet nun, muss ich da genauso wie beim Join noch angeben mit wechelm Attribut es differenziert wird?
Als Beispiel:
Wenn ich alle Studenten außer BWler haben will:
(Studenten / (s[fach="BWL"](Studenten))
ich weiss ich hätte auch einfach projezieren können…
oder muss ich nach dem / noch angeben, dass ich mit der Matrikelnummer differenziere?

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 18:34
Slater
ich denke es ist wenn schon dann ein '\',
aber '-' tuts wohl auch

Studenten - Studenten = {}

also wenn da noch was drin sein soll dann musst du selektieren,

Studenten - (s[fach="BWL"](Studenten))
liefert alle, die nicht BWL studieren, das sieht doch gut aus

wüsste nicht wie du das mit Projektion erreichen könntest.. ;)

Vorsicht bei Mengen-Operationen:
nur bei gleichstrukturieren Tabellen anwenden, also

Studenten - (pi[fach,name](Studenten))

wird nicht funktionieren, falls die Relation vorher mehr als diese beiden Attribute hatte,



was du zu der Matrikelnummer fragst hab ich nicht verstanden

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 18:51
Ksireau
Frage zu 8.
Welcher Trainer hat schon mehr als einen Verein trainiert bzw. welche Vereine hatten schon mehr als einen Trainer?

Gibt es in der Relationenalgebra sowas wie COUNT in SQL?
Soll die TrNr bei Trainern die mehr als ein Verein haben gleich bleiben oder ändert die sich?
Wenn sie gleich bleibt, geht dann folgendes:
…(s[COUNT(Trainer.TrNr)>1](Trainer)…) ?

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 19:05
Slater
nein kein Count,
und da Primärschlüssel, müssen alle TrNr verschieden sein,

das ganze funktioniert auch mit den bisherigen Mitteln,
das ist wirklich die Trick-Aufgabe,
keine Sorge wenn dir dazu nix einfällt, Tipp wär dazu eigentlich auch nicht das Wahre,

letztes Jahr gabs solche schweren gar nicht


Re: Prolog komischen Verhalten bei '>=' 2003-12-14 19:17
Soccer
ICh dachte vielleicht muss es so aussehen
Studenten / (pi[Matrikelnr](s[fach="BWL"](Studenten)))
oder
Studenten /MatNr (s[fach="BWL"](Studenten))
wobei das MatNr unter das / gehört



Re: Prolog komischen Verhalten bei '>=' 2003-12-14 19:22
Ksireau
nein kein Count
In unsere letzten Übung haben wir aber auch MAX() benutzt =)
keine Sorge wenn dir dazu nix einfällt, Tipp wär dazu eigentlich auch nicht das Wahre
Magste nich wenigstens sagen mit welcher Mengenoperation man da arbeiten sollte? =)

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 19:23
Slater
ICh dachte vielleicht muss es so aussehen
Studenten / (pi[Matrikelnr](s[fach="BWL"](Studenten)))
oder
Studenten /MatNr (s[fach="BWL"](Studenten))
wobei das MatNr unter das / gehört


vielleicht reden wir von verschiedenen Dingen?

ich meine Differenz zwischen Mengen wie auf II-79 definiert,
da ist nix mit Projektion,

und wie schon geschrieben denke ich dass es keinen Sinn macht
von einer Studenten-Tabelle eine Matrikelnummer-Tabelle zu substrahieren,

na gut, man könnte schon was sinnvolles interpretieren,
ist aber nun mal nicht definiert (soweit ich es sehe)

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 19:27
Slater
nein kein Count
In unsere letzten Übung haben wir aber auch MAX() benutzt =)
kommt auf den genauen Ausdruck an,
lässt sich vielleicht mit einigen UNDs und ODERs simulieren ;)
Magste nich wenigstens sagen mit welcher Mengenoperation man da arbeiten sollte? =)
jaja ich hätte besser gar nix sagen sollen..

kartesisches Produkt wirkt Wunder und nun psst

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 20:42
Soccer
Gibt es eigentlich in der Relationenalgebra auch ein ungleich zeichen, kann ich != benutzen?

Re: Prolog komischen Verhalten bei '>=' 2003-12-14 22:43
Alter Sack
Gibt es eigentlich in der Relationenalgebra auch ein ungleich zeichen, kann ich != benutzen?

Für die Prädikate der Abfragen (tiefgestellte Indizes) sind nach der mir vorliegenden Literatur die drei grundlegenden boolschen Operatoren UND, ODER und NICHT zulässig. Da es die Gleichheitsverknüpfung ebenfalls gibt, müsstest Du das NICHT wohl korrekt vor die Gleichheitsverknüpfung ziehen.

Gruß, Dirk

Re: Prolog komischen Verhalten bei '>=' 2003-12-15 00:56
Slater
Gibt es eigentlich in der Relationenalgebra auch ein ungleich zeichen, kann ich != benutzen?

schaut eigentlich irgendjemand noch ins Skript?! ;)
II-77