СУБД ключове: Кандидат, Супер, Първичен, Типове външни ключове с пример
Какво представляват ключовете в СУБД?
КЛЮЧОВЕ в СУБД е атрибут или набор от атрибути, който ви помага да идентифицирате ред (кортеж) в релация (таблица). Те ви позволяват да намерите връзката между две таблици. Ключовете ви помагат да идентифицирате уникално ред в таблица чрез комбинация от една или повече колони в тази таблица. Ключът също е полезен за намиране на уникален запис или ред от таблицата. Ключът на базата данни също е полезен за намиране на уникален запис или ред от таблицата.
Пример:
Идентификационен номер на служителя | малко име | фамилия |
---|---|---|
11 | Андрю | Джонсън |
22 | том | дърво |
33 | Alex | Здрав |
В дадения по-горе пример идентификаторът на служител е първичен ключ, тъй като уникално идентифицира запис на служител. В тази таблица никой друг служител не може да има същия идентификатор на служител.
Защо имаме нужда от ключ?
Ето някои причини за използването на sql ключ в СУБД системата.
- Ключовете ви помагат да идентифицирате всеки ред от данни в таблица. В приложение от реалния свят една таблица може да съдържа хиляди записи. Освен това записите могат да бъдат дублирани. Ключовете в RDBMS гарантират, че можете уникално да идентифицирате запис на таблица въпреки тези предизвикателства.
- Позволява ви да установите връзка между и да идентифицирате връзката между таблиците
- Помогнете ви да наложите идентичност и почтеност във връзката.
Типове ключове в СУБД (система за управление на бази данни)
Има основно осем различни типа ключове в СУБД и всеки ключ има своя различна функционалност:
- Супер ключ
- Първичен ключ
- Ключ на кандидата
- Алтернативен ключ
- Чужд ключ
- Съставен ключ
- Композитен ключ
- Сурогатен ключ
Нека разгледаме всеки от ключовете в СУБД с пример:
- Супер ключ – Супер ключът е група от единични или множество ключове, които идентифицират редове в таблица.
- Първичен ключ – е колона или група от колони в таблица, които уникално идентифицират всеки ред в тази таблица.
- Ключ на кандидата – е набор от атрибути, които уникално идентифицират кортежи в таблица. Ключът за кандидат е супер ключ без повтарящи се атрибути.
- Алтернативен ключ – е колона или група от колони в таблица, които уникално идентифицират всеки ред в тази таблица.
- Външен ключ – е колона, която създава връзка между две таблици. Целта на външните ключове е да поддържат целостта на данните и да позволяват навигация между два различни екземпляра на обект.
- Съставен ключ – има два или повече атрибута, които ви позволяват да разпознаете уникално конкретен запис. Възможно е всяка колона да не е уникална сама по себе си в базата данни.
- Композитен ключ – е комбинация от две или повече колони, които уникално идентифицират редове в таблица. Комбинацията от колони гарантира уникалност, но индивидуалната уникалност не е гарантирана.
- Сурогатен ключ – Изкуствен ключ, който има за цел да идентифицира уникално всеки запис, се нарича сурогатен ключ. Този тип ключове са уникални, защото се създават, когато нямате естествен първичен ключ.
Какво е Супер ключът?
Суперключът е група от единични или множество ключове, които идентифицират редове в таблица. Супер ключ може да има допълнителни атрибути, които не са необходими за уникална идентификация.
Пример:
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 |
Какво е ключ за кандидат?
КАНДИДАТ КЛЮЧ в SQL е набор от атрибути, които уникално идентифицират кортежи в таблица. Ключът за кандидат е супер ключ без повтарящи се атрибути. Първичният ключ трябва да бъде избран от кандидат ключовете. Всяка таблица трябва да има поне един кандидат ключ. Една таблица може да има множество кандидат-ключове, но само един първичен ключ.
Свойства на кандидат ключ:
- Трябва да съдържа уникални стойности
- Кандидат ключът в SQL може да има множество атрибути
- Не трябва да съдържа нулеви стойности
- Трябва да съдържа минимум полета, за да се гарантира уникалност
- Уникално идентифициране на всеки запис в таблица
Пример за ключ на кандидат: В дадената таблица Stud ID, Roll No и имейл са ключове на кандидати, които ни помагат да идентифицираме еднозначно записа на ученика в таблицата.
StudID | Рол № | Собствено име | фамилия | Имейл |
---|---|---|---|---|
1 | 11 | том | Цена | abc@gmail.com |
2 | 12 | Nick | Райт | xyz@gmail.com |
3 | 13 | Dana | Натан | mno@yahoo.com |
Какво е външният ключ?
ВЪНШЕН КЛЮЧ е колона, която създава връзка между две таблици. Целта на външните ключове е да поддържат целостта на данните и да позволяват навигация между два различни екземпляра на обект. Той действа като кръстосана препратка между две таблици, тъй като препраща към първичния ключ на друга таблица.
Пример:
DeptCode | DeptName |
---|---|
001 | Наука |
002 | английски |
005 | компютър |
ID на учителя | Fname | Lname |
---|---|---|
B002 | David | Warner |
B017 | Сара | Джоузеф |
B009 | микрофон | Брантън |
В този пример за ключ в dbms имаме две таблици, преподаване и отдел в училище. Няма начин обаче да се види коя работа за търсене в кой отдел.
В тази таблица, добавяйки външния ключ в Deptcode към името на учителя, можем да създадем връзка между двете таблици.
ID на учителя | DeptCode | Fname | Lname |
---|---|---|---|
B002 | 002 | David | Warner |
B017 | 002 | Сара | Джоузеф |
B009 | 001 | микрофон | Брантън |
Тази концепция е известна още като референтна Integrity.
Какво представлява ключът Compound?
СЪЕДИНЕН КЛЮЧ има два или повече атрибута, които ви позволяват да разпознаете уникално конкретен запис. Възможно е всяка колона да не е уникална сама по себе си в базата данни. Въпреки това, когато се комбинира с другата колона или колони, комбинацията от съставни ключове става уникална. Целта на съставния ключ в базата данни е да идентифицира уникално всеки запис в таблицата.
Пример:
Поръчка № | ID на продукт | Име на продукта | Количество |
---|---|---|---|
B005 | JAP102459 | мишка | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | LCD монитор | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Лазерен принтер | 3 |
В този пример OrderNo и ProductID не могат да бъдат първичен ключ, тъй като не идентифицира еднозначно запис. Може обаче да се използва съставен ключ от ID на поръчката и ID на продукта, тъй като уникално идентифицира всеки запис.
Какво представлява композитният ключ?
КОМПОЗИТЕН КЛЮЧ е комбинация от две или повече колони, които уникално идентифицират редове в таблица. Комбинацията от колони гарантира уникалност, въпреки че индивидуалната уникалност не е гарантирана. Следователно те се комбинират, за да идентифицират уникално записите в таблица.
Разликата между съставния и съставния ключ е, че всяка част от съставния ключ може да бъде външен ключ, но съставният ключ може или не може да бъде част от външния ключ.
Какво е сурогатен ключ?
ЗАМЕСТВАЩИ КЛЮЧОВЕ е Изкуствен ключ, който има за цел да идентифицира уникално всеки запис, се нарича сурогатен ключ. Този вид частичен ключ в dbms е уникален, защото се създава, когато нямате естествен първичен ключ. Те не придават никакво значение на данните в таблицата. Сурогатният ключ в СУБД обикновено е цяло число. Сурогатният ключ е стойност, генерирана точно преди записът да бъде вмъкнат в таблица.
Fname | Фамилно име | Начален час | Край |
---|---|---|---|
Ан | Ковач | 09:00 | 18:00 |
крик | Франсис | 08:00 | 17:00 |
Anna | Маклийн | 11:00 | 20:00 |
посочен | Уилям | 14:00 | 23:00 |
По-горе, даден пример, показва времената на смяна на различния служител. В този пример е необходим сурогатен ключ за еднозначно идентифициране на всеки служител.
Сурогатни ключове SQL са разрешени, когато
- Нито едно свойство няма параметъра на първичния ключ.
- В таблицата, когато първичният ключ е твърде голям или сложен.
Разлика между първичен ключ и външен ключ
Следва основната разлика между първичен ключ и външен ключ:
Първичен ключ | Чужд ключ |
---|---|
Помага ви да идентифицирате уникално запис в таблицата. | Това е поле в таблицата, което е първичен ключ на друга таблица. |
Първичният ключ никога не приема нулеви стойности. | Външен ключ може да приема множество нулеви стойности. |
Първичният ключ е клъстериран индекс и данните в таблицата на СУБД са физически организирани в последователността на клъстерирания индекс. | Външен ключ не може автоматично да създаде индекс, клъстериран или неклъстериран. Можете обаче ръчно да създадете индекс на външния ключ. |
Можете да имате единичен първичен ключ в таблица. | Можете да имате няколко външни ключове в таблица. |
Oбобщение
- Какво е ключ в СУБД: Ключът в СУБД е атрибут или набор от атрибути, който ви помага да идентифицирате ред (кортеж) в релация (таблица)
- Ключове RDBMS ви позволяват да установите връзка между и да идентифицирате връзката между таблиците
- Осем вида ключове в СУБД са супер, първичен, кандидат, алтернативен, чужд, сложен, съставен и сурогатен ключ.
- Супер ключът е група от единични или множество ключове, които идентифицират редове в таблица.
- Колона или група от колони в таблица, която ни помага да идентифицираме уникално всеки ред в тази таблица, се нарича първичен ключ
- Всички различни ключове в СУБД, които не са първичен ключ, се наричат алтернативен ключ
- Супер ключ без повтарящ се атрибут се нарича кандидат ключ
- Сложният ключ е ключ, който има много полета, които ви позволяват да разпознаете уникално конкретен запис
- Ключ, който има множество атрибути за уникално идентифициране на редове в таблица, се нарича съставен ключ
- Изкуствен ключ, който има за цел да идентифицира уникално всеки запис, се нарича сурогатен ключ
- Първичният ключ никога не приема нулеви стойности, докато външен ключ може да приема множество нулеви стойности.