Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik

Schlüssel


Notizen:

Als Schlüsselkandidaten werden alle Attribute bezeichnet, die die Eigenschaft der eindeutigen Tupelidentifizierung besitzen.
Den Begriff des Schlüssels unterteilen wir weiter in 3 Gruppen:
Primärschlüssel
Sekundärschlüssel
Fremdschlüssel
Ein Primärschlüssel ist die Tabellenspalte (oder eine Kombination aus mehreren), deren Aufgabe die Identifizierung der Datensätze der Tabelle ist, d.h. der Primärschlüssel muss in seiner Domänenausprägung eindeutig sein. Für die Auswahl des Primärschlüssels wird meist der Schlüsselkandidat mit der kleinsten Länge gewählt, da sich die Länge des Primärschlüssels auf die Geschwindigkeit der Operationen in einer Datenbank auswirkt. Sinnvolle Primärschlüssel sind z.B. Artikel- oder Kundennummern, aber keine Personennamen. Reicht ein Attribut nicht aus ein Tupel einer Relation eindeutig zu identifizieren (dann ist es aber auch kein Schlüsselkandidat), muss eine Kombination aus mehreren Attributen herangezogen werden, um die Eindeutigkeit eines jeden Tupels zu gewährleisten. Solche Schlüssel werden zusammengesetzte Primärschlüssel genannt. In den meisten Implementierungen darf kein Element eines zusammengesetzten Primärschlüssels NULLable sein, im Gegensatz zu anderen Schlüsselkandidaten.
Beispiel Kundentabelle: KNr Familienname Vorname KNr = Primärschlüssel 1 Meier Waltraud 2 Huber Sepp
Ein Fremdschlüssel ist ein(e) Feld(kombination), welche(s) in einer anderen Tabelle als Schlüsselkandidat definiert ist. Die Wertemenge dieses Fremdschlüssels ist demnach immer von den Werten des entsprechenden Schlüsselkandidaten in der anderen Tabelle abhängig.
Beispiel Rechnungstabelle KNr RNr Gesamtbetrag KNr & RNr = Primärschlüssel, 1 1 2000 KNr = Fremdschlüssel 1 2 3000 2 1 4000
Achtung! Der Fremdschlüssel ist also eigentliich gar kein Schlüssel, außer, es handelt sich um eine 1:1-Beziehung. In diesem Falle ist der Fremdschlüssel ja selbst eindeutig und somit Schlüsselkandidat.
Ein Sekundärschlüssel ist ein in einer Tabelle verwendeter Teil eines Schlüssels, der auf eine andere Tabelle verweist, wo er Primärschlüssel ist. Im Klartext: Ein Sekundärschlüssel ist ein Fremdschlüssel, der selbst zu einem Schlüssel gehört. Im Beispiel oben ist KNr also auch Sekundärschlüssel.
Anm.: der Autor selbst kann mit dem Begriff des Sekundärschlüssels rein gar nichts anfangen.
Tipp: Gibt es keine vernünftigen Schlüsselkandidaten, so hilft man sich mit einem künstlichen Schlüssel (z.B. Personalnummer, Sozialversicherungsnummer oder eine vom Datenbanksystem automatisch vergebene, fortlaufende Nummer. Dieser Mechanismus wird von praktisch allen Datenbanksystemen zur Verfügung gestellt: „Autowert“, „Sequenz“, „Identitätsspalte“,..)
Tipp: Sehen Sie für jede Tabelle einen Primärschlüssel vor, auch wenn das DBMS das nicht erzwingt