Was ist Dritte Normalform (3NF)?

Zustand einer Tabelle, die in zweiter Normalform ist und keine Spalte enthält, die über eine Nicht-Schlüsselspalte bestimmt wird (keine transitive funktionale Abhängigkeit). Gibt es etwa eine Abhängigkeit wie MitarbeiterNr → Abteilungscode → Abteilungsname, ergibt das Abtrennen einer Abteilungstabelle die dritte Normalform.

Japanische Bezeichnung: 第3正規形

„Dritte Normalform (3NF)“ kommt in 2 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Datenbanken.

Fachgebiet: Grundlagen der Datenbanken

Jetzt üben: Fragen zu Dritte Normalform (3NF)

Der Primärschlüssel einer Auftragstabelle (AuftragsNr, ArtikelNr, Menge, KundenNr, Kundenname) ist {AuftragsNr, ArtikelNr}, und ihre funktionalen Abhängigkeiten sind {AuftragsNr, ArtikelNr} → Menge, AuftragsNr → KundenNr und KundenNr → Kundenname. Welches ist das richtige Ergebnis, wenn diese Tabelle bis zur dritten Normalform normalisiert wird?

  1. AAuftragsposition(AuftragsNr, ArtikelNr, Menge, KundenNr), Kunde(KundenNr, Kundenname)
  2. BAuftragsposition(AuftragsNr, ArtikelNr, Menge), Auftrag(AuftragsNr, KundenNr), Kunde(KundenNr, Kundenname)
  3. CAuftragsposition(AuftragsNr, ArtikelNr, Menge), Auftrag(AuftragsNr, KundenNr, Kundenname)
Antwort und Erläuterung anzeigen

Antwort: B. Auftragsposition(AuftragsNr, ArtikelNr, Menge), Auftrag(AuftragsNr, KundenNr), Kunde(KundenNr, Kundenname)

Die zweite Normalform ist ein Zustand in erster Normalform, in dem keine Spalte nur von einem Teil des Primärschlüssels abhängt (keine partielle funktionale Abhängigkeit). AuftragsNr → KundenNr ist eine partielle funktionale Abhängigkeit, denn KundenNr wird allein durch AuftragsNr bestimmt, die nur ein Teil des Primärschlüssels ist; die ursprüngliche Tabelle ist also in erster, aber nicht in zweiter Normalform. Werden die durch AuftragsNr bestimmten Spalten in Auftrag(AuftragsNr, KundenNr, Kundenname) ausgelagert, entsteht die zweite Normalform. Die dritte Normalform ist ein Zustand in zweiter Normalform, in dem keine Spalte über eine Nicht-Schlüsselspalte bestimmt wird (keine transitive funktionale Abhängigkeit). In Auftrag bleibt die transitive funktionale Abhängigkeit AuftragsNr → KundenNr → Kundenname bestehen, daher wird auch Kunde(KundenNr, Kundenname) abgetrennt. Die drei Tabellen Auftragsposition(AuftragsNr, ArtikelNr, Menge), Auftrag(AuftragsNr, KundenNr) und Kunde(KundenNr, Kundenname) sind dann in dritter Normalform. Ein Join über AuftragsNr und KundenNr stellt die ursprüngliche Tabelle wieder her.

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?

  1. ASie ist in zweiter, aber nicht in dritter Normalform
  2. BSie ist in erster, aber nicht in zweiter Normalform
  3. 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.

„Dritte Normalform (3NF)“ in den Erläuterungen

Fragen mit „Dritte Normalform (3NF)“ (2)

  1. Der Primärschlüssel einer Auftragstabelle (AuftragsNr, ArtikelNr, Menge, KundenNr, Kundenname) ist {AuftragsNr, ArtikelNr}, und ihre funktionalen Abhängigkeiten sind {AuftragsNr, ArtikelNr} → Menge, AuftragsNr → KundenNr und KundenNr → Kundenname. Welches ist das richtige Ergebnis, wenn diese Tabelle bis zur dritten Normalform normalisiert wird?
  2. 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?

Verwandte Begriffe

Primärschlüssel Fremdschlüssel ACID-Eigenschaften E-R-Diagramm (Entity-Relationship-Diagramm) Index (Datenbankindex) Isolationslevel Normalisierung NoSQL Relationale Datenbank SQL

Zur Glossarübersicht