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

Autor: Laura McKinney
Erstelldatum: 1 April 2021
Aktualisierungsdatum: 10 Kann 2024
Anonim
Unterschied zwischen Primärschlüssel und Fremdschlüssel in DBMS - Technologie
Unterschied zwischen Primärschlüssel und Fremdschlüssel in DBMS - Technologie

Inhalt


Schlüssel sind der entscheidende Teil des DBMS, mit dem sie zum Identifizieren und Herstellen einer Beziehung zwischen den Tabellen in einem Schema verwendet werden. Heute werden wir zwei sehr wichtige DBMS-Schlüssel diskutieren, nämlich Primärschlüssel und Fremdschlüssel, und wir werden auch den Unterschied zwischen Primärschlüssel und Fremdschlüssel diskutieren. Unterwegs möchte ich Ihnen sagen, dass der grundlegende Unterschied zwischen Primär- und Fremdschlüssel, bei dem es sich um einen Primärschlüssel handelt, einer der vom Datenbankdesigner ausgewählten Kandidatenschlüssel ist, wohingegen ein Fremdschlüssel ein Schlüssel ist, der auf den Primärschlüssel einer anderen Beziehung verweist.

Es gibt viele andere Unterschiede zwischen diesen beiden, lassen Sie uns diese Unterschiede mit Hilfe der unten gezeigten Vergleichstabelle identifizieren.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle

Grundlage für den VergleichPrimärschlüsselUnbekannter Schlüssel
BasicPrimärschlüssel ist ein ausgewählter Kandidatenschlüssel, der ein Tupel in einer Beziehung eindeutig definiert.Der Fremdschlüssel in einer Tabelle bezieht sich auf den Primärschlüssel einer anderen Tabelle.
NULLDer Primärschlüsselwert kann niemals NULL sein.Fremdschlüssel akzeptiert NULL-Wert.
DuplikatKeine zwei Tupel in einer Relation enthalten doppelte Werte für ein Primärschlüsselattribut.Tupel können doppelte Werte für ein Fremdschlüsselattribut enthalten.
ReichweiteEs kann nur einen Primärschlüssel einer Beziehung geben.Eine Relation kann mehrere Fremdschlüssel enthalten.
Temporäre TabelleIn den temporären Tabellen kann eine Primärschlüsselbeschränkung definiert werden.Für die temporären Tabellen kann keine Fremdschlüsseleinschränkung definiert werden.
Clustered IndexStandardmäßig wird ein Primärschlüssel geclustert und indiziert.Fremdschlüssel werden nicht automatisch geclustert. es muss manuell gemacht werden.
EinfügungWir können einen Wert in ein Primärschlüsselattribut einfügen, auch wenn der referenzierende Fremdschlüssel diesen Wert nicht in seiner Spalte hat.Wir können keinen Wert in einen Fremdschlüssel einfügen, wenn dieser Wert nicht in der Spalte des referenzierten Primärschlüssels vorhanden ist.
StreichungStellen Sie vor dem Löschen eines Primärschlüsselwerts sicher, dass in der referenzierenden Fremdschlüsselspalte der referenzierenden Tabelle noch kein Wert vorhanden ist.Sie können einen Wert aus der Fremdschlüsselspalte löschen, ohne sich darum zu kümmern, ob dieser Wert in der referenzierten Primärschlüsselspalte der referenzierten Beziehung vorhanden ist.


Definition des Primärschlüssels

Ein Primärschlüssel einzigartig Definiert Tupel in einer Relation. Es kann sich um ein einzelnes Attribut in einer Beziehung oder um eine Reihe von Attributen in einer Beziehung handeln. Der Wert des Primärschlüsselattributs sollte nie oder selten geändert. Da es sich um einen Principal handelt, müssen Sie jeden Datensatz in einer Datenbank identifizieren. Eine Änderung eines Attributwerts des Primärschlüssels würde Verwirrung stiften.

Der Datenbankdesigner wählt eine der Kandidatenschlüssel als Primärschlüssel unter Berücksichtigung einiger Punkte. Die erste Überlegung ist, dass ein Primärschlüsselattributwert niemals enthalten kann NULL Wert. Wenn ein Primärschlüsselattributwert NULL enthält, bedeutet dies, dass wir diesen Datensatz in der Tabelle nicht identifizieren können. Außerdem wird die Integritätsbedingung der Entität verletzt. Die zweite Überlegung ist, keine zwei Tupel in einer Tabelle kann das enthalten gleich Wert für ein Primärschlüsselattribut, da er die Eindeutigkeit der Tupel verletzen würde.


Es kann nur geben ein Primärschlüssel für jeden Beziehung. Der Primärschlüssel ist standardmäßig clusterindiziertDies bedeutet, dass alle Tupel in einer Tabelle basierend auf den Primärschlüsselattributwerten sortiert werden. Die Primärschlüsselbedingung kann für a definiert werden temporärer Tisch. Während der Ausführung einer Abfrage erstellte Zwischentabellen werden als temporäre Tabellen bezeichnet.

Während Löschen Wenn Sie ein Tupel aus einer Relation verwenden, müssen Sie darauf achten, dass der Primärschlüsselwert des gelöschten Tupels nicht noch in der Fremdschlüsselspalte der referenzierenden Relation vorhanden ist. Während die Einfügen hat keine Einschränkungen für einen Primärschlüssel.

Wenn der Primärschlüssel einer Tabelle in einer anderen Tabelle verwendet wird, wird er zum Fremdschlüssel für diese Tabelle. Fremdschlüsseleinschränkungen werden unten erläutert.

Definition von Fremdschlüssel

Wenn eine Beziehung R1hat unter seinen Attributen a primär Schlüssel einer anderen Beziehung R2, dann wird dieses Attribut aufgerufen Unbekannter Schlüssel für beziehung R1. Die Beziehung R1 mit dem Fremdschlüssel wird aufgerufen referenzierende Beziehung wie es sich auf den Primärschlüssel der Beziehung R2 und der Beziehung bezieht R2 wird genannt referenzierte Beziehung.
Im Gegensatz zum Primärschlüssel kann der Fremdschlüssel akzeptieren NULL Werte, weil es nicht die Aufgabe hat, einen Datensatz in einer Beziehung eindeutig zu identifizieren, da wir den Primärschlüssel dafür haben. In gleicher Weise akzeptiert auch der Fremdschlüssel doppelte Werte.

Eine Beziehung kann haben mehrere Fremdschlüssel, da sie unterschiedliche Attribute haben können, die Primärschlüssel in unterschiedlichen Beziehungen sind. Fremdschlüsselbedingung kann nicht auf dem definiert werden temporäre Tabellen, Noch Ein Fremdschlüssel ist ein clusterindiziert Attribut.

Während Einfügen Wenn Sie einen Wert in eine Fremdschlüsselspalte der referenzierenden Beziehung eingeben, stellen Sie sicher, dass der einfügende Wert in der Primärschlüsselspalte der referenzierten Beziehung vorhanden sein muss. Dabei gibt es keine Einschränkung Löschen ein Wert aus der Fremdschlüsselspalte.

  1. Ein Primärschlüssel ist eine Gruppe von Attributen / ein Kandidatenschlüssel, der einen Datensatz in einer Beziehung eindeutig identifiziert. Ein Fremdschlüssel in einer Tabelle verweist jedoch auf den Primärschlüssel einer anderen Tabelle.
  2. Keine Primärschlüsselattribute können NULL-Werte enthalten, wohingegen ein Fremdschlüsselattribut NULL-Werte akzeptieren kann.
  3. Ein Primärschlüssel sollte eindeutige Attributwerte haben, während ein Fremdschlüssel doppelte Attributwerte haben kann.
  4. Eine Relation kann mehrere Fremdschlüssel enthalten, aber eine Relation hat nur einen Primärschlüssel.
  5. Die Primärschlüsselbedingung kann auf die temporären Tabellen angewendet werden. Eine Fremdschlüsseleinschränkung kann jedoch nicht auf die temporären Tabellen angewendet werden.
  6. Ein Primärschlüssel ist standardmäßig geclustert, während ein Fremdschlüssel nicht automatisch geclustert wird, sondern manuell erstellt werden kann.
  7. Stellen Sie beim Einfügen eines Werts in eine Fremdschlüsselspalte sicher, dass der einfügende Attributwert in der referenzierten Primärschlüsselspalte vorhanden ist. Es gibt jedoch keine Einschränkung für das Einfügen in die Primärschlüsselspalte.
  8. Stellen Sie beim Löschen eines Werts aus der Primärschlüsselspalte sicher, dass der gelöschte Attributwert nicht in der referenzierenden Fremdschlüsselspalte vorhanden ist. Es gibt jedoch keine Einschränkung beim Löschen eines Werts aus einer Fremdschlüsselspalte.

Fazit:

Sowohl der Primärschlüssel als auch der Fremdschlüssel sind für ein Schema von wesentlicher Bedeutung. Ein Primärschlüssel definiert jedes Tupel in einer Relation eindeutig, während ein Fremdschlüssel verwendet wird, um eine Verbindung zwischen zwei Relationen herzustellen.