Fremd-und Primärschlüssel Unterschiede (Visuell Erklärt)

Veröffentlicht in: Articles | 0

in Diesem Artikel lernen Sie den Unterschied zwischen einem Primärschlüssel und einem Fremdschlüssel. In diesem Artikel erfahren Sie auch, warum diese beiden Schlüssel wichtig sind, wenn es um die Pflege einer relationalen Datenbankstruktur geht.

Alle Beispiele für diese Lektion basieren auf Microsoft SQL Server Management Studio und der AdventureWorks2012-Datenbank. Sie können mit diesen kostenlosen Tools mit meinem Handbuch Erste Schritte mit SQL Server beginnen.

Was ist der Unterschied zwischen einem Primärschlüssel und einem Fremdschlüssel?,

Bevor wir uns mit dem Unterschied befassen können, untersuchen wir zunächst Primär-und Fremdschlüsselmerkmale. Beginnen wir mit dem Erlernen von Primärschlüsseln.

Primärschlüssel

Damit sich eine Tabelle als relationale Tabelle qualifizieren kann, muss sie über einen Primärschlüssel verfügen.

Der Primärschlüssel besteht aus einer oder mehreren Spalten, deren Daten verwendet werden, um jede Zeile in der Tabelle eindeutig zu identifizieren. Sie können sich sie als Adresse vorstellen. Wenn die Zeilen in einer Tabelle Postfächer wären, wäre der Primärschlüssel die Auflistung der Straßenadressen.,

Wenn ein Primärschlüssel aus mehreren Spalten besteht, werden die Daten aus jeder Spalte verwendet, um zu bestimmen, ob eine Zeile eindeutig ist.

Um ein Primärschlüssel zu sein, müssen mehrere Bedingungen wahr sein. Zunächst müssen, wie bereits erwähnt, die Spalten eindeutig sein. Zur Verdeutlichung beziehen wir uns auf die Daten innerhalb der Zeilen, nicht auf die Spaltennamen selbst. Außerdem kann kein Wert in den Spalten leer oder NULL sein.

Beim Definieren einer Tabelle geben Sie den Primärschlüssel an. Eine Tabelle hat nur einen Primärschlüssel und ihre Definition ist obligatorisch.

Der Primärschlüssel für jede Tabelle wird in einem Index gespeichert., Der index wird verwendet, um die Durchsetzung der Einzigartigkeit Anforderung. Es macht es auch für Fremdschlüsselwerte einfach, auf entsprechende Primärschlüsselwerte zurückzugreifen, wie wir im folgenden Abschnitt erfahren werden.

Fremdschlüssel

Ein Fremdschlüssel ist ein Satz von einer oder mehreren Spalten in einer Tabelle, die auf den Primärschlüssel in einer anderen Tabelle verweist. Es gibt keine speziellen Code -, Konfigurationen-oder Tabellendefinitionen, die Sie platzieren müssen, um offiziell einen Fremdschlüssel zu „benennen“.

Schauen Sie sich im folgenden Diagramm die SalesOrderHeader-Tabelle an. Die Spalte SalesOrderHeader.,CurrencyRateID ist ein Fremdschlüssel, da er mit dem CurrencyRate verwandt ist.CurrencyRateID. Diese Spalte CurrencyRate.CurrencyRateID ist der Primärschlüssel der Tabelle CurrencyRate.

Beispiel für Fremdschlüssel

Fremdschlüssel als Teil von Primaries

Sehen Sie sich das folgende Diagramm an. Welche Spalte ist der Fremdschlüssel?

Fremdschlüsselwert, der Teil von PK

Wenn Sie sagten, es handele sich um PersonPhone.,BusinessEntityID dann sind Sie richtig. Der Grund, warum es sich um einen Fremdschlüssel handelt, ist, dass er sich auf einen Primärschlüssel, eine Person, bezieht.BusinessEntityID, auf dem anderen Tisch.

Zufällig, PersonPhone.BusinessEntityID ist nicht nur ein Fremdschlüssel, sondern auch Teil des Primärschlüssels von PersonPhone. Der Primärschlüssel der PersonPhone-Tabelle ist die Kombination aus BusinessEntityID, Telefonnummer und PhoneNumberTypeID.

Ich stimme zu, das ist verwirrend, aber es ist erlaubt und keine schlechte Praxis.

Im Gegensatz zu Primärschlüsseln können Fremdschlüssel doppelte Werte enthalten. Es ist auch in Ordnung, dass sie Nullwerte enthalten.,

Indizes werden nicht automatisch für Fremdschlüssel erstellt; Als DBA können Sie sie jedoch definieren.

Eine Tabelle darf mehr als einen Fremdschlüssel enthalten. Können Sie in der PersonPhone-Tabelle den anderen Fremdschlüssel finden (siehe Antwort am Ende des Artikels)?

Primär-und Fremdschlüssel im Objekt-Explorer finden

Wenn Sie SSMS verwenden, finden Sie alle möglichen hilfreichen Informationen im Objekt-Explorer. Sie müssen nicht tief graben, um die Primärschlüssel zu finden. Wenn Sie die Spalten einer Tabelle anzeigen, aber auf den Ordner „Spalten“ klicken, haben die Primärschlüsselspalten Goldschlüssel daneben.,

Primär-und Fremdschlüssel im Objekt-Explorer finden

Wenn einer der Fremdschlüssel in Fremdschlüsseleinschränkungen definiert ist, die wir im folgenden Abschnitt erfahren, haben diese Spalten FK nach ihnen. Diese sind im obigen Diagramm grün eingekreist.

Fremdschlüsseleinschränkungen

Mit einigen Datenbankverwaltungssystemen wie SQL Server können Sie Fremdschlüsseleinschränkungen einrichten. Diese helfen, referenzielle Integrität zu erzwingen., In ihrer einfachsten Form hindert Sie eine Fremdschlüsseleinschränkung daran, Werte einzugeben, die nicht im Primärschlüssel der zugehörigen Tabelle enthalten sind.

Mit dem ersten Diagramm als Beispiel können Sie den SalesOrderHeader nicht eingeben.CurrencyRateID wenn es nicht bereits in der CurrencyRate-Tabelle vorhanden ist.

Diese Einschränkungen treten auf verschiedene Arten in Kraft:

  1. Sie hindern Sie daran, den Fremdschlüsselwert in einen Wert zu ändern, der nicht als Wert im Primärschlüssel der zugehörigen Tabelle vorhanden ist.
  2. Sie hindern Sie daran, eine Zeile aus der Primärschlüsseltabelle zu löschen. Dies hindert Sie daran, verwaiste Datensätze zu erstellen., Verwaiste Datensätze werden als „Kinderdatensätze ohne Eltern“ beschrieben.“
  3. Sie hindern Sie daran, einen Fremdschlüsselwert hinzuzufügen, der im Primärschlüssel nicht vorhanden ist.

Zusammenfassend erzwingen die Einschränkungen die Beziehung zwischen Primär-und Fremdschlüsseltabellen.

Vergleich von Primärschlüsseln mit Fremdschlüsseln

Zusammenfassend ist hier ein Vergleich von Primär-zu Fremdschlüsseln

Antwort auf die Frage: Früher haben wir Sie gebeten, den anderen Fremdschlüssel in der PersonPhone-Tabelle zu identifizieren. Die richtige Antwort ist PhoneNumberTypeID.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.