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:
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:
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.