Heim >Datenbank >MySQL-Tutorial >Unterschied zwischen Primärschlüssel und Fremdschlüssel im DBMS
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.
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!