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