Ключ-кандидат - это столбец или комбинация столбцов. Или, вернее, набор из одного или нескольких столбцов. Или, вернее, набор столбцов.
Ключ-кандидат представляет собой набор столбцов, который однозначно идентифицирует строки и не содержит меньшего («правильного») подмножества столбцов, который однозначно идентифицирует строки.
Суперклас - это набор столбцов, который однозначно идентифицирует строки. Таким образом, ключ-кандидат - это супер-ключ, который не содержит более мелкого супер-ключа.
В SQL вы не можете объявить пустой ключ кандидата. Кроме того, UNIQUE NOT NULL и PRIMARY KEY (который с точки зрения ограничений просто означает UNIQUE NOT NULL) объявляют супер-клавиши, а не ключи как таковые. Если такой набор столбцов объявления не содержит меньший набор столбцов, объявленный как суперкнига, тогда суперклас, который он объявляет, является ключом кандидата.
Ваш вопрос первоначально сказал, что у вас есть отношение, в котором ключи-кандидаты являются «комбинацией ключей». Возможно, вы имели в виду что-то вроде: некоторые меньшие подмножества (столбцы) суперкласса - это ключ суперклина или кандидата.
Так что нет, ключ-кандидат не может содержать меньший ключ-кандидат. С другой стороны, в SQL вы можете иметь объявление UNIQUE/PK для меньшего подмножества столбцов другой декларации UNIQUE/PK. Но тогда последний не будет кандидатом.
Этот вопрос не соответствует теме, поскольку речь идет о теории реляционных баз данных, а не о практическом программировании. cs.stackexchange.com, вероятно, будет лучше спросить. – Barmar
Зачем закрывать этот вопрос. Есть вопросы, связанные с этим вопросом, которые задаются на этом форуме, например stackoverflow.com/questions/8337309/superkey-candidate-key-primary-key. –
Это было несколько лет назад, с тех пор правила ужесточились. – Barmar