Ang Kapangyarihan ng Dayuhang Keys sa Mga Relational Database

Ang isang banyagang susi ay nagbubukas ng pinto sa isang buong daigdig ng data

Ang mga taga-disenyo ng database ay gumagamit ng mga susi sa pag-unlad ng database. Kabilang sa mga pinaka-karaniwan sa mga susi na ito ay mga pangunahing susi at banyagang mga susi. Ang isang database na banyagang susi ay isang patlang sa pamanggit na talahanayan na tumutugma sa pangunahing susi ng haligi ng isa pang talahanayan. Upang maunawaan kung paano gumagana ang isang banyagang susi, tingnan natin ang ideya ng isang pamanggit na database.

Ang ilang Mga Pangunahing Kaalaman ng Mga Relational Database

Sa isang pamanggit database, ang data ay naka-imbak sa mga talahanayan na naglalaman ng mga hilera at mga haligi, na ginagawang madali upang maghanap at manipulahin. Mayroong ilang malubhang matematika sa likod ng konsepto ng isang pamanggit na database (pamanggit algebra, na iminungkahi ng EF

Codd sa IBM noong 1970), ngunit hindi iyon ang paksa ng artikulong ito.

Para sa mga praktikal na layunin (at non-mathematicians), isang pamanggit database ay nag-iimbak ng "kaugnay" na data sa mga hilera at hanay. Karagdagang-at narito kung saan ito ay nakakakuha ng kawili-wiling-karamihan sa mga database ay dinisenyo upang ang data sa isang talahanayan ay maaaring ma-access ang data sa isa pang talahanayan. Ang kakayahang lumikha ng mga relasyon sa pagitan ng mga talahanayan ay ang tunay na kapangyarihan ng isang pamanggit database.

Paggamit ng mga Dayuhang Key

Karamihan sa mga talahanayan, lalo na sa mga malaki, komplikadong mga database, ay may pangunahing mga susi. Ang mga table na idinisenyo upang ma-access ang iba pang mga talahanayan ay dapat ding magkaroon ng isang banyagang susi.

Upang gamitin ang pangkalahatang-nabanggit na Northwinds database, narito ang isang sipi mula sa isang talahanayan ng Produkto:

Ang Talaan ng Produkto ng Northwind Database ay Excerpt
ProductID Pangalan ng Produkto KategoryaID QuantityPerU Presyo ng isang piraso
1 Chai 1 10 mga kahon x 20 bag 18.00
2 Chang 1 24 - 12 oz bottles 19.00
3 Aniseed Syrup 2 12 - 550 bote ng ML 10.00
4 Chef Anton's Cajun Seasoning 2 48 - 6 ans garapon 22.00
5 Gfo Anton's Gumbo Mix 2 36 na mga kahon 21.35
6 Kumakalat ang Boysenberry ni Lola 2 12 - 8 oz garapon 25.00
7 Ang Organic Dried Pears ni Uncle Bob 7 12 - 1 lb pkgs. 30.00

Ang hanay ng ProductID ay pangunahing key ng talahanayan na ito. Nagtatakda ito ng isang natatanging ID sa bawat produkto.

Naglalaman din ang talahanayan na ito ng isang banyagang hanay ng haligi, KategoryaID . Ang bawat produkto sa talahanayan ng Produkto ay nagli-link sa isang entry sa talahanayan ng Mga Kategorya na tumutukoy sa kategoryang produkto na iyon.

Tandaan ang sipi na ito mula sa table ng Mga Kategorya ng database:

Mga Paghuhulog ng Mga Kategorya ng Talaan ng Northwind Database
KategoryaID KategoryaName Paglalarawan
1 Inumin Soft drinks, coffees, teas, beers, at ales
2 Condiments Matamis at may masarap na mga sarsa, relishes, spreads, at seasonings
3 Confections Dessert, candies, at sweetbreads
5 Mga produkto ng pagawaan ng gatas Keso

Ang KategoryaID column ay ang pangunahing susi ng hanay na ito. (Wala itong dayuhang susi dahil hindi na kailangang mag-access ng isa pang talahanayan.) Ang bawat banyagang susi sa talahanayan ng Produkto ay nag-uugnay sa isang pangunahing susi sa talahanayan ng Mga Kategorya. Halimbawa, ang produkto na Chai ay itinalaga sa kategoryang "Inumin", habang ang Aniseed Syrup ay nasa kategorya Condiments.

Ang ganitong uri ng pag-uugnay ay lumilikha ng isang napakaraming paraan upang gamitin at muling gamitin ang data sa isang pamanggit database.