Schlüssel: Unterschied zwischen den Versionen
Markierung: Manuelle Zurücksetzung |
|||
| Zeile 16: | Zeile 16: | ||
== Primärschlüssel == | == Primärschlüssel == | ||
[[Datei:Schlüssel-SchlüsselInTabellen.png|mini]] | [[Datei:Schlüssel-SchlüsselInTabellen.png|mini]] | ||
Ein '''Primärschlüssel''' ist in einer [[Relationale Datenbank|relationalen Datenbank]] ein [[Schlüssel]] zur eindeutigen Identifizierung eines Datensatzes in einer [[Datenbanktabelle]]. | |||
* | |||
* | === Definition und Eigenschaften === | ||
* | [[Datei:Datenbanktabelle.jpg|mini]] | ||
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: | |||
* Gewährleistung der [[Datenintegrität]] | |||
* Aufbau von [[Beziehung (Datenbank)|Beziehungen]] zwischen Tabellen über [[Fremdschlüssel]] | |||
* Erstellung von [[Datenbankindex|Indizes]] für performante Datenabfragen | |||
* Vermeidung von Datenduplikaten | |||
=== Beispiel === | |||
In einer Tabelle "Mitarbeiter" könnte der Primärschlüssel so definiert werden: | |||
<syntaxhighlight lang="sql"> | |||
CREATE TABLE `mydb`.`Mitarbeiter` ( | |||
`idMitarbeiter` INT NOT NULL , | |||
`Vorname` VARCHAR(45) NULL , | |||
`Nachname` VARCHAR(45) NULL , | |||
`FKSalon` INT NOT NULL , | |||
PRIMARY KEY (`idMitarbeiter`) | |||
); | |||
</syntaxhighlight> | |||
== Fremdschlüssel == | == Fremdschlüssel == | ||
Aktuelle Version vom 26. November 2025, 10:59 Uhr
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:
- Gewährleistung der Datenintegrität
- Aufbau von Beziehungen zwischen Tabellen über Fremdschlüssel
- Erstellung von Indizes für performante Datenabfragen
- Vermeidung von Datenduplikaten
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.