Препоръчано, 2024

Избор На Редактора

Разлика между първичен ключ и уникален ключ

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

Основната разлика между първичен ключ и уникален ключ е, че първичен ключ не приема NULL стойности, докато NULL стойностите са позволени в рамките на уникални ключови ограничения.

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

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

Дефиниция на първичен ключ

Колоната може да бъде извикана като първичен ключ на неговата таблица, ако еднозначно идентифицира всеки кортеж (ред) в тази таблица. Той налага ограничения на целостта на таблицата. В таблицата е позволен само един първичен ключ. Първичният ключ не приема дублиращите се и NULL стойности. Първичният ключ се избира внимателно, когато промените могат да се появят рядко, което означава, че първият ключ в таблицата се променя много рядко.

Нека разберем понятието първичен ключ с помощта на таблица. Тук създаваме таблица, наречена като Student таблица, която има атрибути като Roll_number, Name, Batch, Phone_number, Citizen_ID.

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

Първичен ключ може да бъде посочен от външен ключ. Той създава уникален клъстерен индекс на таблицата. В клъстеризирания индекс редовете от данни се сортират и съхраняват в таблица или изгледи въз основа на нейните ключови стойности. В таблицата може да има само един клъстерен индекс, причината за това е, че редовете от данни в таблицата могат да бъдат сортирани само в една поръчка.

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

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

Нека да разберем това с подобен пример, където имахме студентска таблица с атрибути Roll_number, Name, Batch, Phone_number и Citizen_ID. Атрибутът Roll number се присвоява с основния ключ.

Тук Citizen_ID може да бъде присвоен с уникални ограничения, където всяко влизане в графата Citizen_ID трябва да бъде уникално, а не дублирано, защото всеки гражданин на дадена страна трябва да има своя уникален идентификационен номер. Но, ако студент мигрира от друга страна, в този случай той или тя няма да има Citizen_ID и вписването може да има стойност NULL, тъй като е разрешено едно NULL в уникалното ограничение.

Уникалните ограничения също се споменават от външния ключ. Може да се използва, когато някой иска да наложи ограничения върху колона и група от колони, която не е първичен ключ. За разлика от първичния ключ, той генерира некластерен индекс . Некластеризираните индекси имат различна структура от редовете с данни. Всеки запис ключ-стойност в него сочи към реда с данни, който съдържа стойността на ключа, затова използва указатели.

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

  1. Когато атрибут, деклариран като първичен ключ, не приема NULL стойности. От друга страна, когато атрибут декларира като Unique, той може да приеме една NULL стойност.
  2. Таблицата може да има само първичен ключ, докато в таблицата може да има множество уникални ограничения.
  3. Клъстерният индекс се създава автоматично, когато се дефинира първичен ключ. За разлика от това, уникалният ключ генерира некластерен индекс.

заключение

Първичният ключ и уникалният ключ служат за целта на уникален идентификатор за редовете на таблица с уникалните стойности в колона или група от колони. Тези ключови ограничения са значително диференцирани, където всяка таблица може да има най-много един първичен ключ, докато таблицата може да има няколко уникални ключа, които не са първични.

Top