Užsienio raktų galia santykinėse duomenų bazėse

Užsienio raktas atveria duris į visą duomenų pasaulį

Duomenų bazių dizaineriai plačiai naudoja raktus kuriant reliacines duomenų bazes. Tarp labiausiai paplitusių iš šių klavišų yra pagrindiniai raktai ir užsienio raktai. Duomenų bazės išorinis raktas yra reliacinės lentelės laukas, atitinkantis pagrindinės kitos lentelės raktą. Norėdami suprasti, kaip veikia užsienio kalba, atidžiau pažvelkime į reliacinės duomenų bazės idėją.

Kai kurie reliacinių duomenų bazių pagrindai

Reliacinėje duomenų bazėje duomenys yra saugomi lentelėse, kuriose yra eilutės ir stulpeliai, todėl juos lengva ieškoti ir manipuliuoti. Yra keletas rimtų matematikos už reliacinės duomenų bazės koncepcijos (reliacinės algebra, kurią siūlo EF

1970 m. IBM "Codd"), tačiau tai nėra šio straipsnio tema.

Praktiniais tikslais (ir nemetantikai) reliacinė duomenų bazė įrašo "susijusius" duomenis eilučių ir stulpelių. Toliau - ir čia yra įdomu - dauguma duomenų bazių yra sukurtos taip, kad vienoje lentelėje esantys duomenys galėtų pasiekti duomenis kitoje lentelėje. Šis gebėjimas kurti ryšius tarp stalų yra tikroji reliacinės duomenų bazės galia.

Užsienio raktų naudojimas

Dauguma lentelių, ypač didelėse sudėtingose ​​duomenų bazėse, turi pirminius raktus. Lentelės, skirtos pasiekti kitas lenteles, taip pat turi turėti išorinį raktą.

Jei norite naudoti dažnai cituojamą "Northwinds" duomenų bazę, čia pateikiama ištrauka iš lentelės Produktas:

Northwind duomenų bazės produktų lentelės ištrauka
ProductID Produkto pavadinimas KategorijaID "NumberPerU" Vienetinis mokestis
1 Chai 1 10 dėžių x 20 krepšių 18.00
2 Čangas 1 24 - 12 oz buteliai 19.00 val
3 Anizuotasis sirupas 2 12-550 ml buteliai 10.00 val
4 Chef Antono Cajūno prieskoniai 2 48 - 6 auksiniai stiklainiai 22 val
5 Chef Antono Gumbo mišinys 2 36 dėžutės 21.35
6 Senelės "Boysenberry Spread" 2 12 - 8 oz. Stiklainiai 25.00
7 Dėdės Bobo organiniai džiovinti kriaušės 7 12 - 1 lb pkgs. 30.00

Stulpelis " ProductID" yra pirminio rakto lentelė. Jis priskiria unikalų ID kiekvienam produktui.

Šioje lentelėje taip pat yra užsienio rakto stulpelio " CategoryID" . Kiekvienas Produkto lentelės produktas susijęs su įrašu kategorijų lentelėje, kurioje apibrėžiama produkto kategorija.

Atkreipkite dėmesį į šį ištrauką iš duomenų bazės lentelių kategorijų:

Northwind duomenų bazės kategorijų lentelių ištrauka
KategorijaID KategorijaName apibūdinimas
1 Gėrimai Nealkoholiniai gėrimai, kavos, arbatos, alaus ir alaus
2 Prieskoniai Saldūs ir pikantiški padažai, pagardai, patiekalai ir pagardai
3 Saldumynai Desertai, saldainiai ir smulkmenos
5 Pieno produktai Sūriai

Stulpelis " CategoryID" yra pirminio raktinio žodžio šio stulpelio. (Nėra išorinio rakto, nes nereikia prisijungti prie kitos lentelės.) Kiekvienas išorinis raktas lentelėje "Produktas" nurodo pirminį raktą kategorijų lentelėje. Pavyzdžiui, produktas Chai priskiriamas kategorijai "Gėrimai", o Aništo sirupas priklauso kategorijai Prieskoniai.

Toks susiejimas sukuria daugybė būdų, kaip naudoti ir pakartotinai naudoti duomenis reliacinėje duomenų bazėje.