logo

Кандидат ключ в СУБД

А кандидат ключ е част от ключ, известен като Супер ключ ( разгледани в предишния раздел ), където супер ключът е супер наборът от всички онези атрибути, които могат уникално да идентифицират таблица.

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

c# дата и час

Какво е ключ за кандидат

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

Роля на кандидат ключ

Ролята на кандидат-ключа е да идентифицира уникално ред или колона на таблица. Освен това стойността на кандидат ключ не може да бъде Null. Описанието на кандидат ключ е „без излишни атрибути“ и е „минимално представяне на кортеж“, според експертите.

Как ключът кандидат е различен от първичния ключ

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

Пример за ключ на кандидат

Нека да разгледаме същия пример, взет при обсъждането на Super Key, за да разберем работата на кандидат ключ.

Имаме EMPLOYEE_DETAIL таблица, където имаме следните атрибути:

Emp_SSN: SSN номерът се съхранява в това поле.

актьор Ранбир Капур възраст

Emp_Id: Атрибут, който съхранява стойността на идентификационния номер на служителя.

низ към int java

Emp_name: Атрибут, който съхранява името на служителя, притежаващ посочения идентификатор на служител.

Emp_имейл: Атрибут, който съхранява имейл адреса на посочените служители.

The EMPLOYEE_DETAIL по-долу е дадена таблица, която ще ви помогне да разберете по-добре:

Кандидат ключ в СУБД

И така, от горната таблица получихме дадените по-долу супер ключове (обсъдени в предишния раздел):

Кандидат ключ в СУБД

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

Кандидат ключ в СУБД

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

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

От горните дискусии можем да имаме следните разлики:

charat java
Супер ключ Ключ на кандидата
Това е надмножеството на всички такива атрибути, които могат уникално да идентифицират таблицата. Това е подмножеството или частта от супер ключа.
Изобщо не е задължително всички супер ключове да са кандидат ключове. От друга страна, всички кандидат ключове са супер ключове.
Атрибутът на супер ключ може да бъде NULL, което означава, че стойностите му могат да бъдат NULL. Атрибут, съдържащ кандидат-ключ, никога не може да бъде NULL, което означава, че стойностите му не могат да бъдат NULL.
Всички супер ключове се образуваха заедно, за да донесат кандидат ключовете. По същия начин кандидат-ключовете се обединяват, за да създадат първични ключове.
Броят на образуваните супер ключове винаги се вижда повече. Тук кандидат ключовете са по-малко от супер ключовете.

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