Schlüssel

Aus FLBK-Wiki
Version vom 26. November 2025, 10:59 Uhr von Flbkwikiadmin (Diskussion | Beiträge) (Primärschlüssel)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Ein Schlüssel dient in einer relationalen Datenbank dazu, die Datensätze einer Datenbanktabelle eindeutig zu identifizieren. Ein Schlüssel ist eine Gruppe von Spalten, die so ausgewählt wird, dass jede Tabellenzeile über den Werten dieser Spaltengruppe eine einmalige Wertekombination hat.

Superschlüssel

Bestimmen einige Attribute einer Relation eindeutig die Werte aller Attribute der Relation, so spricht man von einem Superschlüssel. Das bedeutet, dass jedes Tupel dieser Relation eindeutig durch die Werte dieser Attribute bestimmt ist.

Beispiel: Relation Mitarbeiter {Nachname, Vorname, Geburtsdatum, PLZ, Straße, Umsatz, Dienstjahre}

Im Extremfall verwendet man alle Attribute der Relation, um ein Tupel zu bestimmen. Zum Beispiel gilt: Nachname, Vorname, Geburtsdatum, PLZ, Straße, Umsatz → Dienstjahre. Dies wäre ein legitimer Superschlüssel. Allerdings kann man aus dem Superschlüssel noch Attribute weglassen, um ein Tupel eindeutig zu bestimmen, was zu einem Schlüsselkandidaten führt.

Schlüsselkandidat

Ein Schlüsselkandidat ist ein minimaler Superschlüssel. Das bedeutet, dass keine echte Teilmenge der Attribute dieses Schlüssels vollständig die Werte aller anderen Attribute der Relation bestimmt. Unter allen Schlüsselkandidaten einer Relation wird ein Primärschlüssel ausgewählt.

Beispiel: Die Attribute Nachname, Vorname, Geburtsdatum, PLZ könnten ausreichen, um einen Datensatz eindeutig zu identifizieren. Wenn kein Attribut mehr weglassen werden kann und die Attributmenge somit minimal ist, handelt es sich um einen Schlüsselkandidaten. Eine Relation kann mehrere Schlüsselkandidaten haben.

Primärschlüssel

Ein Primärschlüssel ist in einer relationalen Datenbank ein Schlüssel zur eindeutigen Identifizierung eines Datensatzes in einer Datenbanktabelle.

Definition und Eigenschaften

Der Primärschlüssel (engl. primary key) wird aus der Menge der Schlüsselkandidaten einer Tabelle ausgewählt und muss folgende Eigenschaften erfüllen:

  • Eindeutigkeit: Jeder Wert des Primärschlüssels darf in der Tabelle nur einmal vorkommen
  • Nicht-NULL: Der Primärschlüssel darf keinen NULL-Wert enthalten
  • Minimalität: Der Primärschlüssel soll aus möglichst wenigen Attributen bestehen
  • Stabilität: Die Werte des Primärschlüssels sollten sich während der Lebensdauer des Datensatzes nicht ändern

Arten von Primärschlüsseln

Natürlicher Schlüssel

Ein natürlicher Schlüssel besteht aus Attributen, die bereits in den Geschäftsdaten vorhanden sind (z.B. Personalnummer, ISBN-Nummer).

Künstlicher Schlüssel

Ein künstlicher Schlüssel wird speziell für die Datenbank erzeugt und hat keine natürliche Bedeutung in den Geschäftsdaten (z.B. automatisch generierte IDs).

Bedeutung

Primärschlüssel sind fundamental für:

Beispiel

In einer Tabelle "Mitarbeiter" könnte der Primärschlüssel so definiert werden:

CREATE TABLE `mydb`.`Mitarbeiter` (
    `idMitarbeiter` INT NOT NULL ,
    `Vorname` VARCHAR(45) NULL ,
    `Nachname` VARCHAR(45) NULL ,
    `FKSalon` INT NOT NULL ,
    PRIMARY KEY (`idMitarbeiter`) 
);

Fremdschlüssel

Ein Fremdschlüssel ist ein Attribut oder eine Attributkombination einer Relation, welches auf einen Primärschlüssel (bzw. Schlüsselkandidaten) einer anderen oder der gleichen Relation verweist. Er dient als Verweis zwischen zwei Relationen und zeigt an, welche Tupel der Relationen inhaltlich miteinander in Verbindung stehen.

Künstlicher Schlüssel

Ein künstlicher Schlüssel ist ein Datenbankschlüssel, der nicht aus den Attributen in der Tabelle abgeleitet wird. Künstliche Schlüssel werden automatisch gebildet (z. B. als fortlaufende Nummer) und häufig als Primärschlüssel verwendet.

Vorteile

  • Vereinfachte Referenz auf ein Datenelement
  • Nur ein einzelnes Feld muss als Fremdschlüssel verwaltet werden
  • Der Wert bleibt bei Änderungen des Datenobjektes unverändert
  • Keine Änderung des Fremdschlüssels notwendig
  • Vermeidet Probleme mit natürlich Schlüsseln, die ihre Eindeutigkeit verlieren können

Praxisbeispiel

In der Praxis ist es oft nicht klar, welche Felder einen sprechenden Schlüssel bilden. Sobald es z.B. einen Kunden mit gleichem Vornamen, Nachnamen und Geburtstag gibt, müssen zusätzliche Felder (wie z.B. die PLZ) hinzugefügt werden, was künstliche Schlüssel attraktiv macht.