Was ist Normalisierung in DBMS (SQL)? 1NF, 2NF, 3NF Beispiel

Was ist Datenbanknormalisierung?

Normalisierung 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.

Datenbank-Normalformen

Hier ist eine Liste der Normalformen in SQL:

  • 1NF (Erste Normalform)
  • 2NF (Zweite Normalform)
  • 3NF (Dritte Normalform)
  • BCNF (Boyce-Codd-Normalform)
  • 4NF (Vierte Normalform)
  • 5NF (Fünfte Normalform)
  • 6NF (Sechste Normalform)

Die Theorie der Datennormalisierung im 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:

Datenbank-Normalformen
Datenbank-Normalformen

Datenbanknormalisierung mit Beispielen

Datenbase 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:

Datenbanknormalisierung mit Beispiel

Hier sehen Sie Die Spalte „Ausgeliehene Filme“ enthält mehrere Werte. Kommen wir nun zu den ersten Normalformen:

1NF-Regeln (Erste Normalform).

  • Jede Tabellenzelle sollte einen einzelnen Wert enthalten.
  • Jeder Datensatz muss eindeutig sein.

Die obige Tabelle in 1NF-

1NF-Beispiel

1NF-Regeln

Beispiel für 1NF im DBMS

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?

Primärschlüssel

Primärschlüssel im DBMS

Ein Primärwert ist ein einzelner Spaltenwert, der zur eindeutigen Identifizierung eines Datenbankeintrags verwendet wird.

Es hat Following Attribute

  • 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.

Zusammengesetzter Schlüssel in der Datenbank

Zusammengesetzter Schlüssel in der Datenbank

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

2NF-Regeln (Zweite Normalform).

  • Regel 1 – Seien Sie in 1NF
  • Regel 2 – Einspaltiger Primärschlüssel, der funktional nicht von einer Teilmenge der Kandidatenschlüsselbeziehung abhängt

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.

2NF-Regeln

2NF-Regeln

Wir haben unsere 1NF-Tabelle in zwei Tabellen aufgeteilt viz. Tabelle 1 und Tabelle2. 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

Datenbank – Fremdschlüssel

Datenbank – Fremdschlüssel

Fremdschlüssel im DBMS

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

Datenbank – Fremdschlüssel

Warum braucht man einen Fremdschlüssel?

Angenommen, ein Anfänger fügt einen Datensatz in Tabelle B ein, z

Warum brauchen Sie einen Fremdschlüssel?

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.

Transitive funktionale Abhängigkeiten

Kommen wir zu 3NF

3NF-Regeln (Dritte Normalform).

  • 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:

3NF-Beispiel

3NF-Beispiel

3NF-Beispiel

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

Nun befindet sich unser kleines Beispiel auf einer Ebene, die nicht weiter zerlegt werden kann, um höhere Normalformtypen der Normalisierung im DBMS zu erreichen. Tatsächlich liegt es bereits in höheren Normalisierungsformen vor. In der Kommunikation sind normalerweise gesonderte Anstrengungen erforderlich, um zu den nächsten Ebenen der Normalisierung von Daten zu gelangenplex Datenbanken. Im Folgenden werden wir jedoch kurz auf die nächsten Stufen der Normalisierung im DBMS eingehenwing.

BCNF (Boyce-Codd-Normalform)

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.

4NF-Regeln (Vierte Normalform).

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.

5NF-Regeln (Fünfte Normalform).

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.

6NF (Sechste Normalform) 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…

Das ist alles zur SQL-Normalisierung!!!

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