Was sind Superschlüssel (Datenbanken)?

2 Antworten

Das Thema kann sehr komplex werden, besonders, weil es einige Datenbankmanagementsysteme gibt und die Definitionen abweichen können. Ich mache es jetzt vereinfacht und nicht so abstrakt, dass es wieder für alles gilt, weil du dir das ja auch gewünscht hast:

"Superschlüssel" ist ein Oberbegriff, unter den Schlüsselkandidaten fallen. Zu dieser Kategorie gehören wiederum Primärschlüssel. Der letzte Begriff wird dir im Alltag am meisten begegnen und ist am relevantesten.

Ein Superschlüssel besteht aus einem oder mehreren Attributen und ermöglicht die Identifikation eines jeden Datentupels (einer Zeile). Diese Eigenschaften treffen also auch auf die beiden Unterbegriffe zu. Ein Schlüsselkandidat ist somit ein Superschlüssel. Er hat aber zusätzlich folgende Eigenschaft: Er ist minimal, d.h. beim Weglassen eines einzelnen Attributs eines zusammengesetzten Attributs ist die Eindeutigkeit nicht mehr gegeben. Einfacher gesagt: Ein Schlüsselkandidat nutz wirklich nur die notwendigen Daten. Alles, was du weglassen kannst, musst du weglassen. Ansonsten ist es ein Superschlüssel, aber kein Schlüsselkandidat.

Wenn ich z.B. aus den Attributen ID, Name, Vorname und Alter wähle welches davon gehören zum Superschlüssel und welche davon zum Schlüsselkandidaten? Nur die ID?

Das kommt immer auf den Kontext an. Wenn du eine Tabelle "Attribute" hast und die AttributenID somit eindeutig ist, dann wäre die AttributenID ein Schlüsselkandidat, ja. AttributenID und Name wären aber keiner, denn du könntest den Namen ja weglassen. Der Schlüssel wäre also nicht minimal und damit nur ein Superschlüssel.

Quellenverweis: Ich habe mich hierbei auf S. 32 aus dem Folgenden Buch bezogen:
Datenbanken und SQL - Edwin Schicker - 5. Auflage - Springer Verlag
Link:
https://link.springer.com/content/pdf/10.1007/978-3-658-16129-3.pdf

Woher ich das weiß:Berufserfahrung – Softwareentwickler für Warehouse Logistics