Schlüssel in SQL (MySQL) (Schlüssel in SQL (MySQL)), Lektion, Seite 723131
https://www.purl.org/stefan_ram/pub/schluessel_sql_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Primärschlüssel und Fremdschlüssel in SQL (MySQL)

Schlüssel

Eindeutigkeit

Jede Kombination von Spalten, deren Werte eine Zeile einer Tabelle immer eindeutig  kennzeichnet, wird Schlüssel  genannt.

Die Anforderung der Eindeutigkeit hat dabei die folgende Bedeutung:

Es darf nie zwei verschiedene  Zeilen mit dem gleichen  Schlüssel geben.

Es reicht nicht, daß ein Schlüssel in einer Tabelle momentan  eindeutig ist, vielmehr muß es aufgrund der Herkunft und der Bedeutung der verschiedene Spalten vorhersehbar sein, daß der Schlüssel auch bei allen späteren Änderungen an den Inhalten der Tabelle eindeutig sein wird.

Zusammengesetzte Schlüssel

Ein Schlüssel muß nicht unbedingt eine bestimmte einzelne Spalte sein, es kann sich auch um ein Kombination mehrerer Spalten handeln; man spricht dann von einem zusammengesetzten Schlüssel.

Beispielsweise ist eine Rechnungsnummer  möglicherweise erst zusammen mit einer Jahreszahl  ein Schlüssel für eine Rechnung  (falls die Rechnungsnummern am Anfang eines jeden Jahres immer wieder bei 0 beginnen.)

Primärschlüssel

Wenn es in einer Tabelle mehrere mögliche Schlüssel gibt, dann kann einer davon willkürlich als der Schlüssel ausgewählt werden, welcher normalerweise bei dieser Tabelle zur eindeutigen Kennzeichnung (Auswahl) einer bestimmten Zeile dienen soll. Dieser Schlüssel wird Primärschlüssel  genannt.

In diesem Kurs geben wir der Spalte mit dem Primärschlüssel oft den Namen der Tabelle. Außerdem geben wir die Primärschlüsselspalte oft als die erste  Spalte einer Darstellung einer Tabelle wieder. In anderen Quellen werden auch feste Namen, wie »Id« oder »ID« („Identifikation“) für die Primärschlüsselspalte verwendet.

Eine Spalte, die denselben Wert in mehreren Zeilen enthält oder enthalten könnte, ist nicht als Schlüsselspalte geeignet, weil mit ihr eine Zeile nicht eindeutig identifizert werden kann.

Beispiel

Tabelle mit einer Nachschlagetabelle
Person (Tabelle)

Person Vorname Nachname Ort
Primaerschluessel

1 Emma Schneider 3 ------------.
|
2 Finn Weber 2 --------. |
| |
3 Charlotte Wagner 2 --------. |
| |
| |
| |
Ort (Nachschlagetabelle) | |
| |
Ort Name | |
Primaerschluessel | |
| |
1 Hamburg | |
| |
2 Stuttgart <-----------------------' |
|
3 Berlin <---------------------------'

4 Braunschweig

Oben ist beispielsweise die Spalte »Person« der Primärschlüssel der Tabelle »Person« und die Spalte »Ort« der Primärschlüssel der Tabelle »Ort«.

Eigene künstliche numerische Primärschlüssel

Die Verwendung von Eigenschaften einer Entität oder von Schlüsseln, die von anderen Personen oder von anderen Datenbanken stammen, kann zur Problemen führen, da man es nicht selber sicherstellen kann, daß sie immer eindeutig ist. Selbst die ISBN oder die bundesweite Steuernummer wurde schon oft mehrfach vergeben!

Deswegen ist es am besten einen eigenen künstlichen numerischen Primärschlüssel  zu verwenden.

eigen der Schlüssel wird von der Datenbank, in der er verwendet wird, selber erstellt (festgelegt)

künstlich der Schlüssel wird eine Entität willkürlich zugeordnet, er hat keine Bedeutung und dient nur der eindeutigen Kennzeichnung; der Schlüssel wurde in der Datenbank speziell für diesen Entitätstyp zusätzlich erzeugt, er stellt keine Eigenschaft dar, welche die Entität unabhängig von der Datenbank besitzt

numerisch der Schlüssel ist eine positive ganze Zahl (1, 2, 3 und so weiter), die Primärschlüssel einer Tabelle dürfen  auch Lücken enthalten (wie: „1, 2, 4, 5“ ohne „3“)

Die oben dargestellten Tabellen verwenden beide einen künstlichen numerischen Primärschlüssel.

Fremdschlüssel

Ein sich durch eine mögliche Gleichheit auf einen Schlüssel einer Tabelle beziehende Wert wird Fremdschlüssel  genannt.

Oben ist beispielsweise die Spalte »Ort« der Tabelle »Person« ein Fremdschlüssel, welcher sich auf die Tabelle »Ort« bezieht.

Eine Möglichkeit zur Hervorhebung eines Fremdschlüssels ist es, diesem den Namen der Tabelle zu geben, auf welcher er sich bezieht (hier »Ort«).

Durch die genannten Regeln zur Benennung wird es erleichtert, sich Spaltennamen zu merken, da diese teilweise aus dem Namen von Tabellen abgeleitet werden können. Die hier vorgestellten Regeln sind aber nicht alle allgemein üblich, sondern nur eine von mehreren Möglichkeiten.

Trotz der Bezeichnung „Fremdschlüssel“ ist ein Fremdschlüssel kein  Schlüssel! Deswegen muß er in seiner Tabelle auch nicht  eindeutig sein.

Da ein Fremdschlüssel kein  Schlüssel ist, verwenden wir hier auch die alternative Bezeichnung Referenz  statt „Fremdschlüssel“.

Begriffe *

Was in dieser Lektion als „Schlüssel“ bezeichnet wird, wird sonst oft „Superschlüssel“ genannt.

Primärschlüssel als Domänen *

Ein Primärschlüssel einer Tabelle gehört immer zu einer eigenen Domäne, denn es ist nicht sinnvoll, die Primärschlüssel zweier verschiedener Tabellen auf Gleichheit  zu vergleichen.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723131 stefan_ram:723131 Schlüssel in SQL (MySQL) Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723131, slrprddef723131, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/schluessel_sql_de