Дизайнерите на бази данни използват широко ключовете при разработването на релационни бази данни. Сред най-честите от тези клавиши са първичните ключове и чуждите ключове. Външен ключ на база данни е поле в релационна таблица, която съвпада с колоната за първичен ключ на друга таблица. За да разберем как работи чужд ключ, нека да разгледаме по-отблизо идеята за релационна база данни.
Някои основи на релационни бази данни
В релационна база данни данните се съхраняват в таблици, съдържащи редове и колони, което улеснява търсенето и манипулирането. Съществува сериозна математика зад концепцията за релационна база данни (релационна алгебра, предложена от E.F.
Codd в IBM през 1970 г.), но това не е темата на тази статия.
За практически цели (и не-математици) релационна база данни съхранява свързаните данни в редове и колони. Освен това - и тук става интересно - повечето бази данни са проектирани така, че данните в една таблица да имат достъп до данните в друга таблица. Тази способност за създаване на отношения между таблици е истинската мощ на релационна база данни.
Използване на чужди ключове
Повечето таблици, особено тези в големи, сложни бази данни, имат първични ключове. Таблиците, предназначени за достъп до други таблици, също трябва да имат чужд ключ.
За да използвате често цитираната база данни на Northwinds, тук е извлечение от продуктовата таблица:
Идентификация на продукта | Име на продукта | CategoryId | QuantityPerU | Единична цена |
---|---|---|---|---|
1 | Chai | 1 | 10 кутии х 20 торби | 18.00 |
2 | Чанг | 1 | 24 - 12 унция бутилки | 19.00 |
3 | Анасонен сироп | 2 | 12 - 550 ml бутилки | 10.00 |
4 | Готвач на Антон Cajun подправка | 2 | Буркани от 48 до 6 унции | 22.00 |
5 | Готвач на Антон Гъмбо микс | 2 | 36 кутии | 21.35 |
6 | Бъзънбери на баба се разпространи | 2 | Буркани от 12 до 8 унции | 25.00 |
7 | Органичните сушени круши на чичо Боб | 7 | 12 - 1 lb pkgs. | 30.00 |
Най- Идентификация на продукта колоната е първичният ключ на тази таблица. Тя придава уникален идентификационен номер на всеки продукт.
Тази таблица съдържа и колона с чужди ключове, CategoryId, Всеки продукт в таблицата с продуктите препраща към запис в таблицата с категории, която определя категорията на продукта.
Обърнете внимание на този откъс от таблицата с категории в базата данни:
CategoryId | Име на категория | описание |
---|---|---|
1 | напитки | Безалкохолни напитки, кафе, чай, бира и алергии |
2 | подправки | Сладки и солени сосове, благоухания, спрейове и подправки |
3 | Confections | Десерти, бонбони и сладкиши |
5 | Млечни продукти | Сирена |
Колоната CategoryId е първичният ключ на тази колона. (Няма чуждестранен ключ, защото няма нужда да има достъп до друга таблица.) Всеки чужд ключ в таблицата с продуктите се свързва с първичен ключ в таблицата с категории. Например, продуктът Chai получава категория "Напитки", а ароматът на анасон е в категорията "Подправки".
Този вид свързване създава безброй начини за използване и повторно използване на данните в релационна база данни.