Snaga stranih ključeva u relacijskim bazama podataka

Strani ključ otvara vrata cijelom svijetu podataka

Dizajneri baze podataka koriste široku uporabu ključeva pri razvoju relacijskih baza podataka. Među najčešćim ključevima su primarni ključevi i strani ključevi. Inozemni bazi podataka je polje u relacijskoj tablici koja odgovara stupcu primarnog ključa druge tablice. Da bismo shvatili kako funkcionira strani ključ, pogledajmo bližu ideju relacijske baze podataka.

Neke osnove relacijskih baza podataka

U relacijskoj bazi podataka podaci se pohranjuju u tablice koje sadrže retke i stupce, što olakšava pretraživanje i manipuliranje. Postoji neka ozbiljna matematika iza koncepta relacijske baze podataka (relacijska algebra, koju je predložio EF

Codd na IBM-u 1970.), ali to nije tema ovog članka.

U praktične svrhe (i ne-matematičari) relacijska baza pohranjuje "povezane" podatke u retke i stupce. Nadalje - a ovdje je zanimljivo - većina baza podataka oblikovana je tako da podaci u jednoj tablici mogu pristupiti podacima u drugoj tablici. Ta sposobnost stvaranja odnosa između tablica je stvarna snaga relacijske baze podataka.

Korištenje stranih ključeva

Većina tablica, osobito onih u velikim, složenim bazama podataka, imaju primarne ključeve. Tablice koje su dizajnirane za pristup ostalim tablicama moraju također imati stranog ključa.

Da biste koristili uobičajenu bazu Northwindsa, ovdje je izvadak iz tablice proizvoda:

Izvadak tablice proizvoda iz Northwind baze podataka
Identifikacijski broj proizvoda Ime proizvoda CategoryId QuantityPerU Jedinična cijena
1 chai 1 10 kutija x 20 vrećica 18.00
2 Chang 1 Boce 24 - 12 oz 19.00
3 Anisirani sirup 2 Boce od 12 do 550 ml 10.00
4 Osvježenje Chef Anton's Cajun 2 Posude od 48 - 6 oz 22.00
5 Kuhar Anton's Gumbo Mix 2 36 kutija 21.35
6 Baka's Dječji šećer 2 12 - 8 oz staklenke 25.00
7 Oče Bobove organske sušene kruške 7 12 - 1 kg pkgs. 30.00

Stupac ID-a proizvoda je primarni ključ ove tablice. Dodjeljuje jedinstveni ID svakom proizvodu.

Ova tablica također sadrži stupac za unos stranog jezika, CategoryID . Svaki proizvod iz tablice proizvoda povezuje se s unosom u tablici kategorija koja definira tu kategoriju proizvoda.

Zabilježite ovaj izvadak iz tablice Kategorije baze podataka:

Kategorije baze podataka Northwind Kategorija Tablica izvod
CategoryId Ime kategorije Opis
1 Pića Bezalkoholna pića, kava, čajevi, piva i sokovi
2 začini Slatki i ukusni umaci, relishes, širi i začinima
3 slastica Deserti, bomboni i slatkiši
5 Mliječni proizvodi sirevi

Kategorija ID stupca primarni je ključ ovog stupca. (Nema stranog ključa jer nema potrebe za pristupom drugoj tablici.) Svaki strani ključ u tablici proizvoda povezuje se s primarnim ključem u tablici kategorija. Na primjer, proizvodu Chai dodjeljuje se kategorija "Pića", dok se anisirani sirup nalazi u kategoriji Condiments.

Ova vrsta povezivanja stvara bezbroj načina korištenja i ponovne upotrebe podataka u relacijskoj bazi podataka.