MySQL: Datenintegrität

MySQL: Datenintegrität

Die Datenintegrität wird in Entitätsintegrität, Domänenintegrität und referenzielle Integrität unterteilt.

Referenzielle Integrität:

Referenzielle Integrität bezieht sich auf den Entwurf zwischen mehreren Tabellen, hauptsächlich unter Verwendung von Fremdschlüsseleinschränkungen.
Mehrtabellendesign: Eins-zu-viele-, Viele-zu-viele-, Eins-zu-eins-Design

1. Entitäts- (Zeilen-) Integrität

Die Entitätsintegrität wird durch den Primärschlüssel der Tabelle erreicht.
Verwenden Sie den Primärschlüssel, um anzugeben, dass ein Datensatz eindeutig und nicht leer ist. Syntax: Primärschlüssel
Primärschlüsselklassifizierung:

Logischer Primärschlüssel: wie z. B. ID, stellt keine tatsächliche geschäftliche Bedeutung dar, sondern wird nur zur eindeutigen Identifizierung eines Datensatzes verwendet (empfohlen)
Primärschlüssel für Unternehmen: wie z. B. Benutzername, der an der eigentlichen Geschäftslogik beteiligt ist.
Merkmale: einzigartig, nicht null
Automatisches Wachstum: auto_increment

Zum Beispiel:

Tabelle erstellen person2(
			ID int Primärschlüssel auto_increment,
			Name varchar(100)
);

2. Domänen- (Spalten-) Integrität

Nicht null-Einschränkung: nicht null
Eindeutige Einschränkung: eindeutig

Tabelle erstellen person3(
			id int nicht null eindeutig,
			Name varchar(20) nicht null eindeutig,
			Geschlecht varchar(20) nicht null,
			phone char(11) unique #Nicht erlaubt,
	);

Drei: Referenzielle Integrität

1. Eins-zu-viele
a: Beispielsweise besteht zwischen Kunden und Bestellungen eine Eins-zu-viele-Beziehung. Ein Kunde kann mehrere Bestellungen haben, und eine Bestellung gehört einem Kunden.
b: Der Fremdschlüssel wird auf die andere Partei gesetzt

Syntaxeingabe zum Erstellen von Eins-zu-vielen:
Erstellen Sie die Kundentabelle:

Tabelle Kunden erstellen(
	Ich würde int,
	Name varchar(20),
	Adresse varchar(100),
	Primärschlüssel (ID)
);

Erstellen Sie die Tabelle „Bestellungen“:

Tischbestellungen erstellen(
	Ich würde int,
	order_num int Primärschlüssel,
	Preis Float (4,2),
	Kunden-ID int,
	 Einschränkung customer_ord_fk Fremdschlüssel (customer_id) verweist auf Kunden (id)
);

Hinweis: Einschränkung: Einschränkung, Fremdschlüssel: Fremdschlüssel, Referenzen: Referenzen Erstellen Sie eine Fremdschlüsseleinschränkung mit dem Namen customer_ord_fk. Der Fremdschlüssel bezieht sich auf customer_id, die wiederum auf die ID-Spalte in der Kundentabelle verweist.

Tabellenoperation erzeugt Eins-zu-Viele

Kundentabelle



Auftragstabelle

Bestellungen Fremdschlüsseleinstellungen


Erstellen Sie eine Fremdschlüsseleinschränkung mit dem Namen „customer_ord_fk“ mit dem Fremdschlüsselfeld „customer_id“, das auf die Spalte „ID“ in der Tabelle „Customers“ verweist.

Erweiterung: Vier Strategien zum Löschen und Aktualisieren von Untertabellen:

  1. 1. Kaskadenstrategie: Wenn diese Strategie verwendet wird, wird die Untertabelle synchron gelöscht oder geändert, wenn die Datensätze der Haupttabelle gelöscht oder das Primärschlüsselfeld geändert wird.
  2. 2, Strategie ohne Aktion: Wenn Sie diese Strategie verwenden, müssen Sie die Untertabelle löschen, bevor Sie die Haupttabelle löschen. Sie müssen die mit der Untertabelle verknüpften Datensätze löschen, bevor Sie die Datensätze in der Haupttabelle löschen. Sie können den Wert des Primärschlüsselfelds in der Haupttabelle nicht aktualisieren.
  3. 3. Beschränken Sie die Strategie zur Einschränkung der Haupttabelle. Diese Strategie hat die gleichen Einschränkungen für die Haupttabelle wie KEINE AKTION
  4. 4. Wählen Sie „Nein“, um die Richtlinie zu löschen. Wenn bei dieser Strategie die Primärtabelle gelöscht oder der Primärschlüssel geändert wird, wird der Fremdschlüssel in der untergeordneten Tabelle auf Null gesetzt. Es ist zu beachten, dass, wenn der Fremdschlüssel der untergeordneten Tabelle der Primärschlüssel ist oder auf ungleich null gesetzt ist, das Löschen der Haupttabelle und das Ändern des Primärschlüssels gleichbedeutend mit keiner Aktion sind.

2. Viele-zu-viele

Erstellen Sie die Lehrertabelle:

Tabelle „Lehrer“ erstellen (
		ID int Primärschlüssel auto_increment,
		Name varchar(20) ,
		Geschlecht char(5),
		Betreff varchar(20)
		);

Erstellen Sie die Studententabelle:

Tabelle „Studenten“ erstellen (
	id int Primärschlüssel, 
	Name varchar(20),
	Alter int	
);

Die dritte ist die Assoziationstabelle:

Tabelle Lehrer_Schüler erstellen(
   Ich würde int,
	t_id int,
	s_id int,
	Primärschlüssel (t_id, s_id)
  Einschränkung teacher_id_fk Fremdschlüssel(t_id) verweist auf students(id),
  beschränkt student_id_fk Fremdschlüssel (s_id) Referenzen Lehrer(id)
);

Tabellenoperation Viele-zu-Viele

Erstellen Sie die Lehrertabelle:

Erstellen Sie die Studententabelle:

Die dritte Tabelle:


3. Eins-zu-eins

(1) Im Allgemeinen müssen Sie nur eine Tabelle entwerfen. (2) Sie können zwei Tabellen entwerfen.

Methode 1: Erstellen Sie in der zweiten Tabelle ein Feld als Fremdschlüssel (auf eindeutig gesetzt), das dem Primärschlüssel in der ersten Tabelle entspricht.
Methode 2: Verwenden Sie den Primärschlüssel in der zweiten Tabelle direkt als Fremdschlüssel, entsprechend dem Primärschlüssel der ersten Tabelle.

Zwei Tabellen: Einzigartigkeit ist sehr wichtig

Tabelle Benutzer erstellen(
ID int Primärschlüssel auto_increment,
Name varchar(20),
Alter int
);
Tischkarte erstellen(
ID int Primärschlüssel auto_increment,
num varchar(20) ungleich null,
Adresse varchar(100) nicht null,
Benutzer-ID int eindeutig,
Einschränkung user_card_fk Fremdschlüssel (Benutzer-ID) verweist auf Benutzer(-ID)
);

Oben finden Sie die ausführliche Erklärung und Integration der MySQL-Datenintegrität, die vom Herausgeber eingeführt wurde. Ich hoffe, dass sie für alle hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • MySQL Detaillierte Analyse vom Löschen der Datenbank bis zum Weglaufen_Fortgeschritten (I) - Datenintegrität
  • MySQL- und PHP-Grundlagen und -Anwendungen - Datenintegrität

<<:  Erfahren Sie, wie Sie mit Webpack TypeScript-Code verpacken und kompilieren

>>:  Führen Sie die Schritte zum Einrichten automatischer Updates in CentOS 8 aus

Artikel empfehlen

Detaillierte Erklärung der JavaScript-Array-Deduplizierung

Inhaltsverzeichnis 1. Array-Deduplizierung 2. Ded...

JavaScript realisiert den Drag-Effekt der Modalbox

Hier ist ein Fall des Ziehens einer modalen Box. ...

Detaillierte Erklärung der CSS-Stil-Kaskadierungsregeln

Der Syntaxstil der CSS-Stilregel ist die Grundein...

Verwenden Sie in JS nicht mehr überall Operatoren für absolute Gleichheit.

Inhaltsverzeichnis Überblick 1. Test auf Nullwert...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.24

In diesem Artikel finden Sie das Installations-Tu...

So packen Sie das Projekt per Idee in Docker

Viele Freunde wollten schon immer wissen, wie man...

26 häufig vergessene CSS-Tipps

Dies ist eine Sammlung häufig verwendeter, aber l...

Eine kurze Analyse der LRU-verknüpften Liste von MySQL

1. Beschreiben Sie kurz die traditionelle LRU-ver...

So installieren Sie Nginx und konfigurieren mehrere Domänennamen

Nginx-Installation CentOS 6.x yum verfügt standar...