Heim >Datenbank >MySQL-Tutorial >Unterschied zwischen Primärschlüssel und Fremdschlüssel im DBMS

Unterschied zwischen Primärschlüssel und Fremdschlüssel im DBMS

青灯夜游
青灯夜游Original
2019-01-24 16:31:004841Durchsuche

Schlüssel sind ein wichtiger Bestandteil eines DBMS. Sie werden verwendet, um Beziehungen zwischen Tabellen im Schema zu identifizieren und herzustellen. Der folgende Artikel stellt Ihnen die beiden sehr wichtigen Schlüssel von DBMS vor, nämlich Primärschlüssel und Fremdschlüssel. Ich hoffe, er wird Ihnen hilfreich sein.

Unterschied zwischen Primärschlüssel und Fremdschlüssel im DBMS

Primärschlüssel im DBMS

Primärschlüssel definiert ein Tupel in einer Beziehung eindeutig. Dabei kann es sich um ein einzelnes Attribut in einer Beziehung oder um eine Reihe von Attributen in einer Beziehung handeln. Der Wert eines Primärschlüsselattributs sollte sich nicht oder nur selten ändern. Da es sich um den Prinzipal handelt, soll er jeden Datensatz in der Datenbank identifizieren; Änderungen am Wert eines Attributs des Primärschlüssels führen zu Verwirrung. [Empfohlenes Video-Tutorial: MySQL-Tutorial]

Jede Beziehung kann nur einen Primärschlüssel haben. Primärschlüssel sind standardmäßig Cluster-indiziert, was bedeutet, dass alle Tupel in der Tabelle basierend auf dem Wert des Primärschlüsselattributs sortiert werden. Primärschlüsseleinschränkungen können für temporäre Tabellen definiert werden. Während der Abfrageausführung erstellte Zwischentabellen werden als temporäre Tabellen bezeichnet.

Fremdschlüssel im DBMS

Fremdschlüssel ist ein Schlüssel, der sich auf den Primärschlüssel einer anderen Beziehung bezieht, wenn die Beziehung R1 in ihren Attributen hat other der Primärschlüssel der Relation R2 ist, wird das Attribut als Fremdschlüssel der Relation R1 bezeichnet. Die Beziehung R1, die den Fremdschlüssel enthält, wird als Referenzbeziehung bezeichnet, da sie sich auf den Primärschlüssel der Beziehung R2 bezieht, und die Beziehung R2 wird als Referenzbeziehung bezeichnet.

Im Gegensatz zum Primärschlüssel kann der Fremdschlüssel NULL-Werte akzeptieren, da er die Aufgabe des Datensatzes in der Beziehung nicht explizit identifiziert. Ebenso akzeptiert der Fremdschlüssel auch doppelte Werte.

Eine Beziehung kann mehrere Fremdschlüssel haben, da sie verschiedene Attribute haben kann, die in verschiedenen Beziehungen Primärschlüssel sind. Für temporäre Tabellen können keine Fremdschlüsseleinschränkungen definiert werden, und Fremdschlüssel sind keine Clustered-Index-Eigenschaften.

Der Hauptunterschied zwischen Primärschlüssel und Fremdschlüssel

Im Wesentlichen unterschiedlich

A Primärschlüssel ist ein ausgewählter Kandidatenschlüssel, der ein Tupel in einer Beziehung eindeutig definiert. Ein Fremdschlüssel in einer Tabelle verweist auf den Primärschlüssel einer anderen Tabelle.

2. NULL-Wert

Der Primärschlüsselwert kann niemals NULL sein;

3. Doppelte Werte

Es gibt keine zwei Tupel in der Primärschlüsselbeziehung, die doppelte Werte für das Primärschlüsselattribut tragen. Tupel in Fremdschlüsseln können doppelte Werte für Fremdschlüsselattribute enthalten.

4. Bereich

Beziehung kann nur einen Primärschlüssel haben. In einer Beziehung können mehrere Fremdschlüssel vorhanden sein.

5. Temporäre Tabelle

Primärschlüssel Sie können Primärschlüsseleinschränkungen für die temporäre Tabelle definieren. Fremdschlüssel Einschränkungen für Fremdschlüssel können nicht für temporäre Tabellen definiert werden.

6. Clustered-Index

Standardmäßig ist der Primärschlüssel ein Clustered-Index. Fremdschlüssel können Indizes nicht automatisch gruppieren, dies muss manuell erfolgen.

7. Einfügen

Im Primärschlüssel können wir einen Wert in das Primärschlüsselattribut einfügen, auch wenn der verweisende Fremdschlüssel den Wert nicht enthält Spalte.

In einem Fremdschlüssel kann ein Wert nicht in den Fremdschlüssel eingefügt werden, wenn der Wert nicht in der referenzierten Primärschlüsselspalte vorhanden ist.

8. Löschen

Bevor Sie den Primärschlüsselwert löschen, stellen Sie bitte sicher, dass der Wert noch nicht in der referenzierten Fremdschlüsselspalte der Referenztabelle vorhanden ist. Wir können einen Wert aus einer Fremdschlüsselspalte löschen, ohne uns Gedanken darüber machen zu müssen, ob der Wert in der referenzierenden Primärschlüsselspalte der referenzierenden Beziehung vorhanden ist.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonUnterschied zwischen Primärschlüssel und Fremdschlüssel im DBMS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist MySQL Workbench?Nächster Artikel:Was ist MySQL Workbench?