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