Välisvõtmete võimu relatsioonandmebaasis

Välisvõti avab ukse kogu andmete maailmale

Andmebaasi disainerid kasutavad relatsiaalsete andmebaaside arendamisel võtmeid laialdaselt. Kõige sagedasemad nendest võtmetest on esmased võtmed ja võõrkeeled. Andmebaasi võõrvõti on relatsioonitabel, mis vastab teise tabeli esmasele võtmestikule. Et mõista, kuidas välisvõti töötab, vaadake lähemalt relatsioonandmebaasi ideed.

Mõned relatsioonandmebaaside alused

Relatsioonandmebaasis salvestatakse andmed ridadesse ja veergu sisaldavatesse tabelitesse, mis muudavad selle hõlpsaks otsinguks ja manipuleerimiseks. Relatsioonandmebaasi kontseptsiooni taga on tõsine matemaatika (EF-i pakutud relatiivse algebra)

1970. aastal IBMi kodeeritud kood), kuid see ei ole selle artikli teema.

Praktilistel eesmärkidel (ja mitte-matemaatikud) salvestab relatsioonandmebaas ridu ja veerge seotud andmeid. Veelgi enam - ja siit, kus see muutub huvitavaks - enamik andmebaase on kujundatud nii, et ühe tabeli andmed saaksid juurdepääsu teise tabeli andmetele. See tabelitevaheliste suhete loomise võime on relatsioonandmebaasi tõeline võime.

Välisklahvide kasutamine

Enamikul tabelitel, eriti suurtes keerulistes andmebaasides, on primaarvõtmed. Tabelitel, mis on mõeldud teiste tabelite avamiseks, peab olema ka võõrkeel.

Laialdaselt tsiteeritud Northwindsi andmebaasi kasutamiseks leiate järgmisest tootest lahtrist väljavõtte:

Northwind'i andmebaasi tootenumbri näidis
ProductID Tootenimi Kategooriate ID KogusPerU Ühikuhind
1 Chai 1 10 kasti x 20 koti 18.00
2 Chang 1 24-12 oz-pudelit 19.00
3 Aniisav siirup 2 12 - 550 ml pudelit 10.00
4 Chef Antoni Cajuni maitsestamine 2 48 - 6 untsi purgid 22.00
5 Chef Antoni Gumbo Mix 2 36 kasti 21,35
6 Vanaisa Boysenberry Spread 2 12 - 8 untsi purgid 25.00
7 Onu Bobi orgaanilised kuivatatud pirid 7 12-1 lb pkgs. 30.00

Tulp ProductID on selle tabeli esmane võti. See määrab igale tootele ainulaadse ID.

See tabel sisaldab ka välisvõti veergu, CategoryID . Iga tootelaua toode sisaldab linki kategooria tabeli kirjele, mis määratleb selle toote kategooria.

Pange see väljavõte andmebaasi kategooria tabelisse:

Northwindi andmekogu kategooriate tabel
Kategooriate ID Kategooria nimi Kirjeldus
1 Joogid Karastusjoogid, kohvi, teed, õlu ja õlu
2 Maitseained Magusad ja soolatud kastmed, maitsestatud, leotatud ja maitseained
3 Kondensioonid Magustoidud, kompvekid ja magusad leibad
5 Piimatooted Juustud

Veeru CategoryID on selle veeru esmane võti. (Sellel puudub võti, sest tal puudub vajadus teisele tabelile juurde pääseda.) Iga tootevaliku võõrvõti ühendab primaarvõtme kategooria tabelis. Näiteks toode Chai on määratud kategooriasse "Joogid", samas kui aniisav siirup kuulub kategooriasse "Maitseained".

Selline seostamine loob hulgaliselt võimalusi andmete taaskasutamiseks relatsioonandmebaasis.