Unterschied Primärschlüssel und Schlüsselattribut?

2 Antworten

Der Primärschlüssel kennzeichnet bei einer bestimmten Tabelle einen Datensatz (=Zeile) eindeutig.

"Schlüsselattribut" ist ein übergeordneter Begriff: Der Primärschlüssel in einer Tabelle ist ein Schlüsselattribut (eine Schlüssel-Spalte), aber es kann auch noch andere Tabellenspalten geben, die Schlüsselattribute darstellen, die jedoch keine Primärschlüssel sind; beispielsweise eine Spalte für einen Fremdschlüssel.

Z.B. hast Du folgende Tabelle:

angestellter (id, fk_vorgesetzter, angesteller_name, angestellter_vorname)

Hier wäre z.B. "id" vom Namen her typischerweise der Primärschlüssel, und "fk_vorgesetzter" wäre ein Fremdschlüssel ("fk" = Abk. "foreign key"), d.h. die dort stehende Nummer ist ein Verweis auf den Primärschlüssel einer anderen Tabelle ("vorgesetzter"). Damit wird die Beziehung zwischen Angestellten und ihren Vorgesetzten hergestellt.

Beides, "id" und "fk_vorgesetzter" sind Schlüsselattribute, aber nur "id" ist der Primärschlüssel. "id" darf in der ganzen Tabelle "angestellter" für jede Zeile nur genau einmal vorkommen, aber bei "fk_vorgesetzter" darf auf verschiedenen Zeilen der selbe Wert mehrfach vorkommen. Das macht auch Sinn, weil verschiedene Angestellte etwa den selben Vorgesetzten haben.

Ein Primärschlüssel identifiziert einen Datensatz eindeutig. Dieser kann aus einem oder mehreren Attributen der zugrunde liegenden Tabelle bestehen.

Ein Schlüsselattribut ist dann logischerweise ein Teil der Informationen, die einen Primärschlüssel eindeutig machen.