Drei Paradigmen 1NF: Felder sind untrennbar; 2NF: Es gibt einen Primärschlüssel, und Nicht-Primärschlüsselfelder hängen vom Primärschlüssel ab. 3NF: Nicht-Primärschlüsselfelder können nicht voneinander abhängig sein; erklären: 1NF: Das atomare Feld kann nicht weiter unterteilt werden, sonst ist es keine relationale Datenbank; 2NF: Eindeutigkeit. Eine Tabelle beschreibt nur eine Sache; 3NF: Jede Spalte hat eine direkte Beziehung zum Primärschlüssel und es besteht keine transitive Abhängigkeit. Erste Normalform (1NF) Das heißt, die Spalten der Tabelle sind atomar und können nicht weiter zerlegt werden. Das heißt, die Informationen in den Spalten können nicht zerlegt werden. Solange die Datenbank eine relationale Datenbank ist (MySQL/Oracle/DB2/Informix/Sysbase/SQL Server), erfüllt sie automatisch 1NF. Jede Spalte in einer Datenbanktabelle ist ein unteilbares atomares Datenelement und kann kein nicht-atomares Datenelement wie eine Sammlung, ein Array oder ein Datensatz sein. Wenn ein Attribut in einer Entität mehrere Werte hat, muss es in verschiedene Attribute aufgeteilt werden. Vereinfacht ausgedrückt speichert ein Feld nur eine Information. Relationale Datenbank: MySQL/Oracle/DB2/Informix/Sysbase/SQL Server Nicht-relationale Datenbank: (Funktionen: objektorientiert oder sammlungsorientiert) NoSql-Datenbank: MongoDB/Redis (Funktionen: dokumentenorientiert) Zweite Normalform (2NF) Die zweite Normalform (2NF) basiert auf der ersten Normalform (1NF), d. h. um die zweite Normalform (2NF) zu erfüllen, muss zuerst die erste Normalform (1NF) erfüllt sein. Die zweite Normalform (2NF) erfordert, dass jede Instanz oder Zeile in einer Datenbanktabelle eindeutig unterscheidbar sein muss. Um diese Unterscheidung zu erreichen, müssen wir normalerweise einen Primärschlüssel entwerfen (der Primärschlüssel enthält hier keine Geschäftslogik). Das heißt, die Prämisse des ersten Paradigmas ist erfüllt. Wenn mehrere Primärschlüssel vorhanden sind, ist das zweite Paradigma nicht vereinbar. Wenn beispielsweise zwei Primärschlüssel vorhanden sind, kann es kein Attribut geben, das nur von einem der Primärschlüssel abhängt. Dies entspricht nicht der zweiten Normalform. Im Allgemeinen wird davon ausgegangen, dass jedes Feld nur vom gleichen Feld in der Tabelle abhängt. (Inklusive Tabellenaufteilung) Nachfolgend finden Sie die Tabelle zur Kursauswahl für Studenten: |
Studierendenausweis | Kurs | Punktzahl | Studienleistungen |
---|---|---|---|
10001 | Mathe | 100 | 6 |
10001 | Sprache | 90 | 2 |
10001 | Englisch | 85 | 3 |
10002 | Mathe | 90 | 6 |
10003 | Mathe | 99 | 6 |
10004 | Sprache | 89 | 2 |
Der Primärschlüssel in der Tabelle lautet (Matrikelnummer, Kurs), was als (Matrikelnummer, Kurs) -> (Note, Kursguthaben) ausgedrückt werden kann, was darauf hinweist, dass alle Nicht-Primärschlüsselspalten (Note, Kursguthaben) vom Primärschlüssel (Matrikelnummer, Kurs) abhängen. Es besteht jedoch eine weitere Abhängigkeit in der Tabelle: (Kurs)->(Kursguthaben). Auf diese Weise hängt die nicht-Primärschlüsselspalte „Kursguthaben“ von der partiellen Primärschlüsselspalte „Kurs“ ab, sodass die obige Tabelle nicht der zweiten Normalform genügt.
Wir haben es in die folgenden zwei Tabellen aufgeteilt:
Tabelle zur Kurswahl für Studierende:
Studierendenausweis | Kurs | Punktzahl |
---|---|---|
10001 | Mathe | 100 |
10001 | Sprache | 90 |
10001 | Englisch | 85 |
10002 | Mathe | 90 |
10003 | Mathe | 99 |
10004 | Sprache | 89 |
Kursinformationsblatt:
Kurs | Studienleistungen |
---|---|
Mathe | 6 |
Sprache | 3 |
Englisch | 2 |
Für die beiden obigen Tabellen lautet der Primärschlüssel der Kursauswahltabelle für Studenten (Matrikelnummer, Kurs) und der Primärschlüssel der Kursinformationstabelle (Kurs). Alle Spalten in der Tabelle, die keine Primärschlüssel sind, sind vollständig vom Primärschlüssel abhängig. Es entspricht nicht nur dem zweiten Paradigma, sondern auch dem dritten Paradigma.
Schauen wir uns dieses Informationsblatt für Studierende an:
Studierendenausweis | Name | Geschlecht | Klasse | Schulleiter |
---|---|---|---|---|
10001 | Zhang San | männlich | Klasse 1 | Xiao Wang |
10002 | Li Si | männlich | Klasse 1 | Xiao Wang |
10003 | Wang Wu | männlich | Klasse 2 | Xiao Li |
10004 | Zhang Xiaosan | männlich | Klasse 2 | Xiao Li |
In der obigen Tabelle lautet der Primärschlüssel: (Matrikelnummer), alle Felder (Name, Geschlecht, Klasse, Schulleiter) sind vom Primärschlüssel (Matrikelnummer) abhängig, es besteht keine teilweise Abhängigkeit vom Primärschlüssel. Es erfüllt also die zweite Normalform.
Dritte Normalform (3NF)
Um die dritte Normalform (3NF) zu erfüllen, muss zuerst die zweite Normalform (2NF) erfüllt sein. Kurz gesagt erfordert die dritte Normalform (3NF), dass eine Datenbanktabelle keine nicht-primären Schlüsselfelder enthält, die bereits in anderen Tabellen enthalten sind. Das heißt, wenn die Informationen aus der Tabelle abgeleitet werden können, sollte für deren Speicherung kein separates Feld vorgesehen werden (verwenden Sie nach Möglichkeit eine Fremdschlüsselverknüpfung). Um die dritte Normalform zu erreichen, teilen wir eine Tabelle häufig in mehrere Tabellen auf.
Das heißt, es erfüllt die Prämisse der zweiten Normalform. Wenn ein Attribut von anderen Nicht-Primärschlüsselattributen abhängt und andere Nicht-Primärschlüsselattribute vom Primärschlüssel abhängen, dann ist dieses Attribut indirekt vom Primärschlüssel abhängig, was als transitive Abhängigkeit vom Primärattribut bezeichnet wird. Die einfache Erklärung dafür ist, dass eine Tabelle höchstens zwei Ebenen gleichartiger Informationen speichern kann.
Anti-drei Paradigmen
Eine Datenbank ohne Redundanz ist nicht unbedingt die beste Datenbank. Um die Betriebseffizienz und die Leseleistung zu verbessern, ist es manchmal notwendig, den Paradigmenstandard zu senken und redundante Daten entsprechend beizubehalten. Der konkrete Ansatz lautet: Halten Sie sich beim Entwurf des konzeptionellen Datenmodells an die dritte Normalform und ziehen Sie beim Entwurf des physischen Datenmodells eine Absenkung des Paradigmenstandards in Betracht. Das Herabsetzen des Paradigmas bedeutet das Hinzufügen von Feldern, das Reduzieren der Assoziationen während der Abfrage und die Verbesserung der Abfrageeffizienz, da der Anteil der Abfragen bei Datenbankvorgängen viel größer ist als bei DML. Allerdings muss die Entparadigmierung moderat erfolgen und Anpassungen sollten auf der Grundlage der ursprünglichen Erfüllung der drei Paradigmen vorgenommen werden.
Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.
In diesem Artikel wird der spezifische Code für j...
Übersicht zur Netzwerkkommunikation Bei der Entwi...
Frage Die Angabe des Typs der hochgeladenen Datei...
1. Richten Sie auf der virtuellen Maschine einen ...
Durch die Verwendung von Abkürzungen können Sie di...
Inhaltsverzeichnis 1. Grundlegende Speicherung vo...
MySQL Master-Slave-Konfiguration und Prinzip, zu ...
Schritte zum Konfigurieren des Whitelist-Zugriffs...
Einführung: Wenn wir MySQL zum Erstellen einer Ta...
Wenn ich Vue lerne und immer Webpack-Anweisungen ...
Die Breite des übergeordneten Containers ist fest...
Mit den MySQL-Funktionen CAST() und CONVERT() kön...
Einführung In diesem Artikel stellen wir vor, wie...
Vorwort Solche Spezialeffekte sollte man oft sehe...
Die Nginx-Protokolle werden von Filebeat gesammel...