webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen Kandidatenschlüssel und Verbundschlüssel?

Ich lese über Kandidatenschlüssel und zusammengesetzte Schlüssel. Das habe ich erfahren

  • ein Kandidatenschlüssel kann als Primärschlüssel qualifiziert werden und kann eine einzelne Spalte oder eine Kombination von Spalten sein
  • und ein zusammengesetzter Schlüssel ist auch eine Kombination von Spalten. 

Für zusammengesetzten Schlüssel habe ich diesen Link verwiesen

Wie erstelle ich einen zusammengesetzten Schlüssel mit SQL Server Management Studio?

Wenn sowohl der Kandidatenschlüssel als auch der zusammengesetzte Schlüssel eine Kombination von Spalten sind, können sie als Primärschlüssel qualifiziert werden. Was ist dann der genaue Unterschied? Kannst du das bitte mit Beispielen erklären? 

17

Wie ich weiß, ist der Kandidatenschlüssel ein eindeutiger Schlüssel, der als Primärschlüssel verwendet werden kann. aber nicht unbedingt als eins verwendet.

Der zusammengesetzte Schlüssel ist ein Schlüssel aus zwei oder mehr Attributen, der die Zeile eindeutig identifiziert.

14
Headshota

Ein Schlüssel ist ein Satz von Spalten, mit dem jede Zeile in einer Tabelle eindeutig identifiziert werden kann.

Jeder Tisch hat mindestens einen Schlüssel. Nehmen wir an, wir haben jeden möglichen Schlüssel für die Tabelle identifiziert. Jeder dieser Schlüssel ist ein Kandidatenschlüssel.

Bei der Untersuchung jedes dieser Schlüssel darf der Schlüssel aus keiner Spalte (!), Einer oder mehr als einer Spalte bestehen, die zusammengenommen jede Zeile eindeutig identifizieren. Der Begriff zusammengesetzter Schlüssel bezieht sich insbesondere auf einen Schlüssel, der aus mehr als einer Spalte besteht.

In SQL wurde entschieden, dass ein Schlüssel ausgewählt und als "gleichwertiger" behandelt werden sollte als die anderen Schlüssel der Tabelle. Dieser Schlüssel wird als Primärschlüssel bezeichnet. Es können auch andere Schlüssel in der Tabelle deklariert werden, die normalerweise als eindeutige Konturen bezeichnet werden.

(!) In SQL dürfen Sie keinen Schlüssel ohne Spalten deklarieren - obwohl dies gelegentlich nützlich wäre (denken Sie an eine Tabelle, die immer nur eine einzige Zeile enthalten sollte, in der jede Spalte Konfigurationsinformationen enthält.)


Als Beispiel für eine Tabelle, die mehrere Schlüssel enthält, die alle zusammengesetzt sind. Stellen Sie sich ein Terminsystem vor, bei dem sich ein Kunde und ein Berater zu einem bestimmten Zeitpunkt in einem Raum treffen:

CREATE TABLE Appointments (
    ClientID int not null,
    CounsellorID int not null,
    RoomID int not null,
    AppointmentTime datetime not null
)

Die Kandidatenschlüssel für diese Tabelle sind {ClientID, AppointmentTime}, {CounsellorID, AppointmentTime} und {RoomID, AppointmentTime}. Jede dieser Kombinationen von Spalten kann verwendet werden, um eine Zeile in der Tabelle eindeutig zu identifizieren, und alle sind zusammengesetzte Schlüssel.

Welchen Typ wir als Primärschlüssel deklarieren, hängt (wahrscheinlich) von unserer eigenen Interpretation des Hauptfokus des Systems ab. Sind wir hauptsächlich mit der Raumnutzung oder mit Kunden oder Beratern beschäftigt? In jedem Fall wählen wir einen aus und erklären ihn zum Primärschlüssel. Wir werden hoffentlich auch die anderen Schlüssel als eindeutige Einschränkungen deklarieren.

Oder wir entscheiden uns für ein Surrogat und deklarieren eine AppointmentID-Spalte, wobei wir die in der Datenbank verfügbaren automatischen Nummerierungsfunktionen verwenden. Das könnte dann der (nicht zusammengesetzte) Primärschlüssel sein. Aber wir sollten noch die anderen Schlüssel für die Tabelle angeben.

15

Kandidatenschlüssel: Ein Kandidat für das Primärschlüsselfeld wird als Kandidatenschlüssel bezeichnet.

Zusammengesetzter Schlüssel: Das Erstellen mehrerer Primärschlüssel wird gemeinsam als zusammengesetzter Schlüssel bezeichnet.

Update: .__ Ein Kandidatenschlüssel ist ein eindeutiger Schlüssel, der als Primärschlüssel verwendet werden kann. Der zusammengesetzte Schlüssel ist ein Schlüssel aus zwei oder mehr Attributen, der die Zeile eindeutig identifiziert. Ein Schlüssel ist ein Satz von Spalten, mit dem jede Zeile in einer Tabelle eindeutig identifiziert werden kann.

6

KANDIDATENSCHLÜSSEL : - Der Kandidatenschlüssel ist ein eindeutiger Schlüssel und ist ein "Kandidat" als Primärschlüssel COMPOSITE KEY : - "Zusammensetzung" aus zwei oder mehr Spalten als Primärschlüssel, ist als zusammengesetzten Schlüssel betrachten.

3
KamalDeep

Ein Kandidatenschlüssel ist nur das: Eine Spalte oder Kombination von Spalten, die könnte als Primärschlüssel verwendet werden, dh ein Kandidat oder ein potenzieller Primärschlüssel. Ein zusammengesetzter Schlüssel besteht definitionsgemäß aus zwei oder mehr Spalten, die verwendet werden könnten eine Reihe identifizieren. Wenn Sie über zusammengesetzte Schlüssel sprechen, stellt sich meistens die Frage, ob der Primärschlüssel stattdessen einen Ersatzschlüssel haben soll. Gelegentlich können Sie hören, dass sich Leute auf einen zusammengesetzten Schlüssel beziehen, der kein Primärschlüssel ist (dh nicht für alle Zeilen eindeutig). In diesem Fall ist es (hoffentlich) nur eine Möglichkeit, sich auf einen Multi-Colmn-Join auf einem Nicht-Primärschlüssel zu beziehen Felder (statt Cross-Join und Filtern der Zeilen in der where-Klausel).

2
jmoreno