MySQL lernen: Drei Paradigmen für Anfänger

MySQL lernen: Drei Paradigmen für Anfänger

1. Paradigmenfundament

1.1 Der Begriff des Paradigmas

Beim Entwurf einer Datenbank müssen einige Spezifikationen beachtet werden. Derzeit gibt es sechs Paradigmen für relationale Datenbanken: erstes Paradigma (1NF), zweites Paradigma (2NF), drittes Paradigma (3NF), Buss-Codd-Form (BCNF), viertes Paradigma (4NF) und fünftes Paradigma (5NF, auch als perfektes Paradigma bekannt).

Natürlich können wir unter normalen Umständen eine standardisiertere Datenbank entwerfen, wenn wir die ersten drei Paradigmen erfüllen.

Um dem letzteren Paradigma zu folgen, müssen Sie zuerst die Anforderungen des vorherigen Paradigmas erfüllen. Beispielsweise muss das zweite Paradigma zuerst dem ersten Paradigma folgen, das dritte Paradigma muss zuerst dem zweiten Paradigma folgen und so weiter.

2. Drei große Paradigmen

2.1 Drei große Paradigmenkonzepte

Erste Normalform (1NF): Jede Spalte kann nicht weiter aufgeteilt werden.
Zweite Normalform (2NF): Basierend auf der ersten Normalform sind Nicht-Primärschlüsselspalten vollständig vom Primärschlüssel abhängig und können nicht Teil des Primärschlüssels sein.
Dritte Normalform (3NF): Basierend auf der zweiten Normalform hängen Nicht-Primärschlüsselspalten nur vom Primärschlüssel ab und nicht von anderen Nicht-Primärschlüsseln.

2.2 Beispiele für die drei Paradigmen

Als Beispiel haben wir eine Tabelle. In den folgenden Beispielen werden wir diese Tabelle in drei Paradigmen transformieren und sie dann in eine Standardtabelle umwandeln:

Bildbeschreibung hier einfügen

1. Transformieren Sie das erste Paradigma

Erste Normalform (1NF): Eine Teilung der einzelnen Spalten ist nicht mehr möglich

Wir können sehen, dass es in der Tabelle eine Spalte gibt, die geteilt werden kann, nämlich die Reihe. Die Transformation davon in die erste Normalform ergibt also Folgendes:

Bildbeschreibung hier einfügen

2. Transformation des zweiten Paradigmas

Zweite Normalform (2NF): Basierend auf der ersten Normalform sind Nicht-Primärschlüsselspalten vollständig vom Primärschlüssel abhängig und können nicht Teil des Primärschlüssels sein.

Dieses zweite Paradigma ist nicht leicht zu verstehen. Lassen Sie uns daher zunächst einige Konzepte verstehen:

1. Funktionsabhängigkeit: Wenn der Wert eines eindeutigen B-Attributs aus einem A-Attribut (oder einer Attributgruppe) bestimmt werden kann, hängt B von A ab. Beispielsweise ist der Name im Bild oben komplett von der Matrikelnummer abhängig.
2. Vollständige funktionale Abhängigkeit: Wenn A eine Attributgruppe ist, muss die Bestimmung des Attributwerts von B von allen Attributwerten in der Attributgruppe von A abhängen. Eine Attributgruppe bezieht sich auf mehrere Felder. Wenn wir beispielsweise eine Punktzahl wissen möchten, müssen wir uns auf die Attribute „Matrikelnummer“ und „Kursname“ verlassen, um eine Punktzahl zu ermitteln. Andere Attribute können keine Punktzahl bestimmen.
3. Einige funktionale Abhängigkeiten: Wenn A eine Attributgruppe ist, muss die Ermittlung des Attributwerts von B auf einigen Feldern der Attributgruppe A basieren. Wenn beispielsweise die Studenten-ID und der Kursname eine Attributgruppe sind, kann der Studentenname nur durch die Studenten-ID ermittelt werden.
4. Abhängigkeit der Übertragungsfunktion: Wenn Attribut A (Attributgruppe) den eindeutigen Wert von Attribut B bestimmen kann, dann kann der Wert von Attribut C eindeutig durch den Wert von Attribut B bestimmt werden. Beispielsweise bestimmt eine Studenten-ID einen Abteilungsnamen und ein Abteilungsname entspricht einem Abteilungsleiter.
5. Primärschlüssel: Wenn in einer Tabelle ein Attribut oder eine Attributgruppe vollständig von allen anderen Attributen abhängig ist, wird dieses Attribut als Tabellencode bezeichnet, z. B. die Attributgruppe bestehend aus Matrikelnummer und Kursname in der obigen Abbildung.

Tatsächlich kann das zweite Paradigma auch verstanden werden als

Eliminieren Sie die teilweise Abhängigkeit von Nicht-Primärschlüsseln von Primärschlüsseln basierend auf dem ersten Paradigma

Der Primärschlüssel in der obigen Abbildung ist die Attributgruppe, die aus der Matrikelnummer und dem Kursnamen besteht. In der obigen Abbildung können wir sehen, dass mit Ausnahme der Punktzahl alle anderen Attribute teilweise vom Primärschlüssel abhängig sind. Dann können wir dies wie unten gezeigt korrigieren:

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Nach der zweiten Normalformtransformation wird eine Tabelle in zwei Tabellen aufgeteilt. Wir stellen fest, dass die zweite Normalform tatsächlich viele redundante Teile für uns eliminiert. Beispielsweise erschienen Zhang Wujis Name, der Abteilungsname und der Abteilungsdekan vor der Transformation dreimal in der Tabelle, aber nach der Transformation erschienen sie nur einmal in den beiden Tabellen.

3. Transformation zum dritten Paradigma

Dritte Normalform (3NF): Basierend auf der zweiten Normalform hängen Nicht-Primärschlüsselspalten nur vom Primärschlüssel ab und nicht von anderen Nicht-Primärschlüsseln.

Gemäß dem Konzept, das wir im zweiten Punkt erwähnt haben, ergibt sich daraus:

Bildbeschreibung hier einfügen

Oben finden Sie ausführliche Informationen zu den drei Hauptparadigmen des MySQL-Lernens für Anfänger. Weitere Informationen zu den drei Hauptparadigmen von MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Die einfachste und einprägsamste Erklärung der drei Paradigmen von Datenbanken
  • Detaillierte Erklärung der Verwendung des MySQL-Paradigmas
  • Detaillierte Erklärung des MySQL-Datenbankparadigmas
  • Eine kurze Analyse der drei wichtigsten Paradigmen des Datenbankdesigns

<<:  Probleme mit dem benannten Mount und dem anonymen Mount des Docker-Container-Datenvolumens

>>:  So verwenden Sie eine Bildschaltfläche als Schaltfläche zum Zurücksetzen des Formulars

Artikel empfehlen

Detaillierte Erklärung redundanter und doppelter Indizes in MySQL

MySQL ermöglicht das Erstellen mehrerer Indizes f...

Der Unterschied zwischen VOLUME und docker -v in Dockerfile

Es gibt offensichtliche Unterschiede zwischen der...

Lösen Sie das Problem verschwindender Docker-Images

1. Spiegelbilder verschwinden in 50 und 93 [root@...

Lombok-Implementierung JSR-269

Vorwort Einführung Lombok ist ein praktisches Too...

Beispiel zum Ändern von Stilen über CSS-Variablen

Frage Wie ändere ich den CSS-Pseudoklassenstil mi...

Spezifische Verwendung von Bootstrap5-Haltepunkten und Containern

Inhaltsverzeichnis 1. Bootstrap5-Haltepunkte 1.1 ...

Erläuterung der Anwendungsfälle von JavaScript setTimeout und setTimeinterval

Mit beiden Methoden kann ein JavaScript-Code nach...

JavaScript-Closures erklärt

Inhaltsverzeichnis 1. Was ist ein Abschluss? 2. D...

Lösung für das Problem, dass Nacos keine Verbindung zu MySQL herstellen kann

Grund Die MySQL-Version, von der Nacos‘ POM abhän...

Einige weniger bekannte Sortiermethoden in MySQL

Vorwort ORDER BY 字段名升序/降序. Ich glaube, jeder hier...

Detaillierte Erläuterung gängiger Methoden der Vue-Entwicklung

Inhaltsverzeichnis $nächsterTick() $forceUpdate()...

Kostenloses Tutorial zur Installationskonfiguration der Version MySQL 5.7.18

MySQL wird in eine Installationsversion und eine ...

Beispiel für die Konfiguration der Timeout-Einstellung für MySQL-Datenbanken

Inhaltsverzeichnis Vorwort 1. JDBC-Timeout-Einste...