Kas yra svetimas raktas?

Duomenų bazės sudarytos iš lentelių, kuriose saugomi duomenys arba informacija. Išorinis raktas yra reliacinės duomenų bazės mechanizmas, leidžiantis susieti tas lenteles arba lentelėms turėti ryšį viena su kita. Yra unikalių savybių, kurias turi turėti išorinis raktas. Tai turi būti lentelės stulpelis arba stulpelių grupė, kurios reikšmės nustato ryšį su reikšmėmis kitoje toje pačioje duomenų bazėje esančioje lentelėje.

Užsienio raktas garantuoja, kad vienos lentelės eilutės atitinka kitos lentelės eilutes, taip sukuriant duomenų bazės ryšius arba nuorodas. Lentelė, kurioje yra išorinis raktas, yra „vaikas“, o kita lentelė yra „tėvas“. Gali būti, kad pašalinio rakto reikšmė yra nulinė arba tuščia ir ji iš tikrųjų nurodo arba yra susijusi su tuo, kas yra žinoma kaip pirminis lentelės, kurioje jis rastas, raktas. Tai žinoma kaip savarankiška nuoroda.

Prieš bandant visiškai suprasti išorinių raktų sąvoką, reikia gerai suprasti, kas yra pirminis raktas. Pavyzdžiui, jei duomenų bazėje yra dvi lentelės, kuriose saugoma informacija apie knygas parduodančios svetainės paskelbtas knygas, viena lentelė gali būti leidėjų lentelė, o kita – knygų lentelė. Leidėjų lentelę gali sudaryti du stulpeliai: pirminis raktas, kuris visada yra unikalus kiekvienam įrašui, ir leidėjo pavadinimo stulpelis. Knygų lentelę sudarytų mažiausiai trys stulpeliai, kuriuose būtų kiekvienos knygos pirminis raktas arba unikalus identifikatorius, knygų pavadinimai ir stulpelis, per kurį būtų nustatomas ryšys su leidėjų lentele. Tas stulpelis būtų išorinis raktas.

Pirminis leidėjų lentelės raktas gali būti kažkas panašaus į „pub_id“, kurio reikšmės yra: P01, P02, P03 ir t. t. Ryšys būtų užmegztas su knygų lentele, jei joje būtų pub_id stulpelis su tomis pačiomis reikšmėmis. Tai būtų išorinis raktas, kuris susietų šią antrinę lentelę su pirminiu – leidėjų lentele.

Tačiau pašalinio rakto stulpelio pavadinimas gali būti kitoks nei pirminio rakto, į kurį jis nurodomas. Geras pirminių ir išorinių raktų veikimo supratimas yra būtinas norint išlaikyti nuorodos vientisumą. Labai didelės duomenų bazės, sudarytos iš daugelio lentelių arba apimančios jungiamąją lentelę, turi daugiau nei vieno tipo ryšį, o tai gali apsunkinti darbą su išoriniais raktais.