Navigation überspringen

Schlüssel

Primärschlüssel

Die 3. Richtlinie zur Definition von Tabellen besagt, dass jeder Datensatz in einem Tupel (Zeile) eindeutig von allen anderen Tupeln verschieden ist. Aus diesem Grundsatz zu korrekten Relationen läßt sich feststellen, dass immer ein sogenannter Primärschlüssel (engl. primary key) existieren muss, der die Zeile eindeutig identifiziert.

Wie ist das zu interpretieren in folgender Tabelle?

Torsysysteme
Produkttyp Ausführungsart Bestand Preis
Schnelllauftor M2 2 8000
Schnelllauftor D313 1 6000
Sektionaltor T400 5 4500
Horizontalöffner D313 0 12000

Die einzelnen Tupel der Tabelle Torsysteme sind eindeutig. Jedoch erfüllt kein Attribut alleine die oben beschriebene Anforderung an einen Primärschlüssel. Nehmen wir jedoch die Attribute Produkttyp und Ausführungsart zusammen, so ist die Anforderung erfüllt. Der Primärschlüssel erstreckt sich also über zwei Attribute:

Primärschlüssel = ( Produkttyp, Ausführungsart )

ACHTUNG: Primärschlüssel müssen beim Anlegen einer Tabelle vom Anwender deklariert werden.

In der Praxis werden Primärschlüssel häufig als sogenannte ID den Attributen hinzugefügt. Dieses "Extraattribut" wird dann mit einem auto-inkrement ausgestattet, wodurch jede INSERT-Anfrage (ob erfolgreich oder nicht) an die Tabelle mit einem eindeutigen Wert belegt wird. Eine doppelte Wertvergabe ist ausgeschlossen.

Torsysysteme
SystemID Produkttyp Ausführungsart Bestand Preis
1 Schnelllauftor M2 2 8000
2 Schnelllauftor D313 1 6000
3 Sektionaltor T400 5 4500
4 Horizontalöffner D313 0 12000

 

 

Beispiel: Personendaten

Fazit

Was haben wir gewonnen durch Schlüsselverteilungen?

  1. Datensätze bleiben Semantisch in Beziehung. Eine Verknüpfung bzw. Referenz wird durch Fremdschlüsselverteilung erzeugt.
  2. Redundanz wird verringert (teilweise ganz vermieden): Änderungen an einer einzigen zentraler Stelle möglich, vgl. Bild oben.

Primärschlüssel (primarey key)

  1. Ein Primärschlüssel kennzeichnet einen Tupel eindeutig.
  2. Ein Primärschlüssel besteht aus mindestens einem Attribut
  3. Pro Relation gibt es nur einen Primärschlüssel

Fremdschlüssel (foreign key)

  1. Ein Fremdschlüssel besteht aus mindestens einem Attribut.
  2. Ein Fremdschlüssel innerhalb der Tabelle A beinhaltet den Primärschlüssel einer weiteren Tabelle B.
  3. Fremdschlüssel der Tabelle A müssen die selbe Syntax/Semantik der Bezugstabelle B haben.
    1. z.B. Tabelle A: SystemID (int: unsigned) ==> Tabelle B: SystemID (int: unsigned)
    2. Die Namensgleichheit der Fremdschlüssel zum Primärschlüssel der Ursprungtabelle ist nicht vorgeschrieben, vereinfacht die Lesbarkeit, Auffindbarkeit und Wartbarkeit der Datenbank aber ungemain.