Какво представляват ключовете в СУБД?
KEYS в DBMS е атрибут или набор от атрибути, който ви помага да идентифицирате ред (кортеж) в релация (таблица). Те ви позволяват да намерите връзката между две таблици. Клавишите ви помагат да идентифицирате уникално ред в таблица чрез комбинация от една или повече колони в тази таблица. Ключът е полезен и за намиране на уникален запис или ред от таблицата. Ключът към базата данни също е полезен за намиране на уникален запис или ред от таблицата.
Пример:
ИД на служител | Първо име | Фамилия |
11. | Андрю | Джонсън |
22. | Том | дърво |
33 | Алекс | Хейл |
В горепосочения пример идентификаторът на служител е първичен ключ, тъй като уникално идентифицира запис на служител. В тази таблица никой друг служител не може да има същия идентификационен номер на служител.
В този урок ще научите:
- Какво представляват ключовете?
- Защо ни трябва ключ?
- Различни ключове в системата за управление на база данни
- Какво е супер ключ?
- Какво е първичен ключ?
- Какво е алтернативен ключ?
- Какво е ключът на кандидата?
- Какво е външен ключ?
- Какво е Compound key?
- Какво е Composite key?
- Какво е сурогатен ключ?
- Разлика между първичен ключ и външен ключ
Защо ни трябва ключ?
Ето няколко причини за използването на sql ключ в системата на СУБД.
- Клавишите ви помагат да идентифицирате всеки ред данни в таблица. В реално приложение таблица може да съдържа хиляди записи. Освен това записите могат да бъдат дублирани. Ключовете гарантират, че можете да идентифицирате уникално запис на таблица въпреки тези предизвикателства.
- Позволява ви да установите връзка между и да идентифицирате връзката между таблици
- Помогнете ви да наложите идентичност и почтеност във връзката.
Видове ключове в системата за управление на база данни
В СУБД има основно седем различни типа ключове и всеки ключ има различна функционалност:
- Супер ключ - Супер ключът е група от единични или множество ключове, която идентифицира редове в таблица.
- Първичен ключ - е колона или група колони в таблица, които уникално идентифицират всеки ред в тази таблица.
- Кандидатски ключ - е набор от атрибути, които уникално идентифицират кортежи в таблица. Кандидатският ключ е супер ключ без повтарящи се атрибути.
- Алтернативен ключ - е колона или група колони в таблица, които уникално идентифицират всеки ред в тази таблица.
- Външен ключ - е колона, която създава връзка между две таблици. Целта на външните ключове е да поддържа целостта на данните и да позволява навигация между два различни екземпляра на обект.
- Сложен ключ - има два или повече атрибута, които ви позволяват да разпознавате уникално определен запис. Възможно е всяка колона да не е уникална сама по себе си в базата данни.
- Композитен ключ - Изкуствен ключ, който има за цел да идентифицира уникално всеки запис, се нарича сурогатен ключ. Този тип ключове са уникални, защото се създават, когато нямате естествен първичен ключ.
- Сурогатен ключ - Изкуствен ключ, който има за цел да идентифицира уникално всеки запис, се нарича сурогатен ключ. Този тип ключове са уникални, защото се създават, когато нямате естествен първичен ключ.
Какво е супер ключът?
Супер ключ е група от единични или множество ключове, която идентифицира редове в таблица. Супер ключът може да има допълнителни атрибути, които не са необходими за уникална идентификация.
Пример:
EmpSSN | EmpNum | Empname |
9812345098 | AB05 | Показани |
9876512345 | AB06 | Рослин |
199937890 | AB07 | Джеймс |
В дадения по-горе пример EmpSSN и EmpNum име са супер клавиши.
Какво е първичен ключ?
ОСНОВЕН КЛЮЧ е колона или група колони в таблица, които уникално идентифицират всеки ред в тази таблица. Първичният ключ не може да бъде дубликат, което означава, че същата стойност не може да се показва повече от веднъж в таблицата. Таблица не може да има повече от един първичен ключ.
Правила за дефиниране на първичен ключ:
- Два реда не могат да имат една и съща стойност на първичен ключ
- За всеки ред трябва да има стойност на първичен ключ.
- Полето на първичния ключ не може да бъде null.
- Стойността в колона с първичен ключ никога не може да бъде модифицирана или актуализирана, ако някой външен ключ се отнася до този първичен ключ.
Пример:
В следващия пример StudID
е първичен ключ.
StudID | Roll No | Първо име | Фамилия | електронна поща |
1 | 11. | Том | Цена | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
2 | 12 | Ник | Райт | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
3 | 13 | Дана | Натан | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
Какво представлява алтернативният ключ?
ALTERNATE KEYS е колона или група колони в таблица, които уникално идентифицират всеки ред в тази таблица. Таблица може да има множество възможности за избор на първичен ключ, но само един може да бъде зададен като първичен ключ. Всички ключове, които не са първичен ключ, се наричат Алтернативен ключ.
Пример:
В тази таблица StudID, Roll No, Email са квалифицирани да станат първичен ключ. Но тъй като StudID е основният ключ, Roll No, Email става алтернативен ключ.
StudID | Roll No | Първо име | Фамилия | електронна поща |
1 | 11. | Том | Цена | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
2 | 12 | Ник | Райт | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
3 | 13 | Дана | Натан | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
Какво е кандидат-ключ?
КАНДИДАТЕН КЛЮЧ е набор от атрибути, които уникално идентифицират кортежи в таблица. Кандидатският ключ е супер ключ без повтарящи се атрибути. Първичният ключ трябва да бъде избран от ключовете кандидат. Всяка таблица трябва да има поне един-единствен кандидат-ключ. Таблица може да има множество ключове за кандидат, но само един първичен ключ.
Свойства на кандидат-ключ:
- Той трябва да съдържа уникални стойности
- Ключът за кандидат може да има множество атрибути
- Не трябва да съдържа нулеви стойности
- Той трябва да съдържа минимум полета, за да се гарантира уникалност
- Уникално идентифицирайте всеки запис в таблица
Пример: В дадената таблица Stud ID, Roll No и email са ключове за кандидат, които ни помагат да идентифицираме уникално записа на студента в таблицата.
StudID | Roll No | Първо име | Фамилия | електронна поща |
1 | 11. | Том | Цена | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
2 | 12 | Ник | Райт | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
3 | 13 | Дана | Натан | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
Какво представлява външният ключ?
FOREIGN KEY е колона, която създава връзка между две таблици. Целта на външните ключове е да поддържа целостта на данните и да позволява навигация между два различни екземпляра на обект. Той действа като кръстосана препратка между две таблици, тъй като се позовава на първичния ключ на друга таблица.
Пример:
DeptCode | DeptName |
001 | Наука |
002 | Английски |
005 | Компютър |
Идентификатор на учителя | Fname | Lname |
B002 | Дейвид | Уорнър |
B017 | Сара | Йосиф |
B009 | Майк | Брантън |
В този ключ в dbms пример имаме две таблици, преподаване и отделение в училище. Няма начин обаче да се види коя търсачка работи в кой отдел.
В тази таблица, добавяйки външния ключ в Deptcode към името на учителя, можем да създадем връзка между двете таблици.
Идентификатор на учителя | DeptCode | Fname | Lname |
B002 | 002 | Дейвид | Уорнър |
B017 | 002 | Сара | Йосиф |
B009 | 001 | Майк | Брантън |
Тази концепция е известна още като референтна цялост.
Какво представлява Compound ключът?
СЪЕДИНЕН КЛЮЧ има два или повече атрибута, които ви позволяват да разпознавате уникално конкретен запис. Възможно е всяка колона да не е уникална сама по себе си в базата данни. Когато обаче се комбинира с другата колона или колони, комбинацията от съставни ключове става уникална. Целта на съставния ключ в базата данни е да идентифицира уникално всеки запис в таблицата.
Пример:
Поръчка Номер | PorductID | Име на продукта | Количество |
B005 | JAP102459 | Мишка | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | LCD монитор | 20. |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Лазерен принтер | 3 |
В този пример OrderNo и ProductID не могат да бъдат първичен ключ, тъй като не идентифицират еднозначно запис. Въпреки това може да се използва комбиниран ключ от идентификатор на поръчката и идентификатор на продукта, тъй като той идентифицира уникално всеки запис.
Какво представлява композитният ключ?
КОМПОЗИТЕН КЛЮЧ е комбинация от две или повече колони, които уникално идентифицират редове в таблица. Комбинацията от колони гарантира уникалност, макар че индивидуалната уникалност не се гарантира. Следователно те се комбинират, за да идентифицират уникално записите в таблица.
Разликата между съставния и съставния ключ е, че всяка част от съставния ключ може да бъде външен ключ, но съставният ключ може или не може да бъде част от външния ключ.
Какво е сурогатен ключ?
СУРОГАТНИТЕ КЛЮЧОВЕ е изкуствен ключ, който има за цел да идентифицира уникално всеки запис, наречен сурогатен ключ. Този вид частичен ключ в dbms е уникален, защото се създава, когато нямате естествен първичен ключ. Те не придават никакво значение на данните в таблицата. Сурогатният ключ обикновено е цяло число. Сурогатният ключ е стойност, генерирана точно преди записът да бъде вмъкнат в таблица.
Fname | Фамилия | Начален час | Крайно време |
Ан | Смит | 09:00 | 18:00 |
Джак | Франсис | 08:00 | 17:00 |
Ана | Маклийн | 11:00 | 20:00 |
Показани | Уилям | 14:00 | 23:00 |
По-горе, даден пример, показва времето на смяната на различния служител. В този пример е необходим сурогатен ключ за уникална идентификация на всеки служител.
Сурогатните ключове в sql са разрешени, когато
- Нито едно свойство няма параметъра на първичния ключ.
- В таблицата, когато първичният ключ е твърде голям или сложен.
Разлика между първичен ключ и външен ключ
Първичен ключ | Външен ключ |
Помага ви да идентифицирате уникално запис в таблицата. | Това е поле в таблицата, което е основният ключ на друга таблица. |
Първичният ключ никога не приема нулеви стойности. | Чуждестранният ключ може да приеме множество нулеви стойности. |
Първичният ключ е клъстериран индекс и данните в таблицата на СУБД са физически организирани в последователността на клъстерирания индекс. | Чуждестранният ключ не може автоматично да създаде индекс, клъстериран или неклъстериран. Можете обаче ръчно да създадете индекс на външния ключ. |
Можете да имате единичен първичен ключ в таблица. | Можете да имате множество външни ключове в таблица. |
Обобщение
- Ключът в SQL е атрибут или набор от атрибути, който ви помага да идентифицирате ред (кортеж) в релация (таблица)
- DBMS ключовете ви позволяват да установите връзка между и да идентифицирате връзката между таблици
- Седем типа ключове на СУБД са Super, Primary, Candidate, Alternate, Foreign, Compound, Composite и Surrogate Key.
- Супер ключът е група от единични или множество ключове, която идентифицира редове в таблица.
- Колона или група колони в таблица, която ни помага да идентифицираме уникално всеки ред в тази таблица, се нарича първичен ключ
- Всички ключове, които не са първичен ключ, се наричат алтернативен ключ
- Супер ключ без повторен атрибут се нарича кандидат ключ
- Съставният ключ е ключ, който има много полета, които ви позволяват да разпознавате уникално конкретен запис
- Ключ, който има множество атрибути за еднозначно идентифициране на редове в таблица, се нарича композитен ключ
- Изкуствен ключ, който има за цел да идентифицира уникално всеки запис, се нарича сурогатен ключ
- Първичният ключ никога не приема нулеви стойности, докато външният ключ може да приеме множество нулеви стойности.