Datenbankdesign Normalisierung – 1NF, 2NF, 3NF, BCNF, Anomalien, Beziehungen
Dieser Beitrag ist eine Begriffserklärung zur Datenbanknormalisierung – inklusive Prüfungsfragen und Tags.
In a Nutshell
Normalisierung eliminiert Redundanzen und Anomalien in Datenbanken durch schrittweise Zerlegung von Relationen in wohldefinierte Normalformen, um Datenintegrität und Konsistenz zu gewährleisten.
Kompakte Fachbeschreibung
Normalisierung ist ein systematischer Prozess zur Umgestaltung relationaler Datenbanken, um Redundanzen zu eliminieren und Anomalien zu vermeiden. Die 1. Normalform (1NF) fordert atomare Werte und eindeutige Primärschlüssel. Die 2. Normalform (2NF) erfordert 1NF und eliminiert partielle Abhängigkeiten von Nicht-Schlüsselattributen. Die 3. Normalform (3NF) verlangt 2NF und entfernt transitive Abhängigkeiten. Die Boyce-Codd-Normalform (BCNF) ist eine stärkere Form der 3NF, die alle determinanten Schlüsselkandidaten sein lässt. Durch Normalisierung werden Insert-, Update- und Delete-Anomalien vermieden und die Datenintegrität verbessert.
Prüfungsrelevante Stichpunkte
- 1NF: Atomare Werte, keine Wiederholungsgruppen, eindeutige Primärschlüssel
- 2NF: 1NF erfüllt, keine partiellen Abhängigkeiten, Nicht-Schlüssel-Attribute voll abhängig
- 3NF: 2NF erfüllt, keine transitiven Abhängigkeiten
- BCNF: Jede Determinante ist ein Schlüsselkandidat
- Funktionale Abhängigkeiten: X → Y bedeutet Y funktional abhängig von X
- Anomalien vermeiden: Insert-, Update-, Delete-Anomalien
- IHK relevant: Normalformen erkennen und anwenden können
- Praxis: Redundanzen reduzieren, Performance optimieren, Konsistenz sichern
Kernkomponenten
- Atomare Werte und 1NF
- Funktionale Abhängigkeiten
- Primärschlüssel und Schlüsselkandidaten
- Partielle Abhängigkeiten und 2NF
- Transitive Abhängigkeiten und 3NF
- Determinanten und BCNF
- Anomalien (Insert, Update, Delete)
- Redundanzen und ihre Folgen
- Beziehungen und Fremdschlüssel
- Denormalisierung als Gegenstück
Praxisbeispiel
// Vor Normalisierung (Problem mit Redundanzen)
Bestellung(BestellNr, KundenNr, KundenName, ArtikelNr, ArtikelName, Menge)
// Nach Normalisierung in 3NF
Kunde(KundenNr, KundenName)
Artikel(ArtikelNr, ArtikelName)
Bestellung(BestellNr, KundenNr, Datum)
BestellPosition(BestellNr, ArtikelNr, Menge)
Erklärung: Redundanzen eliminiert, jeder Datensatz nur einmal gespeichert, Anomalien vermieden.
Vorteile und Nachteile
Vorteile
- Reduziert Redundanzen und Speicherbedarf
- Vermeidet Anomalien bei Datenmanipulation
- Verbessert Datenintegrität und Konsistenz
- Ermöglicht flexiblere Datenstrukturänderungen
Nachteile
- Erhöhte Komplexität durch viele Tabellen
- Performance-Einbußen durch Joins
- Höherer Implementierungsaufwand
- Eventuell notwendige Denormalisierung für Performance
Typische Prüfungsfragen (mit Kurzantwort)
-
1NF fordert? Atomare Werte, keine Wiederholungsgruppen, eindeutige Primärschlüssel.
-
2NF unterscheidet sich von 1NF? 2NF erfordert 1NF und eliminiert partielle Abhängigkeiten von Nicht-Schlüsselattributen.
-
Transitive Abhängigkeit bei 3NF? Attribut A hängt von B ab, B hängt von C ab, aber A hängt nicht direkt von C ab.
-
BCNF stärker als 3NF? BCNF fordert, dass jede Determinante ein Schlüsselkandidat ist, strengere Bedingung als 3NF.
-
Insert-Anomalie vermeiden? Durch Normalisierung können neue Daten eingefügt werden, ohne vorhandene Daten duplizieren zu müssen.
-
Funktionale Abhängigkeit X → Y bedeutet? Für jeden Wert von X gibt es genau einen zugehörigen Wert von Y.
-
Update-Anomalie und Beispiel? Änderung eines Kundennamens erfordert Änderung in allen Bestellungen, riskiert Inkonsistenz.
-
Wann Denormalisierung sinnvoll? Bei Performance-Problemen durch komplexe Joins, gezielte Redundanzen bewusst in Kauf nehmen.
Wichtigste Quellen
- https://de.wikipedia.org/wiki/Normalisierung_(Datenbanken)
- https://docs.microsoft.com/de-de/sql/relational-databases/normalization
- https://www.guru99.com/database-normalization.html