Was ist Normalisierung? Beispiel für eine 1NF-, 2NF-, 3NF-, BCNF-Datenbank

Inhaltsverzeichnis:

Anonim

Was ist Normalisierung?

Die Normalisierung ist eine Datenbankentwurfstechnik, die die Datenredundanz verringert und unerwünschte Merkmale wie Einfügungs-, Aktualisierungs- und Löschanomalien beseitigt. Normalisierungsregeln unterteilen größere Tabellen in kleinere Tabellen und verknüpfen sie mithilfe von Beziehungen. Der Zweck der Normalisierung in SQL besteht darin, redundante (sich wiederholende) Daten zu eliminieren und sicherzustellen, dass die Daten logisch gespeichert werden.

Der Erfinder des relationalen Modells Edgar Codd schlug die Theorie der Normalisierung von Daten mit der Einführung der ersten Normalform vor und erweiterte die Theorie weiter um die zweite und dritte Normalform. Später schloss er sich Raymond F. Boyce an, um die Theorie der Boyce-Codd-Normalform zu entwickeln.

Normale Formulare der Datenbank

Hier ist eine Liste der Normalformen

  • 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 in SQL Server wird noch weiterentwickelt. Zum Beispiel gibt es Diskussionen sogar auf 6 th Normalform. Doch in den meisten praktischen Anwendungen Normalisierung erreicht seine besten in 3 rd Normalform . Die Entwicklung der SQL-Normalisierungstheorien ist unten dargestellt.

Normale Formulare der Datenbank

Datenbanknormalisierung mit Beispielen

Ein Beispiel für eine Datenbanknormalisierung kann anhand einer Fallstudie leicht verstanden werden. Angenommen, eine Videobibliothek verwaltet eine Datenbank mit ausgeliehenen Filmen. Ohne Normalisierung in der Datenbank werden alle Informationen wie unten gezeigt in einer Tabelle gespeichert. Lassen Sie uns die Normalisierung in der Datenbank anhand von Tabellen verstehen. Beispiel:

Hier sehen Sie, dass die Spalte "Filme ausgeliehen" mehrere Werte hat. Gehen wir nun zu den 1. Normalformen über:

1NF-Regeln (First Normal Form)

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

Die obige Tabelle in 1NF-

1NF Beispiel

Bevor wir fortfahren, wollen wir ein paar Dinge verstehen -

Was ist ein Schlüssel?

Ein KEY ist ein Wert, mit dem ein Datensatz in einer Tabelle eindeutig identifiziert wird. Ein SCHLÜSSEL kann eine einzelne Spalte oder eine Kombination mehrerer Spalten sein

Hinweis: Spalten in einer Tabelle, die NICHT zur eindeutigen Identifizierung eines Datensatzes verwendet werden, werden als Nichtschlüsselspalten bezeichnet.

Was ist ein Primärschlüssel?

Ein Primärwert ist ein einzelner Spaltenwert, mit dem ein Datenbankeintrag eindeutig identifiziert wird.

Es hat folgende Attribute

  • Ein Primärschlüssel kann nicht NULL sein
  • Ein Primärschlüsselwert muss eindeutig sein
  • Die Primärschlüsselwerte sollten selten geändert werden
  • Der Primärschlüssel muss beim Einfügen eines neuen Datensatzes einen Wert erhalten.

Was ist ein zusammengesetzter Schlüssel?

Ein zusammengesetzter Schlüssel ist ein Primärschlüssel, der aus mehreren Spalten besteht, mit denen ein Datensatz eindeutig identifiziert wird

In unserer Datenbank haben wir zwei Personen mit dem gleichen Namen Robert Phil, die jedoch an verschiedenen Orten leben.

Daher benötigen wir sowohl den vollständigen Namen als auch die vollständige Adresse, um einen Datensatz eindeutig zu identifizieren. Das ist ein zusammengesetzter Schlüssel.

Gehen wir zur zweiten Normalform 2NF über

2NF-Regeln (Second Normal Form)

  • Regel 1 - Sei in 1NF
  • Regel 2 - Einspaltiger Primärschlüssel

Es ist klar , dass wir nicht vorwärts bewegen können unsere einfache Datenbank in 2 machen nd Normalisierungsform , wenn wir die Tabelle oben partitionieren.

Wir haben unsere 1NF-Tabelle in zwei Tabellen unterteilt, nämlich. Tabelle 1 und Tabelle 2. Tabelle 1 enthält Mitgliederinformationen. Tabelle 2 enthält Informationen zu ausgeliehenen Filmen.

Wir haben eine neue Spalte mit dem Namen Membership_id eingeführt, die der Primärschlüssel für Tabelle 1 ist. Datensätze können in Tabelle 1 anhand der Mitglieds-ID eindeutig identifiziert werden

Datenbank - Fremdschlüssel

In Tabelle 2 ist Membership_ID der Fremdschlüssel

Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle! Es hilft, Ihre Tabellen zu verbinden

  • Ein Fremdschlüssel kann einen anderen Namen als sein Primärschlüssel haben
  • 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, Primärschlüssel jedoch nicht

Warum brauchen Sie 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 hilft bei der referenziellen Integrität.

Das obige Problem kann überwunden werden, indem die Mitgliedschafts-ID aus Tabelle 2 als Fremdschlüssel der Mitgliedschafts-ID aus Tabelle 1 deklariert wird

Wenn nun jemand versucht, einen Wert in das Feld für die Mitgliedschafts-ID einzufügen, der in der übergeordneten Tabelle nicht vorhanden ist, wird ein Fehler angezeigt!

Was sind transitive funktionale Abhängigkeiten?

Eine transitive funktionale Abhängigkeit besteht darin, dass beim Ändern einer Nichtschlüsselspalte möglicherweise eine der anderen Nichtschlüsselspalten geändert wird

Betrachten Sie die Tabelle 1. Durch Ändern der Nicht-Schlüsselspalte Vollständiger Name kann die Anrede geändert werden.

Gehen wir zu 3NF über

3NF-Regeln (Dritte Normalform)

  • Regel 1 - Sei 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 erneut 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 dem Primärschlüssel in Tabelle 3 fremd

Jetzt befindet sich unser kleines Beispiel auf einem Niveau, das nicht weiter zerlegt werden kann, um höhere normale Formen der Normalisierung zu erreichen. Tatsächlich liegt es bereits in höheren Normalisierungsformen vor. In komplexen Datenbanken sind normalerweise separate Anstrengungen erforderlich, um zu den nächsten Ebenen der Normalisierung von Daten zu gelangen. Wir werden jedoch im Folgenden kurz auf die nächsten Normalisierungsebenen eingehen.

BCNF (Boyce-Codd Normalform)

Selbst wenn eine Datenbank in 3 rd Normalform, noch gäbe es Anomalien geführt , wenn es mehr als einen hat Candidate Key.

Manchmal wird BCNF auch als 3.5 Normalform bezeichnet.

4NF-Regeln (vierte Normalform)

Wenn keine Datenbank - Tabellen - Instanz enthält zwei oder mehr, unabhängige und mehrwertige Daten des jeweiligen Unternehmens beschreiben, dann ist es in 4 th Normalform.

5NF-Regeln (fünfte Normalform)

Eine Tabelle ist in 5 th Normalform nur dann , wenn es in 4NF ist und es kann nicht in einem beliebigen Anzahl von kleineren Tabellen ohne Datenverlust zerlegt werden.

6NF (Sechste Normalform) Vorgeschlagen

6 th Normalform nicht standardisiert ist, noch ist es jedoch von Datenbank - Experten seit einiger Zeit diskutiert. Hoffentlich würden wir eine klare und einheitliche Definition für 6 haben th Normalform in naher Zukunft ...

Das ist alles zur SQL-Normalisierung !!!

Zusammenfassung

  • Das Datenbankdesign ist entscheidend für die erfolgreiche Implementierung eines Datenbankverwaltungssystems, das die Datenanforderungen eines Unternehmenssystems erfüllt.
  • Der Normalisierungsprozess in DBMS hilft bei der Erstellung kostengünstiger Datenbanksysteme mit besseren Sicherheitsmodellen.
  • Funktionale Abhängigkeiten sind ein sehr wichtiger Bestandteil des Normalisierungsdatenprozesses
  • Die meisten Datenbanksysteme sind normalisierte Datenbanken bis zur dritten Normalform.
  • Ein eindeutig identifizierter Primärschlüssel wird in einer Tabelle aufgezeichnet und darf nicht null sein
  • Ein Fremdschlüssel hilft beim Verbinden der Tabelle und verweist auf einen Primärschlüssel