Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
SS12 - Normalformen
Hallo,
Ich hab ein Problem mit der Aufgabe 7.1 von dieser Klausur: https://fsi.informatik.uni-erlangen.de/dw/_media/pruefungen/bachelor/braindump_ss12.pdf
Ich kann die Beispiele zu den Normalformen mit Tabellen im Skript und aus der Übung nachvollziehen, aber hier steh ich total auf dem Schlauch. Nur alleine mit den Buchstaben A, B, C und D kann ich überhaupt nichts anfangen. Außerdem frage ich mich auch woran ich hier den Schlüsselkandidaten erkennen soll. Es würde mir wahnsinnig helfen, wenn mir jemand erklären könnte, woran ich die Normalformen erkennen kann.
Vielen Dank!
Die Buchstaben A, B, C, D sind die Attribute der Tabelle (oder Relation) R.
Bei den jeweiligen Teilaufgaben sind alle funktionalen Abhängigkeiten angeben, die existieren.
Woran du Schlüsselkandidaten erkennst, ist eigentlich aus der Definition eines Schlüsselkandidaten ersichtlich:
Ein Schlüsselkandidat ist ein minimaler Superschlüssel.
Ein Superschlüssel ist eine Determinante, von der alle Attribute der Relation, die nicht Teil der Determinante sind, funktional abhängen.
Beim ersten Punkt ist beispielsweise ABD ein Superschlüssel. Da er minimal ist (du kannst bei der Determinante nichts weglassen, ohne dass die Superschlüsseleigenschaft verloren geht), ist er ein Schlüsselkandidat. Da er der einzige Schlüsselkandidat ist, ist er der Primärschlüssel.
Ein weiterer Superschlüssel ist ABCD. Der geht immer. Aber er ist nicht minimal, da du das C weglassen kannst.
Woran du die Normalformen erkennen kannst:
Definition auswendig lernen und prüfen, ob die Bedingungen zutreffen.
Ok, vielen Dank erstmal, das hat mir ein bisschen weitergeholfen. Vielen Dank für deine ausführliche Antwort.
Aber das größte Probleme bereitet mir wohl das Prüfen, ob die Bedingungen erfüllt sind.
Am ersten Beispiel kann ich überhaupt nichts mit C → D anfangen? Was soll mir das sagen?
Beim zweiten Beispiel kann ich nur sehen, dass es wohl nicht in 2NF ist, da B → D die zweite NF verletzt, wenn ich das richtig verstanden habe. Kann ich dann automatisch davon ausgehen, dass es in 1NF ist?
Und das dritte Beispiel verletzt mit C → D die 3NF und somit auch die BCNF, kann ich dann davon ausgehen, weil es die 2NF nicht verletzt, dass es in 2NF ist?
Kannst du / Kann jemand das so bestätigen? Sonst habe ich es glaube ich immernoch nicht begriffen…
C → D soll dir sagen, dass D funktional Abhängig von C ist. Anhand der gegeben funktionalen Abhängigkeiten legst du fest, welche Normalform gegeben ist.
Beispiel 1:
ABD → C, C → D
Erste Normalform wird angenommen, da keine Attributwerte zur Überprüfung da sind.
2NF: Alle Nicht-Schlüsselattribute sind voll funktional von jedem Schlüsselkandidaten abhängig.
Nicht-Schlüsselattribut: C
Ist C voll funktional von jedem Schlüsselkandidaten abhängig? Ja → 2NF
3NF: Kein Nicht-Schlüsselattribut darf transitiv abhängig von einem Schlüsselkandidaten sein.
Nicht-Schlüsselattribut: C
Schlüsselattribut: ABD
Existiert ein Attribut, sodass gilt: ABD → ? → C
Nein. → 3NF
BCNF: Jede Determinante ist ein Superschlüssel.
Determinanten: ABD, C
C ist kein Superschlüssel → Keine BCNF
Davon kannst du ausgehen, wenn keine Attributwerte gegeben sind.
Wenn es die 2NF nicht verletzt, dann ist es in 2NF.
Danke!