FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

[GDB-Klausur] Schlüsselkanidaten gegeben?

[GDB-Klausur] Schlüsselkanidaten gegeben? 2007-03-23 20:20
Hackbert!@home
Moin!
Weiß jemand, ob in der GDB-Klausur bei der Normalisierung die Schlüsselkandidaten schon angegeben waren? Ich sitze hier mit Viktor und versuche gerade ein schnelles Verfahren zur Ermittlung der Schlüsselkandidaten zu finden… Falls die nicht in der Klausur schon angegeben waren: Kent jemand ein schnelles Verfahren?

RE: [GDB-Klausur] Schlüsselkanidaten gegeben? 2007-03-24 20:43
f0k
Nein, die Schlüsselkandidaten waren nicht angegeben, wohl aber die funktionalen Abhängigkeiten. Die Relationen hatten aber alle schon unterstrichene Primärattribute.

Um einen Schlüsselkandidaten zu finden, nimmt man einfach irgendein Attribut und schaut bei den funktionalen Abhängigkeiten, welche Attribute es bestimmt. Für diese Attribute schaut man wieder, welche Attribute dadurch bestimmt werden usw., bis man nichts neues mehr findet. Wenn die Menge der so gefundenen Attribute schon alle Attribute der Relation umfasst, hat man bereits einen Schlüsselkandidaten (nämlich das "irgendein Attribut" vom Anfang), und sonst nimmt man noch ein zweites dazu (was nicht in der bisherigen Menge drin ist!) und ermittelt wieder alle transitiv abhängigen Attribute. Das macht man so lange, bis alle Attribute der Relation irgendwie transitiv von den gewählten Primärattributen abhängen, und dann hat man einen Schlüsselkandidaten (er ist automatisch minimal, wenn man nie ein Attribut als Primärattribut wählt, was bereits in der ermittelten Menge der abhängigen Attribute enthalten ist).
Um einen weiteren Schlüsselkandidaten zu finden, fängt man mit einem anderen "irgendein Attribut" an und macht das ganze nochmal.

RE: [GDB-Klausur] Schlüsselkanidaten gegeben? 2007-03-25 00:14
enco
Danke! Das Verfahren kannten wir vorher aber auch schon. Das Problem ist: es ist leider nicht schnell genug für eine Klausur. :(

RE: [GDB-Klausur] Schlüsselkanidaten gegeben? 2007-03-25 13:19
Hackbert
Yop. Angenommen Du hast nichtmal die Primärschlüssel und sagen wir mal 8 Attribute. Dann gibt es 2^8 Möglichkeiten für Schlüsselkandidaten. Im schlechtesten Fall besteht der SK aus allen 8 Attributen. Da kommt Freude auf, wenn man alle 255 anderen schon ausprobiert hat. OK, in einer Klausur werden die SK nicht so abartig aussehen, aber das Problem ist, dass man schnell welche vergessen kann. Damit werden dann auch alle Normalformen falsch, die man ab 2NF bildet…

RE: [GDB-Klausur] Schlüsselkanidaten gegeben? 2007-03-25 14:24
f0k
OK, in einer Klausur werden die SK nicht so abartig aussehen, aber das Problem ist, dass man schnell welche vergessen kann. Damit werden dann auch alle Normalformen falsch, die man ab 2NF bildet…
Ohne jetzt nochmal nachgeschaut zu haben: Braucht man die Schlüsselkandidaten für die Normalformen überhaupt? Ich meine, man kann immer direkt von den funktionalen Abhängigkeiten ausgehen und irgendwann die Definition von "Schlüsselkandidat" hinzunehmen, ohne explizit einmal alle Schlüsselkandidaten ermitteln zu müssen. Hab ich in der Klausur jedenfalls nicht gemacht, so weit ich mich erinnere. Aber man vergisst erschreckend schnell.

RE: [GDB-Klausur] Schlüsselkanidaten gegeben? 2007-03-25 17:55
Hackbert
Ohne jetzt nochmal nachgeschaut zu haben: Braucht man die Schlüsselkandidaten für die Normalformen überhaupt?
Nur für die 1NF braucht man keine Schlüsselkandidaten. Ab der 2NF heißt es schon (sinng.): "Kein Nicht-Primärattribut häng partiell von einem SK ab".
Bei der 3NF muss man die SK auch kennen und bei der BCNF erst recht.

RE: [GDB-Klausur] Schlüsselkanidaten gegeben? 2007-03-25 19:41
Anonymer User
Noch ne Frage zur Relationenalgebra. speziell: Blatt 4 Aufgabe 3.4: In der Musterlösung steht die Bedingung Ort=Geb-Ort im "Select". Sollte diese nicht im JOIN als Bedingung stehen? http://vsis-www.informatik.uni-hamburg.de/teaching/ws-06.07/gdb/Aufgaben/a4_loesung.pdf