DBMS-Normalisierung: 1NF-, 2NF-, 3NF-Datenbankbeispiel
Normalisierung auf den Punkt gebracht
Normalisierung ist der Prozess der Strukturierung einer Datenbank, um Redundanz zu reduzieren und die Konsistenz zu verbessern. Vereinfacht ausgedrรผckt werden dabei groรe, unรผbersichtliche Tabellen in kleinere, รผbersichtlichere Tabellen aufgeteilt. Dadurch wird sichergestellt, dass die Daten logisch gespeichert werden. Datenbanken sind effizient, leicht zu warten und frei von Duplikaten oder Fehlern.
Was ist Datenbanknormalisierung?
Datenbanknormalisierung ist eine Datenbankentwurfstechnik, die Datenredundanz reduziert und unerwรผnschte Merkmale wie Einfรผge-, Aktualisierungs- und Lรถschanomalien eliminiert. Normalisierungsregeln teilen grรถรere Tabellen in kleinere Tabellen auf und verknรผpfen diese mithilfe von Beziehungen. Der Zweck der Normalisierung in SQL besteht darin, redundante (sich wiederholende) Daten zu eliminieren und sicherzustellen, dass Daten logisch gespeichert werden.
Der Erfinder der relationales Modell Edgar Codd schlug mit der Einfรผhrung der Ersten Normalform die Theorie der Normalisierung von Daten vor und erweiterte die Theorie mit der Zweiten und Dritten Normalform weiter. Later Er schloss sich Raymond F. Boyce an, um die Theorie der Boyce-Codd-Normalform zu entwickeln.
Warum brauchen wir Normalisierung?
Ohne Normalisierung werden Datenbanken schnell inkonsistent und redundant. Probleme wie Einfรผgungsanomalien (unvollstรคndige Datensรคtze kรถnnen nicht hinzugefรผgt werden), Update-Anomalien (รnderungen an einer Stelle spiegeln sich nicht รผberall wider) und Lรถschanomalien (Beim Entfernen von Daten werden versehentlich wertvolle Informationen gelรถscht) treten hรคufig auf. Durch die Normalisierung werden diese Probleme vermieden, die Datenintegritรคt sichergestellt, Duplikate reduziert und die Datenbankverwaltung vereinfacht.
Welche Arten von Normalformen gibt es in DBMS?
Hier ist eine Liste der Normalformen in SQL:
- 1NF (Erste Normalform): Stellt sicher, dass die Datenbanktabelle so organisiert ist, dass jede Spalte atomare (unteilbare) Werte enthรคlt und jeder Datensatz eindeutig ist. Dadurch werden sich wiederholende Gruppen vermieden und die Daten werden in Tabellen und Spalten strukturiert.
- 2NF (Zweite Normalform): Baut auf 1NF auf: Wir mรผssen redundante Daten aus einer Tabelle entfernen, die auf mehrere Zeilen angewendet wird. und platzieren Sie sie in separaten Tabellen. Es erfordert, dass alle Nichtschlรผsselattribute auf dem Primรคrschlรผssel voll funktionsfรคhig sind.
- 3NF (Dritte Normalform): Erweitert 2NF, indem sichergestellt wird, dass alle Nichtschlรผsselattribute nicht nur auf dem Primรคrschlรผssel voll funktionsfรคhig, sondern auch unabhรคngig voneinander sind. Dadurch wird die transitive Abhรคngigkeit beseitigt.
- BCNF (Boyce-Codd-Normalform): Eine Weiterentwicklung von 3NF, die Anomalien behebt, die von 3NF nicht behandelt werden. Es erfordert, dass jede Determinante ein Kandidatenschlรผssel ist, was eine noch strengere Einhaltung der Normalisierungsregeln gewรคhrleistet.
- 4NF (Vierte Normalform): Behandelt mehrwertige Abhรคngigkeiten. Dadurch wird sichergestellt, dass es in einem Datensatz nicht mehrere unabhรคngige, mehrwertige Fakten zu einer Entitรคt gibt.
- 5NF (Fรผnfte Normalform): Auch als โProjection-Join Normal Formโ (PJNF) bekannt, bezieht es sich auf die Rekonstruktion von Informationen aus kleineren, unterschiedlich angeordneten Datenstรผcken.
- 6NF (Sechste Normalform): Theoretisch und nicht umfassend umgesetzt. Es befasst sich mit zeitlichen Daten (Verwaltung von รnderungen im Laufe der Zeit), indem Tabellen weiter zerlegt werden, um alle nicht-zeitlichen Redundanzen zu beseitigen.
Die Theorie der Datennormalisierung in MySQL Server wird noch weiterentwickelt. Diskussionen gibt es zum Beispiel schon am 6th Normalform. In den meisten praktischen Anwendungen erreicht die Normalisierung jedoch ihre beste Leistung in 3rd Normalform. Die Entwicklung der Normalisierung in SQL-Theorien wird unten dargestellt:
.png)
Datenbanknormalisierung mit Beispielen
Datenbank Beispiel fรผr eine Normalisierung lรคsst sich anhand einer Fallstudie leicht nachvollziehen. Angenommen, eine Videobibliothek verwaltet eine Datenbank mit ausgeliehenen Filmen. Ohne jegliche Normalisierung in der Datenbank werden alle Informationen wie unten gezeigt in einer Tabelle gespeichert. Lassen Sie uns die Normalisierungsdatenbank anhand eines Normalisierungsbeispiels mit Lรถsung verstehen:
Hier sehen Sie Die Spalte โAusgeliehene Filmeโ enthรคlt mehrere Werte. Kommen wir nun zu den ersten Normalformen:
Erste Normalform (1NF)
- Jede Tabellenzelle sollte einen einzelnen Wert enthalten.
- Jeder Datensatz muss eindeutig sein.
Die obige Tabelle in 1NF-
1NF-Beispiel

Bevor wir fortfahren, lassen Sie uns ein paar Dinge verstehen:
Was ist ein SCHLรSSEL in SQL?
A SCHLรSSEL in SQL ist ein Wert, der zur eindeutigen Identifizierung von Datensรคtzen in einer Tabelle verwendet wird. Ein SQL-SCHLรSSEL ist eine einzelne Spalte oder eine Kombination mehrerer Spalten, die zur eindeutigen Identifizierung von Zeilen oder Tupeln in der Tabelle verwendet werden. Der SQL-Schlรผssel wird zum Identifizieren doppelter Informationen verwendet und hilft auรerdem dabei, eine Beziehung zwischen mehreren Tabellen in der Datenbank herzustellen.
Hinweis: Spalten in einer Tabelle, die NICHT zur eindeutigen Identifizierung eines Datensatzes verwendet werden, werden als Nicht-Schlรผsselspalten bezeichnet.
Was ist ein Primรคrschlรผssel?

Ein Primรคrwert ist ein einzelner Spaltenwert, der zur eindeutigen Identifizierung eines Datenbankeintrags verwendet wird.
Es verfรผgt รผber folgende Eigenschaften
- A Primรคrschlรผssel kann nicht Null sein
- Ein Primรคrschlรผsselwert muss eindeutig sein
- Die Primรคrschlรผsselwerte sollten selten geรคndert werden
- Beim Einfรผgen eines neuen Datensatzes muss dem Primรคrschlรผssel ein Wert zugewiesen werden.
Was ist ein zusammengesetzter Schlรผssel?
Ein zusammengesetzter Schlรผssel ist ein aus mehreren Spalten bestehender Primรคrschlรผssel, der zur eindeutigen Identifizierung eines Datensatzes dient
In unserer Datenbank haben wir zwei Personen mit demselben Namen, Robert Phil, die jedoch an verschiedenen Orten leben.

Daher benรถtigen wir sowohl den vollstรคndigen Namen als auch die Adresse, um einen Datensatz eindeutig zu identifizieren. Das ist ein zusammengesetzter Schlรผssel.
Kommen wir zur zweiten Normalform 2NF
Zweite Normalform (2NF)
- Regel 1 โ Seien Sie in 1NF
- Regel 2 - Einspaltiger Primรคrschlรผssel, der funktional nicht von einer Teilmenge der Kandidatenschlรผsselbeziehung abhรคngig ist
Es ist klar, dass wir nicht weiterkommen kรถnnen, um unsere einfache Datenbank in 2 zu erstellennd Normalisierungsform, es sei denn, wir partitionieren die obige Tabelle.
Wir haben unsere 1NF-Tabelle in zwei Tabellen aufgeteilt, nรคmlich Tabelle 1 und Tabelle 2. Tabelle 1 enthรคlt Mitgliedsinformationen. Tabelle 2 enthรคlt Informationen zu ausgeliehenen Filmen.
Wir haben eine neue Spalte namens Membership_id eingefรผhrt, die der Primรคrschlรผssel fรผr Tabelle 1 ist. Datensรคtze kรถnnen in Tabelle 1 anhand der Mitgliedschafts-ID eindeutig identifiziert werden
Datenbank โ Fremdschlรผssel
In Tabelle 2 ist Membership_ID der Fremdschlรผssel

Foreign Key verweist auf den Primรคrschlรผssel einer anderen Tabelle! Es hilft, Ihre Tische zu verbinden
- Ein Fremdschlรผssel kann einen anderen Namen haben als sein Primรคrschlรผssel
- Es stellt sicher, dass Zeilen in einer Tabelle entsprechende Zeilen in einer anderen haben
- Im Gegensatz zum Primรคrschlรผssel mรผssen sie nicht eindeutig sein. Meistens sind sie es nicht
- Fremdschlรผssel kรถnnen null sein, obwohl Primรคrschlรผssel dies nicht kรถnnen
Warum braucht man einen Fremdschlรผssel?
Angenommen, ein Anfรคnger fรผgt einen Datensatz in Tabelle B ein, z
Sie kรถnnen nur Werte in Ihren Fremdschlรผssel einfรผgen, die im eindeutigen Schlรผssel in der รผbergeordneten Tabelle vorhanden sind. Dies trรคgt zur referenziellen Integritรคt bei.
Das obige Problem kann gelรถst werden, indem die Mitglieds-ID aus Tabelle2 als Fremdschlรผssel der Mitglieds-ID aus Tabelle1 deklariert wird
Wenn nun jemand versucht, einen Wert in das Feld โMitgliedschafts-IDโ einzufรผgen, der in der รผbergeordneten Tabelle nicht vorhanden ist, wird ein Fehler angezeigt!
Was sind transitive funktionale Abhรคngigkeiten?
Ein Transitiv funktionale Abhรคngigkeit Wenn Sie eine Nicht-Schlรผsselspalte รคndern, kann dies dazu fรผhren, dass sich auch alle anderen Nicht-Schlรผsselspalten รคndern
Betrachten Sie die Tabelle 1. Durch รndern der Nichtschlรผsselspalte โVollstรคndiger Nameโ kann sich die Anrede รคndern.
Kommen wir zu 3NF
Dritte Normalform (3NF)
- Regel 1 โ Seien Sie in 2NF
- Regel 2 โ Hat keine transitiven funktionalen Abhรคngigkeiten
Um unsere 2NF-Tabelle in 3NF zu verschieben, mรผssen wir unsere Tabelle erneut teilen.
3NF-Beispiel
Unten finden Sie ein 3NF-Beispiel in einer SQL-Datenbank:
Wir haben unsere Tabellen noch einmal aufgeteilt und eine neue Tabelle erstellt, in der Anreden gespeichert sind.
Es gibt keine transitiven funktionalen Abhรคngigkeiten und daher ist unsere Tabelle in 3NF
In Tabelle 3 ist die Anrede-ID der Primรคrschlรผssel, und in Tabelle 1 ist die Anrede-ID ein Fremdschlรผssel fรผr den Primรคrschlรผssel in Tabelle 3
Jetzt ist unser kleines Beispiel auf einer Ebene, die nicht weiter zerlegt werden kann, um hรถhere Normalisierungsformen in DBMS zu erreichen. Tatsรคchlich ist es bereits in hรถheren Normalisierungsformen vorhanden. In komplexen Datenbanken sind normalerweise separate Anstrengungen erforderlich, um in die nรคchsten Ebenen der Datennormalisierung zu gelangen. Wir werden jedoch im Folgenden kurz die nรคchsten Ebenen der Normalisierung in DBMS besprechen.
Boyce-Codd-Normalform (BCNF)
Auch wenn eine Datenbank in 3 istrd Normalform, dennoch wรผrde es zu Anomalien kommen, wenn es mehr als eine hรคtte Kandidat Schlรผssel.
Manchmal wird auch BCNF genannt 3.5 Normalform.
Vierte Normalform (4NF)
Wenn keine Datenbanktabelleninstanz zwei oder mehr unabhรคngige und mehrwertige Daten enthรคlt, die die relevante Entitรคt beschreiben, dann ist sie in 4th Normalform.
Fรผnfte Normalform (5NF)
Eine Tabelle finden Sie in 5th Normalform nur, wenn sie in 4NF vorliegt und nicht ohne Datenverlust in eine beliebige Anzahl kleinerer Tabellen zerlegt werden kann.
Sechste Normalform (6NF) vorgeschlagen
6th Die Normalform ist nicht standardisiert, wird jedoch seit einiger Zeit von Datenbankexperten diskutiert. Hoffentlich hรคtten wir eine klare und standardisierte Definition fรผr 6th Normalform in naher Zukunftโฆ
Was sind die Vorteile der Normalisierung?
- Verbessern Sie die Datenkonsistenz: Durch die Normalisierung wird sichergestellt, dass jedes Datenelement nur an einem Ort gespeichert wird, wodurch die Wahrscheinlichkeit inkonsistenter Daten verringert wird. Wenn Daten aktualisiert werden, mรผssen sie nur an einer Stelle aktualisiert werden, um die Konsistenz sicherzustellen.
- Datenredundanz reduzieren: Durch die Normalisierung werden doppelte Daten eliminiert, indem sie in mehrere zusammengehรถrige Tabellen aufgeteilt werden. Dies kann Speicherplatz sparen und die Datenbank effizienter machen.
- Verbessern Sie die Abfrageleistung: Normalisierte Datenbanken sind oft einfacher abzufragen. Da die Daten logisch organisiert sind, kรถnnen Abfragen so optimiert werden, dass sie schneller ausgefรผhrt werden.
- Machen Sie Daten aussagekrรคftiger: Normalisierung beinhaltet Gruppenping Daten werden so aufbereitet, dass sie verstรคndlich und intuitiv sind. Dadurch wird die Datenbank leichter verstรคndlich und nutzbar, insbesondere fรผr Personen, die sie nicht entworfen haben.
- Reduzieren Sie die Wahrscheinlichkeit von Anomalien: Anomalien sind Probleme, die beim Hinzufรผgen, Aktualisieren oder Lรถschen von Daten auftreten kรถnnen. Durch Normalisierung kann die Wahrscheinlichkeit dieser Anomalien verringert werden, indem sichergestellt wird, dass die Daten logisch organisiert sind.
Was sind die Nachteile der Normalisierung?
- Erhรถhte Komplexitรคt: Normalisierung kann zu komplexen Beziehungen fรผhren. Eine groรe Anzahl von Tabellen mit Fremdschlรผsseln kann schwierig zu verwalten sein und zu Verwirrung fรผhren.
- Reduzierte Flexibilitรคt: Aufgrund der strengen Normalisierungsregeln besteht mรถglicherweise weniger Flexibilitรคt beim Speichern von Daten, die diese Regeln nicht einhalten.
- Erhรถhter Speicherbedarf: Wรคhrend die Normalisierung die Redundanz verringert, kann es erforderlich sein, mehr Speicherplatz zuzuweisen, um die zusรคtzlichen Tabellen und Indizes unterzubringen.
- Leistungs-Overhead: Das Zusammenfรผhren mehrerer Tabellen kann im Hinblick auf die Leistung kostspielig sein. Je normalisierter die Daten sind, desto mehr Verknรผpfungen sind erforderlich, was die Datenabrufzeiten verlangsamen kann.
- Verlust des Datenkontexts: Durch die Normalisierung werden Daten in separate Tabellen aufgeteilt, was zum Verlust des Geschรคftskontexts fรผhren kann. Die Untersuchung verwandter Tabellen ist notwendig, um den Kontext eines Datenelements zu verstehen.
- Bedarf an Expertenwissen: Die Implementierung einer normalisierten Datenbank erfordert ein tiefes Verstรคndnis der Daten, der Beziehungen zwischen Daten und der Normalisierungsregeln. Dies erfordert Expertenwissen und kann zeitaufwรคndig sein.
Das ist alles zur SQL-Normalisierung!!!
Hรคufig gestellte Fragen
Zusammenfassung
- Datenbankdesign ist entscheidend fรผr die erfolgreiche Implementierung eines Datenbankverwaltungssystems, das die Datenanforderungen eines Unternehmenssystems erfรผllt.
- Die Normalisierung im DBMS ist ein Prozess, der dazu beitrรคgt, Datenbanksysteme zu erstellen, die kostengรผnstiger sind und รผber bessere Sicherheitsmodelle verfรผgen.
- Funktionale Abhรคngigkeiten sind ein sehr wichtiger Bestandteil des Normalisierungsprozesses von Daten
- Die meisten Datenbanksysteme sind bis zur dritten Normalform im DBMS normalisierte Datenbanken.
- Ein Primรคrschlรผssel identifiziert den Datensatz in einer Tabelle eindeutig und darf nicht null sein
- Ein Fremdschlรผssel hilft beim Verbinden einer Tabelle und verweist auf einen Primรคrschlรผssel











