Істотною відмінністю між первинним ключем і унікальним ключем є те, що первинний ключ не приймає значення NULL, тоді як значення NULL допускаються в межах унікальних ключових обмежень.
Діаграма порівняння
Основа для порівняння | Первинний ключ | Унікальний ключ |
---|---|---|
Основний | Він використовується як унікальний ідентифікатор для кожного рядка таблиці. | Він також однозначно визначає рядок, який не визначається як первинний ключ. |
Прийняття значення NULL | Первинний ключ не приймає значення NULL. | Унікальний прийме значення NULL. |
Кількість ключів, які можна визначити в таблиці | Тільки один первинний ключ | Більше одного |
Індекс | Створює кластерний індекс | Створює некластерний індекс |
Визначення первинного ключа
Колонка може бути викликана як первинний ключ її таблиці, якщо вона однозначно ідентифікує кожен кортеж (рядок) у цій таблиці. Він приводить до обмеження цілісності таблиці. В таблиці дозволено лише один первинний ключ. Первинний ключ не приймає повторювані та NULL значення. Первинний ключ вибирається з обережністю, коли зміни можуть відбуватися рідко, означає, що первинний ключ в таблиці змінюється дуже рідко.
Давайте зрозуміємо поняття первинного ключа за допомогою таблиці. Тут ми створюємо таблицю з іменем Student, яка має такі атрибути, як Roll_number, Name, Batch, Phone_number, Citizen_ID.
На первинний ключ можна посилатися зовнішнім ключем. У таблиці створюється унікальний кластерний індекс . У кластерному індексі рядки даних сортуються і зберігаються в таблиці або представленнях на основі його ключових значень. У таблиці може бути тільки один кластерний індекс, причиною цього є те, що рядки даних у таблиці можуть бути відсортовані лише в одному порядку.
Визначення унікального ключа
Як і первинний ключ, унікальні ключові обмеження також ідентифікують окремий кортеж однозначно у відношенні. Але між ними є певні відмінності. Таблиця може мати більше одного унікального ключа. Унікальні ключові обмеження можуть приймати тільки одне значення NULL для стовпця.
Давайте зрозуміємо це з аналогічним прикладом, де ми мали таблицю Student з атрибутами Roll_number, Name, Batch, Phone_number та Citizen_ID. Атрибут Roll number присвоюється первинному ключу.
Унікальні обмеження також посилаються на зовнішній ключ. Його можна використовувати, коли хтось хоче застосувати обмеження на стовпець і групу стовпців, які не є первинним ключем. На відміну від первинного ключа, він генерує некластерний індекс . Некластерні індекси мають окрему структуру з рядків даних. Кожна запис ключ-значення в ній вказує на рядок даних, що містить значення ключа, отже, вона використовує покажчики.
Ключові відмінності між первинним ключем і унікальним ключем
- Коли атрибут оголошений як первинний ключ, він не буде приймати значення NULL. З іншого боку, коли атрибут оголошений Unique, він може прийняти одне значення NULL.
- Таблиця може мати тільки первинний ключ, тоді як на таблиці можуть бути декілька унікальних обмежень.
- Кластерний індекс автоматично створюється, коли визначається первинний ключ. На відміну від цього, унікальний ключ генерує некластерний індекс.
Висновок
Первинний ключ і унікальний ключ служать призначенню унікального ідентифікатора для рядків таблиці з унікальними значеннями в стовпці або групі стовпців. Ці ключові обмеження значно диференційовані, коли кожна таблиця може мати не більше одного первинного ключа, тоді як таблиця може мати кілька унікальних ключів, які не є первинними.