Разница между первичным и кандидатским ключом

Автор: Laura McKinney
Дата создания: 1 Апрель 2021
Дата обновления: 3 Июль 2024
Anonim
Типы ключей в базе данных
Видео: Типы ключей в базе данных

Содержание


Ключи - это атрибут или набор атрибутов, которые используются для доступа к кортежам из таблицы, или они также используются для построения отношений между двумя таблицами. В этой статье мы собираемся обсудить первичный и кандидатный ключи и различия между ними. Первичный ключ и ключ-кандидат однозначно идентифицируют кортеж в отношении или таблице. Но самое важное, что их отличает, это то, что может быть только один основной ключ в отношении. Тем не менее, может быть более одного ключ-кандидат в отношении.

Есть еще несколько различий между Первичным и Кандидатным ключом, которые я расскажу с помощью сравнительной таблицы, показанной ниже.

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

Сравнительная таблица

Основа для сравненияОсновной ключКлюч-кандидат
основнойВ любом отношении может быть только один первичный ключ.В отношении может быть более одного ключа-кандидата.
ЗНАЧЕНИЕ NULLНи один атрибут первичного ключа не может содержать значение NULL.Атрибут ключа-кандидата может иметь значение NULL.
УказыватьНеобязательно указывать первичный ключ для любого отношения.Не может быть отношения без указанного ключа-кандидата.
Характерная чертаПервичный ключ описывает наиболее важный атрибут для отношения.Ключи-кандидаты представляют кандидатов, которые могут претендовать на Первичный ключ.
НаоборотПервичный ключ - это ключ-кандидат.Но это не обязательно, что каждый ключ-кандидат может быть первичным ключом.


Определение первичного ключа

Основной ключ является атрибутом или набором атрибутов, которые будут уникально идентифицировать каждый кортеж в отношении. Там может быть только один первичный ключ для каждого отношения. Необходимо позаботиться о том, чтобы первичный ключ никогда содержать ЗНАЧЕНИЕ NULL значение, и оно должно иметь уникальный значение для каждого кортежа в отношении. Значения атрибута (ов) первичного ключа должны быть статическийто есть значение атрибута никогда не должно изменяться или редко изменяться.

Один из Ключи-кандидаты получает право стать первичным ключом. правила что ключ-кандидат должен соответствовать первичным, если значение ключа никогда не должно быть ЗНАЧЕНИЕ NULL и это должно быть уникальный для всех кортежей.

Если отношение содержит атрибут, который является первичным ключом некоторого другого отношения, то этот атрибут называется внешний ключ.


Рекомендуется выяснить первичный ключ отношения, прежде чем вводить другие атрибуты отношения, так как первичный ключ уникально идентифицирует каждый кортеж. Лучше выбрать один атрибут или небольшое количество атрибутов в качестве первичного ключа, что облегчает обработку отношений.

Теперь давайте посмотрим пример первичного ключа.

Студент {ID, Имя, Фамилия, Возраст, Адрес}

Здесь мы сначала выясним ключи-кандидаты. Я разобрался два ключи-кандидаты {Я БЫ} а также {Имя Фамилия} поскольку они будут уникально идентифицировать каждого студента в отношениях Студента. Теперь здесь я выберу Я БЫ в качестве моего основного ключа, потому что иногда может случиться так, что два студента могут иметь одинаковые имена и фамилии, поэтому будет легко отследить студента с его Я БЫ.

Определение ключа кандидата

ключ-кандидат является атрибутом или набором атрибутов, которые однозначно определяют кортеж в отношении. Там быть больше, чем один ключ-кандидат в отношении. Эти ключи-кандидаты являются кандидатами, которые могут претендовать на первичный ключ.

Хотя каждый ключ-кандидат может стать первичным ключом, в качестве первичного ключа может быть выбран только один. Правила, которым ключ-кандидат должен стать первичным ключом, - это значение атрибута ключа, которое никогда не может быть ЗНАЧЕНИЕ NULL в любом домене ключа он должен быть уникальный а также статический.

Если все ключи-кандидаты соответствуют первичному ключу, то опытный администратор базы данных Необходимо принять решение, чтобы выяснить первичный ключ. Не может быть отношения без ключа-кандидата.

Давайте разберем ключ кандидата с примером. Если мы добавим еще некоторые атрибуты в студенческие отношения, я обсуждал выше.

Студент {ID, Имя, Фамилия, Возраст, Адрес, DOB, Фамилия}

Здесь я могу понять два ключи-кандидаты, которые {Я БЫ}, {Имя, Фамилия, DOB}, Таким образом, вы можете понять, что ключи-кандидаты однозначно идентифицируют кортеж в отношении.

  1. Основной момент, который отличает первичный ключ от ключа-кандидата, заключается в том, что для любой связи в схеме может быть только один первичный ключ. Однако может быть несколько ключей-кандидатов для одного отношения.
  2. Атрибут в первичном ключе никогда не может содержать значение NULL, так как основная функция первичного ключа заключается в уникальной идентификации записи в отношении. Даже первичный ключ может использоваться в качестве внешнего ключа в другом отношении, и, следовательно, он не должен быть NULL, чтобы ссылочное отношение могло найти кортежи в ссылочном отношении. Ключ-кандидат может иметь значение NULL, если не указано ограничение атрибута, а не NULL.
  3. Необязательно указывать первичный ключ, но не может быть отношения без ключей-кандидатов.
  4. Первичный ключ описывает уникальный и наиболее важный атрибут отношения, тогда как ключи-кандидаты предоставляют кандидатов, среди которых можно выбрать один из них в качестве первичного ключа.
  5. Каждый первичный ключ является ключом-кандидатом, но, наоборот, не соответствует действительности.

Заключение:

Для отношения необязательно указывать первичный ключ. С другой стороны, если вы объявляете отношение, в этом отношении должны присутствовать ключи-кандидаты, чтобы построить хорошее отношение.