Прежде чем обсуждать разницу между Первичным ключом и Уникальным ключом, важно определить, что является ключом, как он играет роль в бизнесе и как он реализован в SQL / Oracle и т. Д.
Согласно бизнес-перспективам:
Для организации или бизнеса существует так много физических объектов (таких как люди, ресурсы, машины и т. Д.) И виртуальных объектов (их задачи, транзакции, действия).
Как правило, бизнес должен записывать и обрабатывать информацию для этих бизнес-объектов.
Эти бизнес-объекты идентифицируются в рамках всего бизнес-домена с помощью ключа.
В соответствии с проспектом RDBMS:
Ключ (a.k.a Candidate Key), значение или набор значений, который однозначно идентифицирует сущность. Для Db-таблицы существует так много ключей, которые существуют и могут иметь право на Первичный ключ.
Таким образом, все ключи, первичный ключ, уникальный ключ и т. Д. Вместе называются ключом-кандидатом.
Для таблицы, выбранной администратором базы данных, ключ-кандидат называется первичным ключом, остальные ключи-кандидаты называются вторичными ключами.
Разница между первичным ключом и уникальным ключом
1. Поведение: Первичный ключ используется для идентификации строки (записи) в таблице, тогда как уникальный ключ предназначен для предотвращения дублирования значений в столбце.
2. Индексирование: По умолчанию Sql-механизм создает кластеризованный индекс по первичному ключу, если он не существует, и некластеризованный индекс по уникальному ключу.
3. Обнуляемость: Первичный ключ не содержит значений Null, тогда как Unique-key может.
4. Существование: Таблица может иметь не более одного первичного ключа, но может иметь несколько уникальных ключей.
5. Модифицируемость: Вы не можете изменять или удалять первичные значения, но значения уникального ключа могут.
Для получения дополнительной информации с примерами:
http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html