Datenbanknormalisierung organisiert Daten auf strukturierte und konsistente Weise, eliminiert Redundanz und stellt die Datenintegrität innerhalb relationaler Datenbanken sicher. Es erleichtert die Verwaltung, Abfrage und Wartung von Datenbanken und reduziert Fehler.
Durch die Befolgung von Normalisierungsregeln können Sie Datenbanken entwerfen, die einfacher zu warten und weniger fehleranfällig sind.
Bevor wir uns mit der Normalisierung befassen, wollten wir die Grundlagen der relationalen Datenbank kennen.
Primärschlüssel – Eine eindeutige Kennung für jede Zeile in einer Tabelle. Stellt sicher, dass jeder Datensatz eindeutig identifiziert werden kann.
Fremdschlüssel – Ein Feld in einer Tabelle, das mit dem Primärschlüssel einer anderen Tabelle verknüpft ist und so eine Beziehung zwischen den beiden Tabellen herstellt
Wir haben erwähnt, dass die Normalisierung der Beseitigung von Redundanz und inkonsistenter Abhängigkeit dient. Was ist das?
Redundante Daten bedeutet, dass dieselben Daten an mehreren Orten gespeichert werden, was Speicherplatz verschwendet und Wartungsprobleme verursacht. Sollten sich Änderungen an den Daten ergeben, müssen wir diese an allen Stellen aktualisieren.
Inkonsistente Abhängigkeit tritt auf, wenn Daten in einer Datenbank auf unvorhersehbare oder falsche Weise von anderen Daten abhängen. Dies kann zu Fehlern führen und die Datenbank unzuverlässig machen.
Stellen Sie sich Normalformen als Kontrollpunkte/Regeln in einem Prozess vor, ähnlich wie eine Fahrprüfung Phasen wie Fahrschüler, Parken und Straßentest umfasst.
Um diese Daten zu normalisieren, erstellen wir separate Tabellen für Studierende und ihre Kurse:
Die 1NF eliminiert nur sich wiederholende Gruppen, keine Redundanz. Deshalb gibt es 2NF.
Eine Tabelle gilt als 2NF, wenn sie die folgenden Kriterien erfüllt:
es ist bereits in 1NF
Keine teilweise Abhängigkeit. Das heißt, alle Nicht-Schlüsselattribute sind vollständig von einem Primärschlüssel abhängig.
Entfernt transitive Abhängigkeiten, indem sichergestellt wird, dass Nichtschlüsselattribute nur vom Primärschlüssel abhängen.
Jetzt müssen wir die transitive Abhängigkeit verstehen, die der Schlüssel zum Verständnis von 3NF ist.
Transitive Abhängigkeit tritt auf, wenn ein Attribut (eine Spalte) von einem anderen Nicht-Schlüsselattribut abhängt und nicht direkt vom Primärschlüssel abhängt.
3NF erfordert
Dies ist die endgültige Struktur in 3NF:
Keine teilweise Abhängigkeit (da alle Attribute vollständig vom gesamten Primärschlüssel in ihren jeweiligen Tabellen abhängig sind).
Keine transitive Abhängigkeit (da keine Nicht-Schlüsselattribute von anderen Nicht-Schlüsselattributen abhängen).
3NF: Stellt keine transitiven Abhängigkeiten sicher.
EKNF: Verfeinert 3NF weiter, indem sichergestellt wird, dass alle funktionalen Abhängigkeiten elementar sind, und befasst sich mit komplexeren Abhängigkeiten, die 3NF möglicherweise nicht verarbeiten kann.
Eine Tabelle ist in BCNF, wenn:
Superkey: Ein Satz aus einer oder mehreren Spalten, die eine Zeile in einer Tabelle eindeutig identifizieren können.
Funktionale Abhängigkeit: Eine Beziehung, bei der ein Attribut ein anderes Attribut eindeutig bestimmt.
Nächste Stufe der Normalform nach BCNF.
Andere Normalformen befassen sich mit funktionalen Abhängigkeiten, 4NF befasst sich mit einer allgemeineren Art von Abhängigkeit, die als mehrwertige Abhängigkeit bekannt ist.
Mehrwertige Abhängigkeit – Tritt auf, wenn ein Attribut unabhängig von anderen Attributen mehrere Werte eines anderen Attributs bestimmt.
Sie wird auch als Project-Join Normal Form (PJNF) bezeichnet und ist die höchste Ebene der Normalisierung. Eine Tabelle ist in 5NF, wenn sie bereits in 4NF ist und nicht in kleinere Tabellen zerlegt werden kann, ohne die Datenintegrität zu verlieren. Dies bedeutet, dass jede nicht triviale Join-Abhängigkeit in der Tabelle durch die Kandidatenschlüssel impliziert wird.
Wenn wir diese Tabelle in kleinere Tabellen zerlegen, um Redundanz zu beseitigen, müssen wir sicherstellen, dass wir die ursprüngliche Tabelle immer noch ohne Informationsverlust rekonstruieren können. In 5NF erfolgt diese Zerlegung so, dass keine Informationen verloren gehen und alle Join-Abhängigkeiten erhalten bleiben. Erklären Sie anhand von Beispielen
Tabellen können denormalisiert werden, um die Leistung zu verbessern.
Normalisierung erhöht die Anzahl der Tabellen und Beziehungen.
Der Zugriff auf mehrere Tabellen über Beziehungen hinweg erfordert mehr Verarbeitung als der Zugriff auf eine einzelne Tabelle.
Das obige ist der detaillierte Inhalt vonDatenbanknormalisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!