Grundlagen der Datenbanken
Der Primärschlüssel einer Mitarbeitertabelle (MitarbeiterNr, Name, Abteilungscode, Abteilungsname) ist MitarbeiterNr, und jede Spalte enthält nur einen einzigen Wert. Die funktionalen Abhängigkeiten sind MitarbeiterNr → Name, MitarbeiterNr → Abteilungscode und Abteilungscode → Abteilungsname. Welche Aussage über die Normalform dieser Tabelle ist richtig?
- ASie ist in zweiter, aber nicht in dritter Normalform
- BSie ist in erster, aber nicht in zweiter Normalform
- CSie ist in dritter Normalform
Antwort und Erläuterung anzeigen
Antwort: A. Sie ist in zweiter, aber nicht in dritter Normalform
Jede Spalte enthält einen einzelnen, nicht wiederholten Wert, die Tabelle ist also in erster Normalform. Da der Primärschlüssel nur aus der einen Spalte MitarbeiterNr besteht, kann keine partielle funktionale Abhängigkeit von einem Teil des Schlüssels auftreten; sie ist also auch in zweiter Normalform. Abteilungsname wird jedoch über Abteilungscode bestimmt, der kein Primärschlüssel ist, wie in MitarbeiterNr → Abteilungscode → Abteilungsname; wegen dieser transitiven funktionalen Abhängigkeit ist die Tabelle nicht in dritter Normalform. So wie sie ist, wird der Abteilungsname in der Zeile jedes Mitarbeiters derselben Abteilung wiederholt, und die Umbenennung einer Abteilung erfordert das Ändern vieler Zeilen. Wird eine Abteilungstabelle (Abteilungscode, Abteilungsname) abgetrennt und in der Mitarbeitertabelle nur Abteilungscode belassen, ergibt sich die dritte Normalform. Abteilungscode in der Mitarbeitertabelle wird dann zu einem Fremdschlüssel, der auf die Abteilungstabelle verweist.