Рекомендуем, 2021

Выбор редакции

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

Мы уже изучали различные типы ключей, используемых в базе данных и схеме, в предыдущих статьях, а именно: «Разница между первичным ключом и внешним ключом». В этой статье мы различаем первичный ключ и уникальный ключ. И первичный ключ, и уникальный ключ используются для уникальной идентификации кортежа и обеспечения уникальности в столбце или комбинации столбца.

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

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

Основа для сравненияОсновной ключУникальный ключ
основнойОн используется в качестве уникального идентификатора для каждой строки в таблице.Он также однозначно определяет строку, которая не определена как первичный ключ.
Принятие значения NULLПервичный ключ не будет принимать значения NULL.Unique будет принимать значение NULL.
Количество ключей, которые можно определить в таблицеТолько один первичный ключБольше одного
ИндексСоздает кластерный индексСоздает некластеризованный индекс

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

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

Давайте разберемся с понятием первичного ключа с помощью таблицы. Здесь мы создаем таблицу с именем «Таблица учеников», которая имеет такие атрибуты, как Roll_number, Name, Batch, Phone_number, Citizen_ID.

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

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

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

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

Давайте разберемся с этим в похожем примере, где у нас была таблица Student с атрибутами Roll_number, Name, Batch, Phone_number и Citizen_ID. Атрибут номера рулона назначается первичным ключом.

Здесь Citizen_ID может быть назначен с уникальными ограничениями, где каждая запись в столбце Citizen_ID должна быть уникальной, а не повторяться, потому что каждый гражданин страны должен иметь свой уникальный идентификационный номер. Но если студент мигрирует из другой страны, в этом случае он или она не будет иметь Citizen_ID, и запись может иметь значение NULL, поскольку один NULL допускается в ограничении уникальности.

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

Ключевые различия между первичным ключом и уникальным ключом

  1. Когда атрибут объявлен как первичный ключ, он не будет принимать значения NULL. С другой стороны, когда атрибут объявлен как Уникальный, он может принять одно значение NULL.
  2. Таблица может иметь только первичный ключ, тогда как для таблицы может быть несколько уникальных ограничений.
  3. Кластерный индекс автоматически создается при определении первичного ключа. В отличие от уникального ключа генерируется некластеризованный индекс.

Заключение

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

Top