Mysql-Datenbankdesign - Analyse von drei Paradigmenbeispielen

Mysql-Datenbankdesign - Analyse von drei Paradigmenbeispielen

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.

Das könnte Sie auch interessieren:
  • MySQL-Reihe: Datenbankdesign, drei Paradigmen, Tutorial-Beispiele
  • Detaillierte Erklärung des MySQL-Datenbankparadigmas
  • Optimierung von Datentabellen in MySQL-Datenbanken, Analyse von Fremdschlüsseln und Nutzung von drei Paradigmen
  • Zusammenfassung der Designtheorie zur Normalisierung von MySQL-Datenbanken

<<:  So konfigurieren Sie die maximale Anzahl von Dateien, die von jedem Nginx-Prozess geöffnet werden können

>>:  Eine kurze Diskussion über die Verwendung virtueller Listen zur Optimierung von Tabellen in el-table

Artikel empfehlen

js, um die Produktionsmethode des Karussells zu realisieren

In diesem Artikel wird der spezifische Code für j...

CocosCreator Erste Schritte Tutorial: Netzwerkkommunikation

Übersicht zur Netzwerkkommunikation Bei der Entwi...

Lösung für die Upload-Einschränkung von Element-ui-Uploaddateien

Frage Die Angabe des Typs der hochgeladenen Datei...

CSS-Code-Abkürzung div+css-Layout-Code-Abkürzungsspezifikation

Durch die Verwendung von Abkürzungen können Sie di...

Detaillierte Erklärung von Softlinks und Hardlinks in Linux

Inhaltsverzeichnis 1. Grundlegende Speicherung vo...

MySQL Master-Slave-Prinzip und Konfigurationsdetails

MySQL Master-Slave-Konfiguration und Prinzip, zu ...

So konfigurieren Sie den Whitelist-Zugriff in MySQL

Schritte zum Konfigurieren des Whitelist-Zugriffs...

Was Sie über die automatische ID-Inkrementierung in MySQL wissen müssen

Einführung: Wenn wir MySQL zum Erstellen einer Ta...

Beispiel für den Import von Nginx-Protokollen in Elasticsearch

Die Nginx-Protokolle werden von Filebeat gesammel...