У меня есть некоторая путаница в отношении ключа-кандидата, первичного ключа, минимального суперключа.
По определению:
Первичный ключ: только 1 атрибут, поэтому он должен быть минимальным суперключом, а также ключом-кандидатом (поскольку его минимальный суперключ)
Первый вывод: если ключ является первичным ключом, то он также является ключом-кандидатом и минимальным суперключом.
Следующий пункт я думаю, что это правда, но я не уверен. Может ли кто-нибудь подтвердить со мной вместе?
Если это минимальный суперключ, это не значит, что это первичный ключ. Но это означает, что это ключ-кандидат.
Если это ключ-кандидат, он не обязательно должен быть минимальным ключом, а также не обязательно должен быть первичным ключом.
Вывод:
первичный ключ: только 1 значение, может идентифицировать всю строку. Это также ключ-кандидат и минимальный
минимальный суперключ: 1 значение или комбинация полей могут идентифицировать целые строки, поэтому это ключ-кандидат, но не обязательно первичный. Но если вынимает какое-то одно поле, то это уже не ключ
Ключ-кандидат: 1 значение или комбинация полей могут идентифицировать целые строки, но не обязательно должны быть минимальными или первичными.