Знешні ключ адкрывае дзверы ў цэлы свет дадзеных
дызайнеры баз дадзеных робяць шырокае выкарыстанне ключоў пры распрацоўцы рэляцыйных баз дадзеных. Сярод найбольш распаўсюджаных з гэтых ключоў з'яўляюцца першаснымі ключамі і знешнімі ключамі. Знешні ключ базы даных уяўляе сабой поле ў рэляцыйнай табліцы, якая адпавядае слупка першаснага ключа іншы табліцы. Для таго, каб зразумець, як знешні ключ працуе, давайце больш уважліва паглядзім на ідэю рэляцыйнай базы дадзеных.
Некаторыя Асновы рэляцыйных баз дадзеных
У рэляцыйнай базе дадзеных, дадзеныя захоўваюцца ў табліцах , якія змяшчаюць радкі і слупкі, што робіць яго лёгка знайсці і manipulate.There некаторыя сур'ёзныя матэматыкі за паняццем рэляцыйнай базы дадзеных (рэляцыйная алгебра, прапанаваная EF
Кодда ў IBM ў 1970 годзе), але гэта не тэма дадзенага артыкула.
Для практычных мэтаў (і не-матэматыкаў), рэляцыйных сховішчаў баз даных "звязаных» дадзеных у радках і слупках. Акрамя таго, і вось дзе ён атрымлівае цікавыя-большасць баз дадзеных спраектаваны такім чынам, што дадзеныя ў адной табліцы, могуць атрымаць доступ да дадзеных ў іншай табліцы. Магчымасць стварэння сувязяў паміж табліцамі з'яўляецца рэальнай сілай рэляцыйнай базы дадзеных.
Выкарыстанне знешніх ключоў
Большасць табліц, асабліва ў вялікіх, складаных баз дадзеных, маюць першасныя ключы. Сталы, прызначаныя для доступу да іншых табліцах павінны таксама мець знешні ключ.
Для таго, каб выкарыстоўваць шырока цытуюцца базу дадзеных Northwinds, вось вытрымка з табліцы Product:
| ProductID | ProductName | CategoryID | QuantityPerU | Цана за адзінку |
|---|---|---|---|---|
| 1 | Chai | 1 | 10 каробак х 20 мяшкоў | 18,00 |
| 2 | Чанг | 1 | 24 - 12 унцый бутэлькі | 19,00 |
| 3 | аніс Сіроп | 2 | 12 - 550 мл бутэлек | 10,00 |
| 4 | Шэф Антон Cajun Заправа | 2 | 48 - 6 унцый банкі | 22,00 |
| 5 | Шэф Антона Gumbo Mix | 2 | 36 каробак | 21,35 |
| 6 | Boysenberry Spread Бабулін | 2 | 12 - 8 унцый банкі | 25,00 |
| 7 | Арганічныя сушаныя грушы дзядзькі Боба | 7 | 12 - 1 фунт pkgs. | 30,00 |
Слупок ProductID з'яўляецца першасным ключом гэтай табліцы. Ён прысвойвае унікальны ідэнтыфікатар для кожнага прадукту.
Гэтая табліца таксама змяшчае слупок вонкавага ключа, CategoryID. Кожны прадукт у табліцы Product спасылка на запіс у табліцы Катэгорыі, якая вызначае, што катэгорыі прадукту.
Звярніце ўвагу, гэты ўрывак з Катэгорыі табліцы БД:
| CategoryID | CategoryName | апісанне |
|---|---|---|
| 1 | напоі | Безалкагольныя напоі, кава, чай, піва і піва |
| 2 | прыправы | Салодкія і салёныя соусы, прыправы, пасты і прыправы |
| 3 | кандытарскія вырабы | Дэсерты, цукеркі і салодкае |
| 5 | Малочныя прадукты | брынза |
Калонка CategoryID з'яўляецца першасным ключом гэтага слупка. (Гэта не мае ніякага вонкавага ключа, паколькі ён не мае ніякай неабходнасці доступу да іншай табліцы.) Кожны знешні ключ у табліцы прадукту спасылкі на першасны ключ у табліцы Катэгорыі. Напрыклад, прадукт Chai прысвойваецца катэгорыя «Трункі», у той час як аніс Сіроп знаходзіцца ў рубрыцы прыправы.
Гэты выгляд сувязяў стварае мноства спосабаў выкарыстання і дадзеныя паўторнага выкарыстання ў рэляцыйнай базе дадзеных.