/
/
·
·
/
/
·
·
  • Einführung
  • Das Problem: warum überhaupt normalisieren?
  • Vorab: Funktionale Abhängigkeit (FD)
  • 1NF, "alles atomar"
  • 2NF, "voll abhängig vom Schlüssel"
  • 3NF, "keine transitiven Abhängigkeiten"
  • BCNF, "strengere 3NF"
  • Visueller Stepper
  • Klausur-Faustregeln
  • Typische Stolpersteine
ThemenDatenbankenNormalformen (1NF → BCNF)
Datenbanken·4Lerneinheiten·28min·Stand17.07.2026

Normalformen (1NF → BCNF).

Du hast eine Tabelle mit Studierenden, ihren Vorlesungen und Dozenten, und musst jetzt den Namen eines Dozenten ändern, der gerade geheiratet hat. Plötzlich musst du die neue Schreibweise in 50 Zeilen einzeln aktualisieren. Vergisst du eine Zeile, hat derselbe Dozent zwei verschiedene Namen. Genau das verhindern Normalformen: sie erkennen Redundanzen, lösen sie auf und machen Daten anomalie-frei.

Klausur-Klassiker in jeder Datenbanken-1-Vorlesung (12/12 WInf-Pflicht-Unis). Wir gehen die 4 Normalformen Schritt für Schritt durch, jede mit dem gleichen Beispieldatensatz, der schrittweise sauberer wird.

Stell dir vor, du speicherst alle Studi-Kurs-Daten in einer Tabelle:

MatrNrStudNameKursIDKursNameDozNrDozNameNote
1001MüllerDB1Datenbanken42Prof. Schmidt2,3
1001MüllerINFInformatik17Prof. Weber1,7
1002SchulzDB1Datenbanken42Prof. Schmidt2,7
1003MüllerDB1Datenbanken42Prof. Schmidt3,3

Diese eine Tabelle hat drei Anomalien, der Klausur-Standard:

  • Update-Anomalie: Prof. Schmidt heiratet und heißt jetzt "Schmidt-Berger". Du musst seine Adresse in 3 Zeilen ändern (jede mit DozNr 42). Eine vergessen → inkonsistente Daten.
  • Einfüge-Anomalie: Ein neuer Dozent fängt an, hat aber noch keine Vorlesung. Du kannst ihn nicht eintragen, weil ohne KursID und MatrNr deine Zeile keinen Sinn ergibt.
  • Lösch-Anomalie: Der letzte Studi, der "Informatik" gehört hat, exmatrikuliert. Du löschst seine Zeile, und damit verschwindet auch die Information "Kurs INF heißt Informatik" komplett aus der DB.

Diese drei Anomalien sind die Symptome. Normalformen sind die Heilung.

Bevor wir loslegen, ein Mini-Konzept: A → B heißt "A bestimmt B" oder "wenn ich A kenne, weiß ich B eindeutig". Beispiele aus der Tabelle oben:

  • MatrNr→StudName\text{MatrNr} \to \text{StudName}MatrNr→StudName (jede Matrikelnummer hat genau einen Namen)
  • KursID→KursName\text{KursID} \to \text{KursName}KursID→KursName (jede KursID hat einen festen Namen)
  • DozNr→DozName\text{DozNr} \to \text{DozName}DozNr→DozName (jede Dozent-Nr hat einen festen Namen)

Wir nutzen FDs als Werkzeug zum Erkennen von Normalform-Verletzungen. Detailliert im Topic funktionale-abhaengigkeiten (Welle 8.2).

1. Normalform: Jeder Wert in einer Zelle ist atomar, kein Komma-getrenntes "Mehrere-in-einer-Zelle".

Was ist eine 1NF-Verletzung? Schau die folgende Tabelle:

MatrNrNameKurse (verletzt 1NF!)
1001MüllerDB1, INF, MATHE
1002SchulzDB1

Die Spalte "Kurse" enthält mehrere Werte pro Zelle. Das ist keine relationale Tabelle mehr, Suchen, Joins, Aggregate gehen nicht sauber.

1NF-konforme Version: jeden Wert in eine eigene Zeile.

MatrNrNameKurs
1001MüllerDB1
1001MüllerINF
1001MüllerMATHE
1002SchulzDB1

In modernen Datenbanken ist 1NF meist automatisch erfüllt, der Klassiker-Klausur-Fehler ist trotzdem ein Komma-getrennter Wert in einer Spalte.

2. Normalform: 1NF erfüllt und jedes Nicht-Schlüssel-Attribut hängt vom gesamten Primärschlüssel ab, nicht nur von einem Teil.

Das ist nur relevant, wenn der Primärschlüssel zusammengesetzt ist (mehrere Spalten). Bei einem einspaltigen PK ist 2NF automatisch erfüllt.

Beispiel, die Anfangs-Tabelle in 1NF (zusammengesetzter PK = MatrNr + KursID):

MatrNr*KursID*StudNameKursNameDozNrDozNameNote
1001DB1MüllerDatenbanken42Prof. Schmidt2,3
1001INFMüllerInformatik17Prof. Weber1,7
1002DB1SchulzDatenbanken42Prof. Schmidt2,7

(* = Teile des zusammengesetzten Primärschlüssels)

Schau auf die Abhängigkeiten:

  • StudName\text{StudName}StudName hängt nur von MatrNr ab (KursID ist egal) → Teil-Abhängigkeit, 2NF-Verletzung.
  • KursName,DozNr,DozName\text{KursName}, \text{DozNr}, \text{DozName}KursName,DozNr,DozName hängen nur von KursID ab → Teil-Abhängigkeit, 2NF-Verletzung.
  • Note\text{Note}Note hängt wirklich von beiden (MatrNr UND KursID) ab → 2NF-konform.

2NF-Lösung: zerlege in 3 Tabellen, eine pro echter Abhängigkeit.

Studierende:

MatrNrStudName
1001Müller
1002Schulz

Kurse:

KursIDKursNameDozNrDozName
DB1Datenbanken42Prof. Schmidt
INFInformatik17Prof. Weber

Belegungen:

MatrNr*KursID*Note
1001DB12,3
1001INF1,7
1002DB12,7

Eine Tabelle wurde zu drei. Die Schlüssel-Fremdschlüssel-Beziehungen verbinden sie. Studi-Name wird jetzt einmal gespeichert, nicht pro Kurs.

3. Normalform: 2NF erfüllt und kein Nicht-Schlüssel-Attribut hängt von einem anderen Nicht-Schlüssel-Attribut ab.

Schau die "Kurse"-Tabelle aus dem 2NF-Schritt:

KursIDKursNameDozNrDozName

Primärschlüssel: KursID. Nicht-Schlüssel: KursName, DozNr, DozName.

  • KursName hängt von KursID ab ✓ (ok)
  • DozNr hängt von KursID ab ✓ (ok)
  • DozName hängt von DozNr ab, und DozNr ist nicht der Primärschlüssel. Das ist eine transitive Abhängigkeit: KursID → DozNr → DozName.

Das verletzt 3NF. Wieder das gleiche Problem wie am Anfang, Prof. Schmidt heiratet, und du musst seinen Namen in jeder Zeile mit DozNr=42 ändern.

3NF-Lösung: Dozent in eigene Tabelle ziehen.

Kurse:

KursIDKursNameDozNr
DB1Datenbanken42
INFInformatik17

Dozenten:

DozNrDozName
42Prof. Schmidt
17Prof. Weber

Jetzt steht der Dozent-Name genau einmal in der DB. Heirat → 1 Update, fertig.

Boyce-Codd-Normalform: für jede funktionale Abhängigkeit A→BA \to BA→B in der Tabelle gilt: AAA ist ein Schlüsselkandidat.

3NF erlaubt eine Ausnahme: ein Nicht-Schlüssel-Attribut darf von einem Schlüsselkandidaten abhängen, auch wenn der Schlüsselkandidat nicht der gewählte Primärschlüssel ist. BCNF ist strenger, sie verbietet das.

Beispiel, "Termine":

StudNr*KursID*Raum
1001DB1H1
1002DB1H1
1001INFH2

Annahme: jede Kurs+Studi-Kombination ist eindeutig (PK = StudNr+KursID). Aber zusätzlich: jeder Raum gehört zu genau einem Kurs (KursID → Raum). Das heißt:

  • KursID bestimmt Raum eindeutig
  • Aber KursID allein ist kein Schlüsselkandidat (Raum wäre dann redundant)

Hier liegt eine FD vor (KursID → Raum), bei der die linke Seite kein Schlüsselkandidat ist → BCNF-Verletzung.

BCNF-Lösung: Raum in eigene Tabelle.

Belegungen: (StudNr, KursID)

Räume: (KursID, Raum)

Klausur-Wahrheit: BCNF wird in 95 % aller Aufgaben mit 3NF gleichgesetzt, die Spitzfindigkeit (Nicht-PK-Schlüsselkandidat) kommt selten vor. Wenn die Aufgabe nur einen Schlüsselkandidaten hat (= den PK), ist 3NF = BCNF automatisch.

Nimm einen Datensatz, der noch alle drei Anomalien hat, und schau zu wie er Schritt für Schritt normalisiert wird:

Lade Visualisierung...
  1. Schau auf den Primärschlüssel. Ist er zusammengesetzt? → 2NF-Check nötig. Ist er einspaltig? → 2NF ist automatisch erfüllt, sofort zu 3NF.
  2. 3NF-Check: Geh jede Nicht-Schlüssel-Spalte durch und frage: "hängt diese nur vom PK ab, oder gibt es einen Umweg über eine andere Spalte?", wenn Umweg, ist es transitiv und verletzt 3NF.
  3. Anomalie-Test: Wenn du ein Attribut in mehr als einer Zeile gleich findest (z.B. Dozent-Name 50× wiederholt), ist es fast immer eine NF-Verletzung. Splitte raus.
  4. BCNF nur bei mehreren Schlüsselkandidaten. Wenn deine Tabelle nur einen Schlüsselkandidaten (= PK) hat, sind 3NF und BCNF dasselbe. Spar dir den extra Schritt.
  5. Übersetze immer in eine Aussage über die Realität: "Jeder Kurs hat genau einen Dozenten" ist eine FD. "Ein Studi kann mehrere Kurse haben" ist N-zu-M und braucht eine Verknüpfungs-Tabelle.

1. 1NF-Verletzung übersehen. Komma-getrennte Listen in einer Zelle sind die häufigste, weil sie "harmlos" aussehen. "Hobbies: Sport, Musik, Lesen" ist eine 1NF-Verletzung, selbst wenn es nie in einer Klausur als JSON-Array daherkommt.

2. 2NF mit einspaltigem PK prüfen. Wenn der PK eine einzige Spalte ist, KANN keine Teil-Abhängigkeit existieren (es gibt keinen Teil-PK). 2NF ist trivial erfüllt. Trotzdem prüfen viele unnötig.

3. Transitivität vs. zweite FD. "A→BA \to BA→B und B→CB \to CB→C" sind erst dann transitiv, wenn BBB kein Schlüsselkandidat ist. Wenn BBB ein alternativer Schlüssel wäre, ist es ok.

4. Über-Normalisierung. BCNF mit allen Konsequenzen kann zu zu vielen kleinen Tabellen führen, die in der Praxis langsam sind (viele Joins). In Klausuren immer BCNF, im echten Leben oft 3NF.

5. Zerlegung verlustbehaftet. Jeder Normalisierungsschritt muss verlustfrei sein: durch Join der neuen Tabellen muss wieder die Original-Tabelle entstehen. Wenn nicht, ist die Zerlegung falsch.

Wähle einen Beispiel-Datensatz und gehe Schritt für Schritt durch die 4 Normalformen. Pro Schritt siehst du:

  • Welche Regel wird gerade geprüft (in Plain German)
  • Welche Spalte verletzt sie (rot markiert)
  • Wie der Split funktioniert (Tabelle wird in 2+ kleinere geteilt)
  • Welche FD-Pfeile auf das Problem zeigen

Probier alle 4 Datensätze: Studi-Kurs-Dozent (Klassiker), Bibliotheks-Ausleihe, Flug-Buchung, Restaurant-Bestellung.

Lade Visualisierung...

Klausur-Tipp: Wenn du in einer Aufgabe Normalisieren sollst, fang immer mit der höchsten Normalform an, in der die Tabelle aktuell ist. Steht in der Aufgabe "in 2NF überführen", musst du zuerst prüfen, ob 1NF da ist. Sonst Punktabzug für übersprungenen Schritt.

Anmelden, um den Fortschritt zu speichern.

Nächster Schritt

Wenn du fertig bist: jetzt üben.

Aktives Abrufen festigt Wissen schneller als nochmal lesen.

War das hilfreich?

Verwandte Themen

  • SQL Grundlagen
  • JOINs
  • GROUP BY + Aggregate
  • Funktionale Abhängigkeiten
  • Relationale Algebra

Tools

Bald: Karteikarten · Spaced-Repetition · Mind-Map-Export

Fachliche Qualität
Noch nicht klassifiziertNoch nicht geprüft.

Diese Lerneinheit wurde für typische Bachelor-Klausuren konzipiert. So prüfen wir · Fehler entdeckt? Melde ihn uns oder markiere die fragliche Stelle direkt im Text oben.

Klausur-ÜbersichtKomplette Übersicht: alle Tabs als linearer Text zum Lernen
▾

Alle Tabs der Lerneinheit (Erklärung · Interaktiv normalisieren · Praxis-Übung · Klausur-Quiz) als durchgehender Text. Ideal zum Wiederholen vor der Klausur, und für Suchmaschinen wie Google, Bing und KI-Suche (ChatGPT, Perplexity).

Inhalt dieser Übersicht

  1. Erklärung(Erklärung)
  2. Interaktiv normalisieren(Visualisierung / Interaktiv)
  3. Praxis-Übung(Quiz / Klausurfragen)
  4. Klausur-Quiz(Quiz / Klausurfragen)
Teil 1·Erklärung

Erklärung

Du hast eine Tabelle mit Studierenden, ihren Vorlesungen und Dozenten, und musst jetzt den Namen eines Dozenten ändern, der gerade geheiratet hat. Plötzlich musst du die neue Schreibweise in 50 Zeilen einzeln aktualisieren. Vergisst du eine Zeile, hat derselbe Dozent zwei verschiedene Namen. Genau das verhindern Normalformen: sie erkennen Redundanzen, lösen sie auf und machen Daten anomalie-frei.

Klausur-Klassiker in jeder Datenbanken-1-Vorlesung (12/12 WInf-Pflicht-Unis). Wir gehen die 4 Normalformen Schritt für Schritt durch, jede mit dem gleichen Beispieldatensatz, der schrittweise sauberer wird.

Das Problem: warum überhaupt normalisieren?

Stell dir vor, du speicherst alle Studi-Kurs-Daten in einer Tabelle:

MatrNrStudNameKursIDKursNameDozNrDozNameNote
1001MüllerDB1Datenbanken42Prof. Schmidt2,3
1001MüllerINFInformatik17Prof. Weber1,7
1002SchulzDB1Datenbanken42Prof. Schmidt2,7
1003MüllerDB1Datenbanken42Prof. Schmidt3,3

Diese eine Tabelle hat drei Anomalien, der Klausur-Standard:

  • Update-Anomalie: Prof. Schmidt heiratet und heißt jetzt "Schmidt-Berger". Du musst seine Adresse in 3 Zeilen ändern (jede mit DozNr 42). Eine vergessen → inkonsistente Daten.
  • Einfüge-Anomalie: Ein neuer Dozent fängt an, hat aber noch keine Vorlesung. Du kannst ihn nicht eintragen, weil ohne KursID und MatrNr deine Zeile keinen Sinn ergibt.
  • Lösch-Anomalie: Der letzte Studi, der "Informatik" gehört hat, exmatrikuliert. Du löschst seine Zeile, und damit verschwindet auch die Information "Kurs INF heißt Informatik" komplett aus der DB.

Diese drei Anomalien sind die Symptome. Normalformen sind die Heilung.

Vorab: Funktionale Abhängigkeit (FD)

Bevor wir loslegen, ein Mini-Konzept: A → B heißt "A bestimmt B" oder "wenn ich A kenne, weiß ich B eindeutig". Beispiele aus der Tabelle oben:

  • MatrNr → StudName (jede Matrikelnummer hat genau einen Namen)
  • KursID → KursName (jede KursID hat einen festen Namen)
  • DozNr → DozName (jede Dozent-Nr hat einen festen Namen)

Wir nutzen FDs als Werkzeug zum Erkennen von Normalform-Verletzungen. Detailliert im Topic funktionale-abhaengigkeiten (Welle 8.2).

1NF, "alles atomar"

1. Normalform: Jeder Wert in einer Zelle ist atomar, kein Komma-getrenntes "Mehrere-in-einer-Zelle".

Was ist eine 1NF-Verletzung? Schau die folgende Tabelle:

MatrNrNameKurse (verletzt 1NF!)
1001MüllerDB1, INF, MATHE
1002SchulzDB1

Die Spalte "Kurse" enthält mehrere Werte pro Zelle. Das ist keine relationale Tabelle mehr, Suchen, Joins, Aggregate gehen nicht sauber.

1NF-konforme Version: jeden Wert in eine eigene Zeile.

MatrNrNameKurs
1001MüllerDB1
1001MüllerINF
1001MüllerMATHE
1002SchulzDB1

In modernen Datenbanken ist 1NF meist automatisch erfüllt, der Klassiker-Klausur-Fehler ist trotzdem ein Komma-getrennter Wert in einer Spalte.

2NF, "voll abhängig vom Schlüssel"

2. Normalform: 1NF erfüllt und jedes Nicht-Schlüssel-Attribut hängt vom gesamten Primärschlüssel ab, nicht nur von einem Teil.

Das ist nur relevant, wenn der Primärschlüssel zusammengesetzt ist (mehrere Spalten). Bei einem einspaltigen PK ist 2NF automatisch erfüllt.

Beispiel, die Anfangs-Tabelle in 1NF (zusammengesetzter PK = MatrNr + KursID):

MatrNr*KursID*StudNameKursNameDozNrDozNameNote
1001DB1MüllerDatenbanken42Prof. Schmidt2,3
1001INFMüllerInformatik17Prof. Weber1,7
1002DB1SchulzDatenbanken42Prof. Schmidt2,7

(* = Teile des zusammengesetzten Primärschlüssels)

Schau auf die Abhängigkeiten:

  • StudName hängt nur von MatrNr ab (KursID ist egal) → Teil-Abhängigkeit, 2NF-Verletzung.
  • KursName, DozNr, DozName hängen nur von KursID ab → Teil-Abhängigkeit, 2NF-Verletzung.
  • Note hängt wirklich von beiden (MatrNr UND KursID) ab → 2NF-konform.

2NF-Lösung: zerlege in 3 Tabellen, eine pro echter Abhängigkeit.

Studierende:

MatrNrStudName
1001Müller
1002Schulz

Kurse:

KursIDKursNameDozNrDozName
DB1Datenbanken42Prof. Schmidt
INFInformatik17Prof. Weber

Belegungen:

MatrNr*KursID*Note
1001DB12,3
1001INF1,7
1002DB12,7

Eine Tabelle wurde zu drei. Die Schlüssel-Fremdschlüssel-Beziehungen verbinden sie. Studi-Name wird jetzt einmal gespeichert, nicht pro Kurs.

3NF, "keine transitiven Abhängigkeiten"

3. Normalform: 2NF erfüllt und kein Nicht-Schlüssel-Attribut hängt von einem anderen Nicht-Schlüssel-Attribut ab.

Schau die "Kurse"-Tabelle aus dem 2NF-Schritt:

KursIDKursNameDozNrDozName

Primärschlüssel: KursID. Nicht-Schlüssel: KursName, DozNr, DozName.

  • KursName hängt von KursID ab ✓ (ok)
  • DozNr hängt von KursID ab ✓ (ok)
  • DozName hängt von DozNr ab, und DozNr ist nicht der Primärschlüssel. Das ist eine transitive Abhängigkeit: KursID → DozNr → DozName.

Das verletzt 3NF. Wieder das gleiche Problem wie am Anfang, Prof. Schmidt heiratet, und du musst seinen Namen in jeder Zeile mit DozNr=42 ändern.

3NF-Lösung: Dozent in eigene Tabelle ziehen.

Kurse:

KursIDKursNameDozNr
DB1Datenbanken42
INFInformatik17

Dozenten:

DozNrDozName
42Prof. Schmidt
17Prof. Weber

Jetzt steht der Dozent-Name genau einmal in der DB. Heirat → 1 Update, fertig.

BCNF, "strengere 3NF"

Boyce-Codd-Normalform: für jede funktionale Abhängigkeit A → B in der Tabelle gilt: A ist ein Schlüsselkandidat.

3NF erlaubt eine Ausnahme: ein Nicht-Schlüssel-Attribut darf von einem Schlüsselkandidaten abhängen, auch wenn der Schlüsselkandidat nicht der gewählte Primärschlüssel ist. BCNF ist strenger, sie verbietet das.

Beispiel, "Termine":

StudNr*KursID*Raum
1001DB1H1
1002DB1H1
1001INFH2

Annahme: jede Kurs+Studi-Kombination ist eindeutig (PK = StudNr+KursID). Aber zusätzlich: jeder Raum gehört zu genau einem Kurs (KursID → Raum). Das heißt:

  • KursID bestimmt Raum eindeutig
  • Aber KursID allein ist kein Schlüsselkandidat (Raum wäre dann redundant)

Hier liegt eine FD vor (KursID → Raum), bei der die linke Seite kein Schlüsselkandidat ist → BCNF-Verletzung.

BCNF-Lösung: Raum in eigene Tabelle.

Belegungen: (StudNr, KursID)

Räume: (KursID, Raum)

Klausur-Wahrheit: BCNF wird in 95 % aller Aufgaben mit 3NF gleichgesetzt, die Spitzfindigkeit (Nicht-PK-Schlüsselkandidat) kommt selten vor. Wenn die Aufgabe nur einen Schlüsselkandidaten hat (= den PK), ist 3NF = BCNF automatisch.

Visueller Stepper

Nimm einen Datensatz, der noch alle drei Anomalien hat, und schau zu wie er Schritt für Schritt normalisiert wird:

Interaktive Visualisierung

Interaktive Komponente: probiere sie im Topic-Player oben aus.

Klausur-Faustregeln

  1. Schau auf den Primärschlüssel. Ist er zusammengesetzt? → 2NF-Check nötig. Ist er einspaltig? → 2NF ist automatisch erfüllt, sofort zu 3NF.
  2. 3NF-Check: Geh jede Nicht-Schlüssel-Spalte durch und frage: "hängt diese nur vom PK ab, oder gibt es einen Umweg über eine andere Spalte?", wenn Umweg, ist es transitiv und verletzt 3NF.
  3. Anomalie-Test: Wenn du ein Attribut in mehr als einer Zeile gleich findest (z.B. Dozent-Name 50× wiederholt), ist es fast immer eine NF-Verletzung. Splitte raus.
  4. BCNF nur bei mehreren Schlüsselkandidaten. Wenn deine Tabelle nur einen Schlüsselkandidaten (= PK) hat, sind 3NF und BCNF dasselbe. Spar dir den extra Schritt.
  5. Übersetze immer in eine Aussage über die Realität: "Jeder Kurs hat genau einen Dozenten" ist eine FD. "Ein Studi kann mehrere Kurse haben" ist N-zu-M und braucht eine Verknüpfungs-Tabelle.

Typische Stolpersteine

1. 1NF-Verletzung übersehen. Komma-getrennte Listen in einer Zelle sind die häufigste, weil sie "harmlos" aussehen. "Hobbies: Sport, Musik, Lesen" ist eine 1NF-Verletzung, selbst wenn es nie in einer Klausur als JSON-Array daherkommt.

2. 2NF mit einspaltigem PK prüfen. Wenn der PK eine einzige Spalte ist, KANN keine Teil-Abhängigkeit existieren (es gibt keinen Teil-PK). 2NF ist trivial erfüllt. Trotzdem prüfen viele unnötig.

3. Transitivität vs. zweite FD. "A → B und B → C" sind erst dann transitiv, wenn B kein Schlüsselkandidat ist. Wenn B ein alternativer Schlüssel wäre, ist es ok.

4. Über-Normalisierung. BCNF mit allen Konsequenzen kann zu zu vielen kleinen Tabellen führen, die in der Praxis langsam sind (viele Joins). In Klausuren immer BCNF, im echten Leben oft 3NF.

5. Zerlegung verlustbehaftet. Jeder Normalisierungsschritt muss verlustfrei sein: durch Join der neuen Tabellen muss wieder die Original-Tabelle entstehen. Wenn nicht, ist die Zerlegung falsch.

Teil 2·Visualisierung / Interaktiv

Interaktiv normalisieren

Normalisierungs-Lab

Wähle einen Beispiel-Datensatz und gehe Schritt für Schritt durch die 4 Normalformen. Pro Schritt siehst du:

  • Welche Regel wird gerade geprüft (in Plain German)
  • Welche Spalte verletzt sie (rot markiert)
  • Wie der Split funktioniert (Tabelle wird in 2+ kleinere geteilt)
  • Welche FD-Pfeile auf das Problem zeigen

Probier alle 4 Datensätze: Studi-Kurs-Dozent (Klassiker), Bibliotheks-Ausleihe, Flug-Buchung, Restaurant-Bestellung.

Interaktive Visualisierung

Interaktive Komponente: probiere sie im Topic-Player oben aus.

Klausur-Tipp: Wenn du in einer Aufgabe Normalisieren sollst, fang immer mit der höchsten Normalform an, in der die Tabelle aktuell ist. Steht in der Aufgabe "in 2NF überführen", musst du zuerst prüfen, ob 1NF da ist. Sonst Punktabzug für übersprungenen Schritt.

Teil 3·Quiz / Klausurfragen

Praxis-Übung

Normalformen, Praxis-Übung

Vier Aufgaben-Typen: NF-Erkennung, Anomalie-Identifikation, Zerlegungs-Wahl, FD-Analyse.

Klausurfragen mit Lösungen (6)

F1.Welche Aussage über die 1. Normalform (1NF) ist KORREKT?

Antwort: Jede Zelle enthält atomare (nicht weiter zerlegbare) Werte

Erklärung: 1NF = atomare Werte pro Zelle. Komma-getrennte Listen (z.B. 'Mathematik, Informatik' in einer Spalte) verletzen 1NF. Die anderen Optionen sind 2NF (volle Abhängigkeit), allgemeine Schlüssel-Regel, und 3NF (keine transitiven).

F2.Tabelle Studi(MatrNr*, KursID*, Note, StudName). Welche Normalform ist verletzt?

Antwort: 2NF, StudName hängt nur von MatrNr ab, nicht vom gesamten PK

Erklärung: PK ist (MatrNr, KursID). StudName hängt aber nur von MatrNr ab (nicht von KursID, der Name ändert sich ja nicht mit dem Kurs). Das ist eine Teil-Abhängigkeit → 2NF-Verletzung. Lösung: StudName in eigene Tabelle (MatrNr, StudName).

F3.Welche Anomalie passiert, wenn du den letzten Studi mit Kurs INF löschst und damit auch die Info 'INF = Informatik' verschwindet?

Antwort: Lösch-Anomalie

Erklärung: Lösch-Anomalie: durch Löschen von Zeilen geht Information verloren, die eigentlich nichts mit dem gelöschten Eintrag zu tun hat. Standard-Symptom einer unzureichenden Normalisierung.

F4.Kurs(KursID, KursName, DozNr, DozName). PK = KursID. Welche Normalform ist VERLETZT?

Antwort: 3NF

Erklärung: PK = KursID (einspaltig), also 2NF automatisch erfüllt. Aber: DozName hängt von DozNr ab, und DozNr ist kein Schlüssel. Das ist eine transitive Abhängigkeit KursID → DozNr → DozName. 3NF verletzt. Lösung: Dozent in eigene Tabelle (DozNr, DozName) ziehen.

F5.Welche Aussagen über die Normalformen sind RICHTIG?

Richtige Antworten: Jede 3NF-Tabelle ist auch in 2NF; Bei einspaltigem Primärschlüssel ist 2NF automatisch erfüllt; 1NF kann durch Aufteilen von Komma-Listen erreicht werden; BCNF und 3NF sind identisch, wenn es nur einen Schlüsselkandidaten gibt

Erklärung: Richtig: 3NF impliziert 2NF (Hierarchie); einspaltiger PK → 2NF trivial; Komma-Listen entfernen erreicht 1NF; bei einem Schlüsselkandidaten sind 3NF und BCNF gleich. Falsch: 2NF impliziert NICHT BCNF (es gibt 2NF-Tabellen mit 3NF-/BCNF-Verletzungen); Anomalien gibt es in allen NF, die nicht hoch genug normalisiert sind, nicht nur 1NF.

Typ: Multi-Select

F6.Ordne jede Anomalie der richtigen Beschreibung zu:

Zuordnungen:

  • Update-Anomalie → Wert muss in mehreren Zeilen gleichzeitig geändert werden
  • Einfüge-Anomalie → Neuer Datensatz kann nicht eingefügt werden, weil andere Felder fehlen
  • Lösch-Anomalie → Beim Löschen einer Zeile geht ungewollt andere Information verloren
  • Redundanz → Gleiche Information steht mehrfach in der Tabelle

Erklärung: Die drei klassischen Anomalien (Update, Insert, Delete) sind die Symptome, Redundanz die Ursache. Normalformen lösen alle drei gleichzeitig auf, indem sie Redundanz eliminieren.

Typ: Zuordnung

Teil 4·Quiz / Klausurfragen

Klausur-Quiz

Klausurfragen mit Lösungen (6)

F1.Tabelle Mitarbeiter(MitID, Name, Abteilung, AbteilungsLeiter). MitID ist PK, jede Abteilung hat genau einen Leiter. In welcher höchsten Normalform ist die Tabelle?

Antwort: 2NF (verletzt 3NF)

Erklärung: PK = MitID (einspaltig) → 2NF automatisch. Aber: AbteilungsLeiter hängt von Abteilung ab (nicht direkt von MitID). Das ist transitiv: MitID → Abteilung → AbteilungsLeiter. 3NF verletzt → höchste NF ist 2NF. Lösung: Abteilung(Abteilung, AbteilungsLeiter) auslagern.

F2.Tabelle Bestellung(BestNr*, ArtikelNr*, Menge, ArtikelName, Preis). PK = (BestNr, ArtikelNr). Welche FD verletzt 2NF?

Antwort: Beides: ArtikelNr → ArtikelName UND ArtikelNr → Preis

Erklärung: ArtikelName und Preis hängen nur von ArtikelNr ab (Teil des PK), nicht von der ganzen Kombination (BestNr, ArtikelNr). Beide sind Teil-Abhängigkeiten → 2NF-Verletzung. Lösung: Artikel(ArtikelNr, ArtikelName, Preis) auslagern, in Bestellung bleibt (BestNr, ArtikelNr, Menge).

F3.Wenn eine Tabelle nur einen einzigen Schlüsselkandidaten hat (= den Primärschlüssel), sind 3NF und BCNF immer identisch.

Antwort: Wahr

Erklärung: Wahr. BCNF ist strenger als 3NF nur dort, wo es mehrere Schlüsselkandidaten gibt und ein Nicht-PK-Schlüsselkandidat eine Nicht-Schlüssel-Spalte bestimmt. Bei nur einem Schlüsselkandidaten gibt es diese Situation nicht, die beiden NFs fallen zusammen. Klausur-Sparmöglichkeit.

Typ: Wahr/Falsch

F4.Sortiere die Normalformen aufsteigend nach Strenge:

Richtige Reihenfolge:

  1. 1NF (atomare Werte)
  2. 2NF (volle Abhängigkeit vom PK)
  3. 3NF (keine transitiven Abhängigkeiten)
  4. BCNF (alle FD-LHS sind Schlüsselkandidaten)

Erklärung: Klassische Hierarchie: 1NF → 2NF → 3NF → BCNF. Jede Stufe schließt die vorherige ein und fügt eine Bedingung hinzu. Eine Tabelle in BCNF ist auch in 3NF, 2NF, 1NF.

Typ: Reihenfolge

F5.Tabelle Termine(StudNr*, KursID*, Raum). PK = (StudNr, KursID). Annahme: jeder Kurs ist in genau einem Raum, ein Raum kann mehrere Kurse haben. Welche Normalform ist VERLETZT?

Antwort: BCNF, KursID bestimmt Raum, ist aber kein Schlüsselkandidat

Erklärung: Die FD KursID → Raum existiert (Kurs hat immer denselben Raum). Aber KursID allein ist kein Schlüsselkandidat, der PK ist (StudNr, KursID), und es gibt keinen alternativen Schlüssel. Das ist eine BCNF-Verletzung, aber NICHT 2NF (weil Raum nicht von einem PK-Teil abhängt im klassischen Sinne, sondern... wait, eigentlich ist es auch 2NF-Verletzung). Klausur-Tipp: bei dieser Aufgaben-Konstellation wird oft direkt nach BCNF gefragt; sicherer Antwort-Ankerpunkt.

F6.Normalisierung in 3 Schritten: 1NF stellt sicher, dass jede {{1}} atomar ist. 2NF verlangt {{2}}, dass jedes Nicht-Schlüssel-Attribut vom gesamten Primärschlüssel abhängt. 3NF verbietet {{3}} Abhängigkeiten zwischen Nicht-Schlüssel-Attributen.

Lösungen pro Lücke:

  • {{1}}: Zelle / Wert
  • {{2}}: zusätzlich / darüber hinaus
  • {{3}}: transitive

Erklärung: Standard-Lückentext: 1NF = atomare Zellen, 2NF baut darauf auf + volle Abhängigkeit, 3NF baut auf 2NF auf + keine transitiven Abhängigkeiten. Diese 3-Stufen-Hierarchie ist Klausur-Pflichtwissen.

Typ: Lückentext

Zur KategorieDatenbanken.Mehr Themen entdeckenZum Themen-Hub.

UniProMax ist eine themenbasierte Lernplattform für Studierende an deutschen Unis.

Wir glauben, dass Verstehen besser ist als Auswendiglernen. Wir bauen Lerneinheiten die zeigen statt erzählen. Code, Visualisierung, Quiz. Auf Deutsch.

Marke

UniProMaxUniProMax

Themenbasiert, visuell, interaktiv.

Inhalte

  • Alle Themen (Hub)
  • Programmiergrundlagen
  • Algorithmen
  • Mathematik
  • Statistik
  • Datenbanken
  • Rechnungswesen
  • VWL

Studiengang-Filter

  • Informatik
  • Wirtschaftsinformatik
  • BWL
  • Data Science
  • VWL
  • Wirtschaftsingenieurwesen
  • Mathe
  • Psychologie
  • weitere Studiengänge folgen

Plattform

  • Mein Fortschritt
  • Impressum
  • Datenschutz
© 2026 UniProMaxAlle Systeme onlinev0.2 / Sommersemester 2026
UniProMaxUniProMaxUniProMaxUniProMax