Schlüssel: Unterschied zwischen den Versionen

Die Seite wurde neu angelegt: „Ein '''Schlüssel''' dient in einer relationalen Datenbank dazu, die Tupel (Datensätze) einer Relation (Tabelle) 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 == mini Bestimmen einige…“
 
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein '''Schlüssel''' dient in einer [[Relationale Datenbank|relationalen Datenbank]] dazu, die [[Tupel]] (Datensätze) einer [[Relation (Datenbank)|Relation]] (Tabelle) 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.
Ein '''Schlüssel''' dient in einer [[Relationale Datenbank|relationalen Datenbank]] dazu, die [[Datensatz|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 ==
== Superschlüssel ==
Zeile 16: Zeile 16:
== Primärschlüssel ==
== Primärschlüssel ==
[[Datei:Schlüssel-SchlüsselInTabellen.png|mini]]
[[Datei:Schlüssel-SchlüsselInTabellen.png|mini]]
Um mitzuteilen, welchen der Schlüsselkandidaten man zur Identifikation der Tupel in einer Relation bevorzugt, wird aus allen Schlüsselkandidaten der '''Primärschlüssel''' ausgewählt. Der Primärschlüssel wird üblicherweise so ausgewählt, dass er:
Ein '''Primärschlüssel'''  ist in einer [[Relationale Datenbank|relationalen Datenbank]] ein [[Schlüssel]] zur eindeutigen Identifizierung eines Datensatzes in einer [[Datenbanktabelle]].
* möglichst klein ist (wenige Attribute umfasst)
 
* einen möglichst simplen Datentyp hat
=== Definition und Eigenschaften ===
* zeitlich stabil ist (seine Werte sollten sich während des gesamten Lebenszyklus der Tabelle nicht ändern)
[[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 ==