Разница между первичным ключом, уникальным ключом и ключом-кандидатом - PullRequest
15 голосов
/ 01 сентября 2010

В чем разница между первичным ключом, уникальным ключом и ключом-кандидатом?

Ответы [ 7 ]

14 голосов
/ 12 декабря 2012

Super Key - это набор из одного или нескольких столбцов (т. Е. Атрибутов), который однозначно идентифицирует запись.

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

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

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

10 голосов
/ 01 сентября 2010

Ключ-кандидат - это минимальный (то есть нередуцируемый) ключ, уникальный ключ - плеоназм, а первичный ключ - устаревшая концепция, которая сохранилась со времен, когда люди думали, что один ключ может быть «более уникальным», чем любой издр.

4 голосов
/ 10 марта 2013

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

Первичный ключ - в конкретной таблице базы данных может быть несколько ключей-кандидатов, которые являются уникальными и могут использоваться для идентификации конкретного экземпляра в таблице, например, Регистрационный номер автомобиля, номер шасси, серийный номер двигателя и т. Д. ... но помните, что в качестве первичного ключа может использоваться только один ключ-кандидат. Разница между ключом-кандидатом и первичным ключом: - ) Ключи Primary и Candidate могут однозначно идентифицировать записи в таблице базы данных.

2) Ключи Primary и Candidate имеют ограничения UNIQUE и NOT NULL.

3) Ключи первичного ключа или ключа-кандидата могут быть либо одним столбцом, либо комбинацией нескольких столбцов в таблице.

3 голосов
/ 21 ноября 2011

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

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

Для дополнительных статей

3 голосов
/ 01 сентября 2010
2 голосов
/ 20 июня 2011

Составной ключ - это первичный ключ, который имеет более 1 столбца .Например, рассмотрим связь между многими студентами и курсами.Здесь нам понадобится еще одна таблица, скажем, Studentcourses.

В этой таблице studentcourses будут столбцы student_id и course_idЭто сформирует ваш составной ключ.

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

Уникальный ключ, как следует из названия, используется для однозначной идентификации значения в таблице.Например, Emp_id и т. Д. Каждый кандидатный ключ будет действовать как уникальный ключ.Уникальный ключ никогда не может иметь значение NULL.

1 голос
/ 21 июня 2018

Поскольку во всех ответах отсутствуют физические представления, а некоторые из них неполные.Так вот разница по графическому представлению

enter image description here


Объяснение

Супер Ключ

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

Пример : первичный ключ, уникальный ключ, альтернативный ключявляются подмножеством супер-ключей.

Ключ-кандидат

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

Пример : на приведенной выше диаграмме ID, RollNo и EnrollNo - ключи-кандидаты, поскольку все эти три поля могут работать как первичныеКлюч.

Первичный ключ

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

Альтернативный ключ

Альтернативный ключ - это ключ, который может работать как первичный ключ.По сути, это ключ-кандидат, который в настоящее время не является первичным ключом.

Пример : на приведенной выше диаграмме RollNo и EnrollNo становятся альтернативными ключами, когда мы определяем ID как первичный ключ.

Составной / составной ключ

Составной ключ - это комбинация нескольких полей / столбцов таблицы.Это может быть ключ-кандидат, первичный ключ.

уникальный ключ

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

Внешний ключ

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

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

source

...