Основен ключ срещу Уникален ключ
Колона или набор от колони, които могат да се използват за идентифициране или достъп до ред или набор от редове в база данни, се наричат ключ. Уникален ключ е ключ, който може еднозначно да идентифицира ред в таблица в контекста на релационни бази данни. Уникален ключ се състои от една колона или набор от колони. Основен ключ е и комбинация от колони в таблица, които уникално идентифицират ред. Но той се счита за специален случай на уникалния ключ.
Какво е уникален ключ?
Както бе споменато по-рано, уникален ключ е една колона или набор от колони, които могат еднозначно да идентифицират ред в таблица. Така че уникалният ключ е ограничен така, че няма две стойности от него да са равни. Едно важно свойство е, че уникалните ключове не налагат ограничението NOT NULL. Тъй като NULL представлява липсата на стойност, ако два реда имат NULL в колона, това не означава, че стойностите са равни. Колоната, определена като уникален ключ, позволява само една NULL стойност в тази колона. Тогава това може да се използва за идентифициране на този конкретен ред по уникален начин. Например в таблица, която съдържа информация за студента, идентификационният номер на студента може да бъде определен като уникален ключ. Тъй като никой от двама студенти не може да има един и същ идентификационен номер, той еднозначно идентифицира един ученик. Така колоната с идентификатор на студент удовлетворява всички свойства на уникален ключ. В зависимост от дизайна на база данни, таблицата може да има повече от един уникален ключ.
Какво е първичен ключ?
Първичният ключ също е колона или комбинация от колони, която еднозначно определя ред в таблица на релационна база данни. Таблицата може да съдържа най-много един първичен ключ. Първичният ключ налага неявното ограничение NOT NULL. И така, колона, която е дефинирана като първичен ключ, не може да има стойности NULL в нея. Първичният ключ може да бъде нормален атрибут в таблицата, който гарантирано е уникален като социалноосигурителен номер или може да бъде уникална стойност, генерирана от системата за управление на базата данни, като глобално уникален идентификатор (GUID) в Microsoft SQL Server. Първичните ключове се дефинират чрез PRIMARY KEY ограничение в ANSI SQL Standard. Първичният ключ може да бъде определен и при създаването на таблицата. SQL позволява първичният ключ да се състои от една или повече колони и всяка колона, която е включена в първичния ключ, е имплицитно дефинирана като НЕ Е НУЛНА. Но някои системи за управление на базата данни изискват да се правят изрично колоните на първичния ключ НЕ НУЛЯРНО.
Разлика между първичен ключ и уникален ключ
Въпреки че и първичният, и уникалният ключ са една или повече колони, които могат еднозначно да идентифицират ред в таблица, те имат някои важни разлики. Най-важното е, че таблицата може да има само един първичен ключ, докато може да има повече от един уникален ключ. Първичният ключ може да се разглежда като специален случай на уникалния ключ. Друга разлика е, че първичните ключове имат неявно ограничение NOT NULL, докато уникалният ключ няма това ограничение. Следователно, уникалните ключови колони могат или не могат да съдържат NULL стойности, но колоните с първичен ключ не могат да съдържат NULL стойности.