Ключове за СУБД: Кандидат, Първичен, Супер и Външен тип
⚡ Умно обобщение
Ключовете в СУБД са атрибути, които уникално идентифицират ред в таблица и установяват връзки между таблиците. Осем типа ключове, от супер и първичен до външен и сурогатен, налагат идентичност и целостта в релационна база данни.

Какво представляват ключовете в СУБД?
Ключове в СУБД са атрибут или набор от атрибути, които ви помагат да идентифицирате ред (кортеж) в релация (таблица). Те ви позволяват да намерите връзката между две таблици. Ключовете ви помагат да идентифицирате еднозначно ред в таблица чрез комбинация от една или повече колони и са полезни и за намиране на уникален запис в таблицата.
Пример:
| Идентификационен номер на служителя | малко име | фамилия |
|---|---|---|
| 11 | Андрю | Джонсън |
| 22 | Том | дърво |
| 33 | Алекс | Здрав |
В горния пример, идентификационният номер на служителя е първичен ключ, защото той уникално идентифицира запис на служител. В тази таблица никой друг служител не може да има същия идентификационен номер на служител.
Защо ни е нужен ключ?
Ето някои причини за използването на ключ в СУБД:
- Ключовете ви помагат да идентифицирате всеки ред с данни в таблица. В реално приложение една таблица може да съдържа хиляди записи и записите могат да бъдат дублирани. Ключовете гарантират, че можете да идентифицирате уникално запис в таблица, въпреки тези предизвикателства.
- Те ви позволяват да установявате и идентифицирате връзки между таблиците.
- Те ви помагат да наложите идентичност и почтеност във връзката.
Видове ключове в СУБД
В СУБД има основно осем различни типа ключове, като всеки ключ има своя собствена функционалност:
- Супер ключ
- Първичен ключ
- Ключ на кандидата
- Алтернативен ключ
- Чужд ключ
- Съставен ключ
- Композитен ключ
- Сурогатен ключ
Таблицата по-долу обобщава всичките осем накратко, преди всеки от тях да бъде обяснен подробно.
| ключ | В един ред | Уникален? |
|---|---|---|
| Супер ключ | Всеки набор от атрибути, който идентифицира ред, разрешени са допълнителни атрибути | Да |
| Ключ на кандидата | Минимален суперключ, без излишен атрибут | Да |
| Първичен ключ | Избраният кандидат ключ, а не null | Да |
| Алтернативен ключ | Кандидат ключ, който не е избран за основен | Да |
| Чужд ключ | Препраща към първичен ключ в друга таблица | Не |
| Съставен ключ | Два или повече атрибута, всеки от които евентуално не е уникален | Комбиниран |
| Композитен ключ | Две или повече колони, комбинирани за уникалност | Комбиниран |
| Сурогатен ключ | Генериран изкуствен идентификатор | Да |
Какво е супер ключ?
Суперключът е група от единични или множество ключове, които идентифицират редове в таблица. Суперключът може да има допълнителни атрибути, които не са необходими за уникална идентификация.
Пример:
| EmpSSN | EmpNum | Empname |
|---|---|---|
| 9812345098 | AB05 | посочен |
| 9876512345 | AB06 | Рослин |
| 199937890 | AB07 | Джеймс |
В горния пример, EmpSSN и EmpNum са супер ключове.
Какво е първичен ключ?
ОСНОВЕН КЛЮЧ in СУБД е колона или група от колони в таблица, която уникално идентифицира всеки ред в тази таблица. Първичният ключ не може да бъде дубликат, което означава, че една и съща стойност не може да се появява повече от веднъж в таблицата. Таблицата не може да има повече от един първичен ключ.
Правила за дефиниране на първичен ключ
- Два реда не могат да имат една и съща стойност на първичния ключ.
- Всеки ред трябва да има стойност на първичен ключ.
- Полето за първичен ключ не може да бъде нула.
- Стойността в колона с първичен ключ никога не може да бъде модифицирана или актуализирана, ако някой външен ключ препраща към този първичен ключ.
Пример: В следния пример StudID е първичен ключ.
| StudID | Рол № | Име | фамилия | Имейл |
|---|---|---|---|---|
| 1 | 11 | Том | Цена | abc@gmail.com |
| 2 | 12 | Nick | Райт | xyz@gmail.com |
| 3 | 13 | Dana | Натан | mno@yahoo.com |
Какво е алтернативен ключ?
АЛТЕРНАТИВЕН КЛЮЧ е колона или група колони в таблица, която уникално идентифицира всеки ред. Таблицата може да има множество опции за първичен ключ, но само един може да бъде зададен като първичен ключ. Всички ключове, които не са първичен ключ, се наричат алтернативни ключове.
Пример: В тази таблица StudID, Roll No и Email са квалифицирани да станат първичен ключ. Но тъй като StudID е първичният ключ, Roll No и Email стават алтернативни ключове.
| StudID | Рол № | Име | фамилия | Имейл |
|---|---|---|---|---|
| 1 | 11 | Том | Цена | abc@gmail.com |
| 2 | 12 | Nick | Райт | xyz@gmail.com |
| 3 | 13 | Dana | Натан | mno@yahoo.com |
Какво е ключ за кандидат?
КАНДИДАТ КЛЮЧ е набор от атрибути, които уникално идентифицират кортежи в таблица. Кандидат ключ е супер ключ без повтарящи се атрибути. Първичният ключ трябва да бъде избран измежду кандидат ключовете. Всяка таблица трябва да има поне един кандидат ключ, а една таблица може да има множество кандидат ключове, но само един първичен ключ.
Свойства на кандидат-ключ:
- Трябва да съдържа уникални стойности.
- Кандидат ключ може да има множество атрибути.
- Не трябва да съдържа нулеви стойности.
- Трябва да съдържа минималните полета, необходими за осигуряване на уникалност.
- Той уникално идентифицира всеки запис в таблицата.
Пример: В таблицата по-долу, StudID, Roll No и Email са кандидат-ключове, които ни помагат да идентифицираме уникално студентски запис. Тяхната връзка със суперключовете и първичните ключове е често срещан начин за разбиране. функционална зависимост.
| StudID | Рол № | Име | фамилия | Имейл |
|---|---|---|---|---|
| 1 | 11 | Том | Цена | abc@gmail.com |
| 2 | 12 | Nick | Райт | xyz@gmail.com |
| 3 | 13 | Dana | Натан | mno@yahoo.com |

Какво е външен ключ?
ВЪНШЕН КЛЮЧ е колона, която създава връзка между две таблици. Целта на външния ключ е да поддържа целостта на данните и да позволява навигация между два различни екземпляра на даден обект. Той действа като кръстосана препратка между две таблици, тъй като препраща към първичния ключ на друга таблица.
Пример:
| катедраCode | DeptName |
|---|---|
| 001 | Наука |
| 002 | английски |
| 005 | компютър |
| ID на учителя | Fname | Lname |
|---|---|---|
| B002 | David | Warner |
| B017 | Сара | Джоузеф |
| B009 | Майк | Брантън |
В този пример имаме две таблици, „Учител“ и „Отдел“, в едно училище. В сегашния им вид няма начин да видим кой учител в кой отдел работи.
Чрез добавяне на външния ключ DeptCode към таблицата „Учител“, можем да създадем връзка между двете таблици.
| ID на учителя | катедраCode | Fname | Lname |
|---|---|---|---|
| B002 | 002 | David | Warner |
| B017 | 002 | Сара | Джоузеф |
| B009 | 001 | Майк | Брантън |
Тази концепция е известна още като референтна цялост.
Какво е сложен ключ?
СЪЕДИНЕН КЛЮЧ има два или повече атрибута, които ви позволяват да разпознаете уникално конкретен запис. Възможно е всяка колона да не е уникална сама по себе си в базата данни. Когато обаче се комбинират, колоните стават уникални. Целта на съставния ключ е да идентифицира уникално всеки запис в таблицата.
Пример:
| Поръчка № | Идентификация на продукта | Име на продукта | Количество |
|---|---|---|---|
| B005 | JAP102459 | мишка | 5 |
| B005 | DKT321573 | USB | 10 |
| B005 | OMG446789 | LCD монитор | 20 |
| B004 | DKT321573 | USB | 15 |
| B002 | OMG446789 | Лазерен принтер | 3 |
В този пример, OrderNo и ProductID не могат да бъдат първичен ключ, тъй като нито един от тях не идентифицира еднозначно запис. Съставен ключ от OrderNo и ProductID обаче идентифицира еднозначно всеки запис.
Какво е композитен ключ?
КОМПОЗИТЕН КЛЮЧ е комбинация от две или повече колони, които уникално идентифицират редове в таблица. Комбинацията от колони гарантира уникалност, въпреки че поотделно уникалността не е гарантирана. Следователно, те се комбинират, за да идентифицират уникално записите в таблица.
Разликата между съставен и композитен ключ е, че всяка част от съставен ключ може да бъде външен ключ, но съставният ключ може или не може да бъде част от външен ключ.
Какво е сурогатен ключ?
СУРОГАТЕН КЛЮЧ е изкуствен ключ, който има за цел да идентифицира уникално всеки запис. Този вид ключ е уникален, защото се създава, когато нямате естествен първичен ключ. Сурогатните ключове не придават значение на данните в таблицата и обикновено са цяло число, генерирано непосредствено преди вмъкването на записа.
| Fname | Фамилно име | Начален час | Край |
|---|---|---|---|
| Ан | Ковач | 09:00 | 18:00 |
| крик | Франсис | 08:00 | 17:00 |
| Anna | Маклийн | 11:00 | 20:00 |
| посочен | Уилям | 14:00 | 23:00 |
Горният пример показва времето на смените на различните служители. Тук е необходим сурогатен ключ, за да се идентифицира уникално всеки служител. Сурогатни ключове в SQL се използват, когато:
- Никое свойство няма параметъра на първичен ключ.
- Първичният ключ е твърде голям или сложен.
Разлика между първичен ключ и външен ключ
Следната е основната разлика между първичен ключ и външен ключ:
| Първичен ключ | Чужд ключ |
|---|---|
| Помага ви да идентифицирате еднозначно запис в таблицата. | Това е поле в таблицата, което е първичен ключ на друга таблица. |
| Първичният ключ никога не приема нулеви стойности. | Външен ключ може да приема множество нулеви стойности. |
| Първичният ключ е клъстерен индекс, а данните в таблицата са физически организирани в последователността на клъстерния индекс. | Външен ключ не може автоматично да създаде индекс, клъстерен или неклъстерен. Можете да създадете такъв ръчно. |
| Можете да имате само един първичен ключ в таблица. | Можете да имате няколко външни ключове в таблица. |
