2016-03-21 4 views
0

Hallo bin vor kurzem lernen über SQL und Schlüssel.Kandidat Schlüssel SQL

Ich frage mich, ob es eine Relationstabelle mit n Attributen gibt, wie viele mögliche Kandidatenschlüssel es geben würde?

Antwort

0

Jede Teilmenge der Attribute der Relationen kann ein Kandidatenschlüssel sein. So ist die Zahl der Anzahl der Teilmengen einer Menge von n Elementen gleich, dh 2 n

Herausgegeben

Die ursprüngliche Antwort war 2 n -1, aber es signifikante auch um den leeren (oder niladischen) Schlüssel zu haben. Ein Schlüssel dieser Art impliziert, dass die Beziehung nur ein Tupel aufweist. Danke an @ErwinSmout für die Klärung.

+0

Leider dürfen wir den leeren Satz NICHT ausschließen. SQL unterstützt keine leeren Schlüssel, aber das bedeutet lediglich, dass SQL nicht vollständig relational ist. Es kann sogar sein, dass einige SQL-Produkte tatsächlich leere (niladische) Schlüssel unterstützen. –

+0

für diese Frage wäre ein Kandidat Schlüssel auch die Anzahl der Super-Schlüssel? Ich dachte, dass ein Kandidat Schlüssel wäre nur eines der Attribute selbst, denn das ist eine minimale Anzahl von Schlüsseln erforderlich, um die Zeile zu identifizieren. (Oder wäre das eine Annahme?) – boredj

+0

@boredj, Wenn wir über die Anzahl der möglichen Kandidatenschlüssel sprechen, ist dies laut einem Kommentar gleich 2^n-1 oder 2^n. Wenn wir über die maximale Anzahl von Kandidatenschlüsseln sprechen, die gleichzeitig in derselben Tabelle vorhanden sein können, ist dies eine andere Frage. Im ersten Fall kann ein Kandidatenschlüssel eine beliebige Anzahl von Attributen haben. – Renzo

Verwandte Themen