FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

GDB: Hilfe

GDB: Hilfe 2010-02-14 14:50
Anonymer User
Moin Leute, bin grad am GDB lernen, aber ich dreh hier noch durch, dieses "Script" kann man wirklich in die Tonne kloppen… Sätze hören mitten drin auf, Erklärungen? Fehlanzeige. Ohne jegliche Definition wird mit Abkürzungen durch die Gegend geworfen… Einen ganzen Satz findet man auch höchstens alle 10 Folien einmal. Das geht schon damit los, dass man evtl. wenigstens auf einer Folie mal hätte ausschrieben können was eigentlich die 3 Buchstaben SQL bedeuten, aber das ist was anderes.

Mir geht es jetzt um die Selektivitätsfaktoren, da ich da immer massig Abzug in den Übungen hatte. Die einzige Folie dazu, auf der man etwas findet, wie diese sich bilden lassen, ist Kapitel 4 Folie 58.
Das Problem hier ist nur, dass mal wieder keinerlei Erklärungen dabei stehen. Das große A steht wohl für irgendwelche Attribute, das könnte man noch erraten. Aber wofür in aller Welt stehen: j (ja Anzahl der Werte steht da, aber wie soll man das verstehen? Stelligkeit? maximales Vorkommen? …), i, a, high-key, low-key und was soll "interpolierbar" bedeuten in diesem Zusammenhang? Und wie ist die (Un)gleichung am Anfang der einzelnen Zeilen zu verstehen?

Bitte um Hilfe
Danke im Vorraus!

RE: GDB: Hilfe 2010-02-14 15:15
Anonymer User
A ist eine bestimmte Spalte in einer Tabelle. a ist ein konkreter Wert. Die Indizees sind dafür da verschiedene zu unterscheiden, also A_i ist eine andere Spalte als A_j und a_i ist ein anderer Wert als a_j


Wenn du Beispielsweise eine Relation R mit (Name, Nummer, Farbe) hast und hast den ausdruck

sigma_(Name = Peter) (R)

dann wäre z. B. name A_i und Peter a_i

j_i wäre dann die Anzahl der Möglichen Namen. Das kann man schwer schätzen, aber wenn man z. B. sigma_(Nummer = 10) (R) hat und weiß, dass die nummern nur bis hundert gehen, dann ist j_i die 100.

high_key und low_key sind immer die maximalen werte. Also wenn du weißt, dass die höchste Nummer im Feld Nummer die 77 ist und die niedrigste die 12, dann hast du deinen high_key und low_key.

interpolierbar würde ich so interpretieren, dass in etwa eine gleichverteilung vorliegt. WEnn ich zum Beispiel in einer Tabellenspalte das Alter von Personen speicher und es geht z. B. um einen Kinderturnverein. Dann liegen die meisten werte zwischen 0 und 18 (oder so) möglicherweise ist aber ein Wert in der Tabelle, der 40 ist, weil das der Trainer ist. Wenn man jetzt als anfrage hätte "wie viele mitglieder des vereins sind > 20" würde bei (high_key - a)/(high_key - low_key) 50% herauskommen, was ja quatsch ist, weil eben keine gleichverteilung vorliegt.

Die (Un)gleichungen am anfang zeigen an, wonach du suchst

Ai = ai bedeutet: Der Wert in Spalte i hat genau den Wert i
Ai = Ak bedeutet: Der Wert in Spalte i hat genau den Wert von Spalte k
Ai >= ai bedeutet: Der Wert in Spalte i ist größer als Wert i
das letzte bedeutet: Der Wert in Spalte i ist in einem bestimmten Bereich

RE: GDB: Hilfe 2010-02-14 15:30
Anonymer User
Ahaaa!

Mit der Erklärung dazu ists gut nachvollziehbar was da steht,

Vielen Dank!

RE: GDB: Hilfe 2010-02-14 15:39
theorinix
[…]
Ai = ai bedeutet: Der Wert in Spalte i hat genau den Wert i
Ai = Ak bedeutet: Der Wert in Spalte i hat genau den Wert von Spalte k
Ai >= ai bedeutet: Der Wert in Spalte i ist größer als Wert i
das letzte bedeutet: Der Wert in Spalte i ist in einem bestimmten Bereich

Steht >= nicht für "größer oder gleich"?
Dann also: "Ai >= ai bedeutet: Der Wert i ist echt kleiner als der Wert in Spalte i"

RE: GDB: Hilfe 2010-02-14 15:43
Anonymer User
Steht >= nicht für "größer oder gleich"?
Dann also: "Ai >= ai bedeutet: Der Wert i ist echt kleiner als der Wert in Spalte i"

ja, natürlich… flüchtigkeit

RE: GDB: Hilfe 2010-02-14 16:19
s4ms3milia
Das Skript ist echt nicht das wahre. Jetzt beim lernen fällt mir auf, dass ich das in der Evaluation ein bisschen doller hätte ankreiden sollen. Verstehe nicht wieso Übungsaufgaben, Klausur, Übungsfolien alle super sind, aber der Hauptteil so ein Murks ist.

RE: GDB: Hilfe 2010-02-14 17:46
ElFitz
Naja die Vorlesung war ja super, aber das Skript dazu ist echt nicht zum Aushalten. Nachvollziehen kann man da später nix mehr.

RE: GDB: Hilfe 2010-02-14 18:00
s4ms3milia
Hat vielleicht jemand in den früheren Semestern als Klausurvorbereitung eine Mindmap oder eine Zusammenfassung geschrieben? Das wäre hilfreich :-).

RE: GDB: Hilfe 2010-02-14 18:19
bash
Ich habe das bei der Evaluation angekreidet, sogar massivst.
Am Mindmap sitz ich noch und die Zusammenfassung…naja, ich arbeite dran, aber das ist so massiv und Stückwerk, ob ich damit noch fertig werde…

RE: GDB: Hilfe 2010-02-14 19:50
JimiHendrix
Hier aus WS08/09 eine Zusammenfassung, ohne Anspruch auf Richtigkeit und Vollständigkeit.


Viel Spaß damit..
Anhänge gdb-zsfg.pdf

RE: GDB: Hilfe 2010-02-14 20:31
tein
Cool, vielen Dank.

RE: GDB: Hilfe 2010-02-14 20:38
s4ms3milia
Danke vielmals :-)

RE: GDB: Hilfe 2010-02-14 23:58
Stefan1971HH
nicht ungeil, danke

RE: GDB: Hilfe 2010-02-15 00:17
Anonymer User
Gab es jetzt eigentlich Tipps o.ä. zur Klausur? Vor allem ob XML und X-Path drankommt, da wir das ja in den Übungen mit keinem Federstrich beehrt haben. Die Normalformen gehen ja noch, aber jetzt noch fix die Syntax von X-Path und XML zu lernen ist einbisschen doof.

RE: GDB: Hilfe 2010-02-15 05:39
ElFitz
XML kommt wohl dran, aber höchstens sowas wie Anfragen in normaler Sprache hinschreiben … keine Garantie, aber das ist das, was ich im Hinterkopf behalten hab … ein bischen Lücke muss sein. Ich wäre schon froh, wenn ich den Rest mal in einen annehmbaren Zeit schaffen würde … bin einfach zu langsam. Ich könnte die doppelte Zeit für die Klausur brauchen.

RE: GDB: Hilfe 2010-02-15 12:04
Anonymer User
XML kommt wohl dran, aber höchstens sowas wie Anfragen in normaler Sprache hinschreiben … keine Garantie, aber das ist das, was ich im Hinterkopf behalten hab … ein bischen Lücke muss sein. Ich wäre schon froh, wenn ich den Rest mal in einen annehmbaren Zeit schaffen würde … bin einfach zu langsam. Ich könnte die doppelte Zeit für die Klausur brauchen.

Das mit der Zeit sehe ich genauso. Das ist einfach total übertrieben. Unter umständen kann man komplett alles und bekommt trotzdem eine 3 oder fällt gar durch.

RE: GDB: Hilfe 2010-02-15 12:24
Anonymer User
Ja, die Probeklausur in 2 Stunden zu schaffen fand ich auch knapp an unmöglich grenzend… Wenn das Verhältnis zwischen Umfang eines Übungszettels und Umfang der Klausur genau so ist, wie in anderen Modulen, graut mir wirklich vor der Klausur ~~

Ich meine 3 Fragen zu jedem Thema reichen doch es müssen doch nicht immer 10+ sein…
Und wenn ich sehe, dass für nen Select-Statement schreiben 3 Minuten in der Probeklausur angesetzt sind… Das kann man schaffen wenn man nen Webserver betreibt oder sonstwas tut, aber nicht im Normalfall. Allein schon deshalb, da ich zumindest mich in die mysteriöse Ausführungsreihenfolge von SQL statements erstmal reindenken muss. (warum steht das SELECT vorne wenn es als letztes ausgeführt wird?)

Naja man wird sehen.

RE: GDB: Hilfe 2010-02-15 12:25
Anonymer User
Ist das nicht wieder mit 20 Bonuspunkten? Macht euch mal nicht ins Hemd, letztes Jahr ist die relativ gut ausgefallen habe ich in Erinnerung und es gab einige die ueber 100 Punkte hatten.

RE: GDB: Hilfe 2010-02-15 13:03
Anonymer User
Ist das nicht wieder mit 20 Bonuspunkten? Macht euch mal nicht ins Hemd, letztes Jahr ist die relativ gut ausgefallen habe ich in Erinnerung und es gab einige die ueber 100 Punkte hatten.

Von Bonuspunkten ist nichts bekannt. Aber die Kritik ist dennoch gerechtfertigt, 2 oder 3min pro SQL Anfrage ist unsinnig. Man bedenke, dass es für uns Informatiker nicht komplett einfach ist, was machen da die armen Schweine aus anderen Studiengängen?

RE: GDB: Hilfe 2010-02-15 13:42
Anonymer User
Könnte mir jemand verraten, wie ich am einfachsten meine SQL Anfragen bzw. DDL Dinge testen kann? Bin da leider absolut nicht bewandert. :/
Vor allem dürfen wir ja nur die Standard-SQL Syntax nutzen und meine Literatur verwendet Oracle und MySQL.

RE: GDB: Hilfe 2010-02-15 14:52
s4ms3milia
Ich wollte die Zeit nochmal für einen Skript-Flame nutzen. Es ist unter aller Sau und verwirrt beim lernen mehr, als dass es hilft.

RE: GDB: Hilfe 2010-02-15 14:57
Anonymer User
Folienkopieenflame.

Aber ja, ich rühre es überhaupt nicht mehr an. Wikipedia und andere Lektüre muss herhalten. Vor allem hat die gedruckte Version weder Inhalts- noch Stichwortverzeichnis und ist somit vollkommen nutzlos.

RE: GDB: Hilfe 2010-02-15 15:04
tein
Ich wollte die Zeit nochmal für einen Skript-Flame nutzen. Es ist unter aller Sau und verwirrt beim lernen mehr, als dass es hilft.
Ich benutze zur Vorbereitung neben einem Lehrbuch nur die Übungsmaterialien inkl. Probeklausur. Optimal ist das nicht, aber irgendwie muss es reichen.

RE: GDB: Hilfe 2010-02-15 15:22
Anonymer User
Attributname –> Relationsname j. Attributname k

Hab ich das so richtig verstanden, dass die untere Zeile mit  dem Attributnamen der jeweiligen Tabelle benannt ist, in der es verwendet wird, gefolgt (–>) der Zuordnung aus einer anderen Relation mit Relationsname1 und der Spezfikation des Attributsnamens(Primärschlüssel) aus der Relationstabelle mit Realtionsname 1   ?

also
Relationsname1(Rn1) ( Attributname  (1..n) )
Relationsname2(Attributname2, Attributname  (1..n),  Relationsname2 –> Relationsname1.Attributnameaus Rn1

RE: GDB: Hilfe 2010-02-15 15:33
Anonymer User
Ziemlich wirr beschrieben. Die Dummie Version:

Sagen wir du hast ein Table Glas, in dem (u.A)Gurken und die GlasID enthalten sind.
Und du hast ein Table Gurken, mit Gurkensorte, GlasID und weiss der Teufel was.

Die Notation des Fremdschlüssels wäre also
GlasID —>Glas.GlasID

GlasID aus Gurken Table referenziert auf die GlasID aus dem Glas Table (und du weisst, welche Gruke in welchem Glas liegt).

Beispiel:
Glas(GlasID, Füllmenge, Geschmacksrichtung)
Gurken(GlasID–>Glas.GlasID, Gurkensorte, Gurkenfarbe)

Das wäre die Notation.

RE: GDB: Hilfe 2010-02-15 15:39
Anonymer User
Also nochmal in der wirren Notation:

RelationsnameA(Attributname_x,Attributname_y—>RelationsnameB.Attributname_b)

RE: GDB: Hilfe 2010-02-15 16:07
Anonymer User
Was heißt: der Verbund ist nicht möglich, da die Verbundsattribute durch die vorhergehende Projektion ausgeblendet wurden ?

um eine antort immer dankbar lg

RE: GDB: Hilfe 2010-02-15 16:10
Anonymer User
Sind die Musterlösungen alle durchgeschaut worden also korrekt?

Vor allem die Musterlösung zu Blatt 3, Algebraische Optimierung.
Da steht in der Aufgabe, dass jeder 25. Personalangestellte ein Projektleiter ist. Im (unoptimierten) Baum von c) wird auf einen Leiter Selektiert (Leiter = 22) - ergo müssten die Tupel doch um den Faktor 1/25 kleiner werden, statdessen werden die Tupel um 1/80 kleiner. Entweder ist die Lösung falsch oder ich verstehe das ganze nicht so wirklich.

RE: GDB: Hilfe 2010-02-15 16:12
Baum
Was heißt: der Verbund ist nicht möglich, da die Verbundsattribute durch die vorhergehende Projektion ausgeblendet wurden ?

um eine antort immer dankbar lg

Es heisst genau das, was da steht? :)
Du willst einen natürlichen Verbund machen, also hast zwei Tabellen und vereinst sie so, dass das Attribut PID der einen Tabelle gleich dem Attribut PID der anderen Tabelle ist. Jetzt hast du aber vorher eine Projektion gemacht - sagen wir auf Name und Vorname - und hast dementsprechend jetzt nur eine Tabelle mit den Attributen Name und Vorname. Ergo funktioniert der Verbund nicht, da ja keine PID mehr da ist, die mit der anderen PID verbunden werden kann.

RE: GDB: Hilfe 2010-02-15 16:15
Anonymer User
Ist der Verbund dann nur möglich wenn die  die attributschlüssel nich  über eine dritte Tabelle verbunden sind ?

RE: GDB: Hilfe 2010-02-15 16:30
Baum
Ist der Verbund dann nur möglich wenn die  die attributschlüssel nich  über eine dritte Tabelle verbunden sind ?

Der Verbund ist nur mit Attributen möglich, die noch existieren. In der Algebra arbeitest du immer an einem Konstrukt, wenn du vorher Attribute wegprojeziert hast sind sie weg. Bei einem späteren Verbund der sich eben auf dieses Konstrukt bezieht kannst du nicht einfach so auf die ursprünglichen Attribute(bzw ursprünglichen Tabellen) zugreifen, also auch nicht mit ihrer Hilfe irgendetwas verbinden.

Also erst verbinden, dann projezieren. Oder beim Projezieren darauf achten, dass das Attribut, das zum Verbinden gebraucht wird, mitprojeziert wird.

RE: GDB: Hilfe 2010-02-15 16:31
Anonymer User
Sind die Musterlösungen alle durchgeschaut worden also korrekt?

Vor allem die Musterlösung zu Blatt 3, Algebraische Optimierung.
Da steht in der Aufgabe, dass jeder 25. Personalangestellte ein Projektleiter ist. Im (unoptimierten) Baum von c) wird auf einen Leiter Selektiert (Leiter = 22) - ergo müssten die Tupel doch um den Faktor 1/25 kleiner werden, statdessen werden die Tupel um 1/80 kleiner. Entweder ist die Lösung falsch oder ich verstehe das ganze nicht so wirklich.

Damit das hier nicht untergeht *nach oben push*

RE: GDB: Hilfe 2010-02-15 16:40
tein
Sind die Musterlösungen alle durchgeschaut worden also korrekt?

Vor allem die Musterlösung zu Blatt 3, Algebraische Optimierung.
Da steht in der Aufgabe, dass jeder 25. Personalangestellte ein Projektleiter ist. Im (unoptimierten) Baum von c) wird auf einen Leiter Selektiert (Leiter = 22) - ergo müssten die Tupel doch um den Faktor 1/25 kleiner werden, statdessen werden die Tupel um 1/80 kleiner. Entweder ist die Lösung falsch oder ich verstehe das ganze nicht so wirklich.

Damit das hier nicht untergeht *nach oben push*
Es gibt nicht 25 Projektleiter, sondern derer 80 (2000/25).

RE: GDB: Hilfe 2010-02-15 16:44
Anonymer User
Sind die Musterlösungen alle durchgeschaut worden also korrekt?

Vor allem die Musterlösung zu Blatt 3, Algebraische Optimierung.
Da steht in der Aufgabe, dass jeder 25. Personalangestellte ein Projektleiter ist. Im (unoptimierten) Baum von c) wird auf einen Leiter Selektiert (Leiter = 22) - ergo müssten die Tupel doch um den Faktor 1/25 kleiner werden, statdessen werden die Tupel um 1/80 kleiner. Entweder ist die Lösung falsch oder ich verstehe das ganze nicht so wirklich.

Damit das hier nicht untergeht *nach oben push*
Es gibt nicht 25 Projektleiter, sondern derer 80 (2000/25).

Uff, selbstverständlich *an die Rübe klatsch*. Danke dir!

RE: GDB: Hilfe 2010-02-15 16:55
Anonymer User
Hm, bei meiner Schrift tun sich die keinen Gefallen uns so krass unter Zeitdruck zu stellen.

RE: GDB: Hilfe 2010-02-15 17:09
Anonymer User
Schönen guten Tag,
ich habe ein Problem  die Algebraische Optimierung zu verstehen. Habe in den Übungensehr auch wenig Punkte bekommen.
Kann mir einer vielleicht die Grundzüge und das Vorgehen nochmal darin erläutern ? an irgendeiner Musterlösung… ka vielleicht aufgabenblatt3 aufgabe 4

herzlichen Dank im vorraus

RE: GDB: Hilfe 2010-02-15 18:19
Anonymer User
2000 / 25 = 80
Es gibt 80 Leiter Tupel

RE: GDB: Hilfe 2010-02-15 18:27
Stefan1971HH
Hi, ich hätt auch noch eine Frage:
Musterlösungen zu Blatt 4:
http://vsis-www.informatik.uni-hamburg.de/teaching/ws-09.10/gdb/aufgaben/aufgabenblatt4Lsg.pdf

Wieso muss ich bei Aufgabe 3 für Schema 1 und Schema 2 nicht zwischen "erst rechts" und "erst links" unterscheiden?
Selbst, wenn das im Ergebnis keinen Unterschied macht, müsste ebendies doch erst durch Betrachtung beider Möglichkeiten gezeigt werden…?

danke,
Stefan

RE: GDB: Hilfe 2010-02-15 18:33
Anonymer User
Nachnamen derjenigen Abteilungsleiter,die ausschließlich Mitarbeiter mit einem geringeren Alter als sie selbst haben, sowie den Namen der von ihnen geleiteten Abteilungen.

Habe eine Frage zur Lösung.

SELECT A.Name, L.Nachname
FROM Abteilungen A, Personal L
WHERE A.Leiter = L.PID
AND L.Geburt < ALL ( SELECT Geburt
FROM Personal M
WHERE M.Abteilung = A.AID
AND M.PID != L.PID)

Kommt mir irgendwie komisch vor. Wo wird denn hier gesagt, dass nur die Geburtstage der Leute zum Vergleich herangezogen werden, die auch tatsächlich beim Abteilungsleiter in der Abteilung sitzen? Der zweite Select Block sagt doch nur "nimm Geburt aus Personal, wo die Abteilung mit der AID übereinstimmt und wo die Mitarbeiter.PID ungleich der Leiter.PID ist". Wie wird der Bezug zur Abteilung des Leiters hergestellt?

RE: GDB: Hilfe 2010-02-15 18:52
Anonymer User
kann mir einer sagen  wie die auswahl der Tupel von statten geht…. wenn ich eine menge verbinde welche tupelgröße wird dann genommen ?

RE: GDB: Hilfe 2010-02-15 19:13
RaG
Wie wird der Bezug zur Abteilung des Leiters hergestellt?
In der äußeren Anfrage durch "WHERE A.Leiter = L.PID".

Hab selber auch eine Frage. Wenn man bei Triggern "REFERENCING NEW_TABLE AS X" macht, besteht X dann nur aus dem Teil der Relation, der neu hingezugekommen ist bzw. verändert wurde, oder ist es die insgesamt entstehende Relation, also auch mit den Tupeln, die vorher schon drin waren?

RE: GDB: Hilfe 2010-02-15 19:47
Anonymer User
NEW_TABLE sagt doch alles.

RE: GDB: Hilfe 2010-02-15 20:21
RaG
Sehr hilfreich…

Kannst du noch sagen, WAS das sagt? Für mich ist das nich so klar.

RE: GDB: Hilfe 2010-02-15 20:27
Anonymer User
OLD_TABLE und NEW_TABLE liefern dir Instanzen der kompletten Tables. AFAIK.

RE: GDB: Hilfe 2010-02-15 23:30
Anonymer User
Nachnamen derjenigen Abteilungsleiter,die ausschließlich Mitarbeiter mit einem geringeren Alter als sie selbst haben, sowie den Namen der von ihnen geleiteten Abteilungen.

Habe eine Frage zur Lösung.

SELECT A.Name, L.Nachname
FROM Abteilungen A, Personal L
WHERE A.Leiter = L.PID
AND L.Geburt < ALL ( SELECT Geburt
                              FROM Personal M
                              WHERE M.Abteilung = A.AID
                              AND M.PID != L.PID)

Kommt mir irgendwie komisch vor. Wo wird denn hier gesagt, dass nur die Geburtstage der Leute zum Vergleich herangezogen werden, die auch tatsächlich beim Abteilungsleiter in der Abteilung sitzen? Der zweite Select Block sagt doch nur "nimm Geburt aus Personal, wo die Abteilung mit der AID übereinstimmt und wo die Mitarbeiter.PID ungleich der Leiter.PID ist". Wie wird der Bezug zur Abteilung des Leiters hergestellt?

….naja….das impliziert das Wort "mitarbeiter" meiner Meinung nach.

Viel Erfolg uns allen Morgen :)

RE: GDB: Hilfe 2010-02-16 00:51
8kalinow
Nachnamen derjenigen Abteilungsleiter,die ausschließlich Mitarbeiter mit einem geringeren Alter als sie selbst haben, sowie den Namen der von ihnen geleiteten Abteilungen.

Habe eine Frage zur Lösung.

SELECT A.Name, L.Nachname
FROM Abteilungen A, Personal L
WHERE A.Leiter = L.PID
AND L.Geburt < ALL ( SELECT Geburt
                              FROM Personal M
                              WHERE M.Abteilung = A.AID
                              AND M.PID != L.PID)

Kommt mir irgendwie komisch vor. Wo wird denn hier gesagt, dass nur die Geburtstage der Leute zum Vergleich herangezogen werden, die auch tatsächlich beim Abteilungsleiter in der Abteilung sitzen? Der zweite Select Block sagt doch nur "nimm Geburt aus Personal, wo die Abteilung mit der AID übereinstimmt und wo die Mitarbeiter.PID ungleich der Leiter.PID ist". Wie wird der Bezug zur Abteilung des Leiters hergestellt?

Ich ergaenze mal einfach:
"nimm Geburt aus Personal, wo die Abteilung mit der AID die wir gerade schon im aeusseren Select Block durch den Join von Leiter und Abteilung spezifiziert haben übereinstimmt und wo die Mitarbeiter.PID ungleich der Leiter.PID ist"