165667304 56a227c13df78cf77272a94f d2ec7a74e9384162af79c1a098c528c9

Tietokannan suunnittelijat käyttävät avaimia laajasti relaatiotietokantoja kehittäessään. Yleisimpiä näistä avaimista ovat ensisijaiset avaimet ja vierasavaimet. Tietokannan vierasavain on relaatiotaulukon kenttä, joka vastaa toisen taulukon perusavainsaraketta. Ymmärtääksemme, kuinka vieras avain toimii, katsotaanpa tarkemmin ajatusta relaatiotietokannasta.

Joitakin relaatiotietokantojen perusteita

Relaatiotietokannassa tiedot tallennetaan taulukoihin, joissa on rivejä ja sarakkeita, mikä helpottaa hakua ja käsittelyä. Relaatiotietokannan käsitteen takana on vakavaa matematiikkaa (relaatioalgebra, EF Coddin ehdottama IBM:ssä vuonna 1970), mutta se ei ole tämän artikkelin aihe. Käytännön tarkoituksiin (ja ei-matemaatikoille) relaatiotietokanta tallentaa asiaan liittyvät tiedot riveihin ja sarakkeisiin. Lisäksi – ja tässä se tulee mielenkiintoiseksi – useimmat tietokannat on suunniteltu siten, että yhden taulukon tiedot voivat käyttää toisen taulukon tietoja. Tämä kyky luoda suhteita taulukoiden välille on relaatiotietokannan todellinen voima.

Vieraiden avainten käyttö

Useimmissa taulukoissa, erityisesti suurissa ja monimutkaisissa tietokannoissa olevissa taulukoissa, on perusavaimet. Taulukoissa, jotka on suunniteltu käyttämään muita taulukoita, on myös oltava vierasavain. Tässä on ote tuotetaulukosta käyttääksesi paljon siteerattua Northwinds-tietokantaa:

Tuotetunnus Tuotteen nimi Luokkatunnus SummaPerU Yksikköhinta
1 chais 1 10 laatikkoa x 20 pussia 18.00
2 Chang 1 24-12 unssin pullot 19.00
3 anis siirappi 2 12-550 ml pullot 10.00
4 Chef Antonin Cajun-mauste 2 48-6 unssin purkit klo 22.00
5 Gumbo Mix kokki Antonilta 2 36 laatikkoa 21.35
6 Isoäidin Boysenberry levite 2 12-8 unssin purkit 25.00
7 Uncle Bob luomukuivattuja päärynöitä 7 Pakkaus 12 – 1 lb. 30.00
Ote Northwind Database -tuotetaulukosta
The Tuotetunnus sarake on tämän taulukon ensisijainen avain. Se määrittää jokaiselle tuotteelle yksilöllisen tunnuksen. Tämä taulukko sisältää myös viiteavainsarakkeen, Luokkatunnus† Jokainen tuotetaulukon tuote on liitetty Luokat-taulukon nimikkeeseen, joka määrittelee kyseisen tuotteen luokan. Huomaa tämä ote tietokannan Kategoriat-taulukosta:

Luokkatunnus Kategorian nimi Kuvaus
1 juomia Virvoitusjuomat, kahvi, tee, olut ja olut
2 Mausteet Makeat ja suolaiset kastikkeet, herkut, levitteet ja mausteet
3 herkkuja Jälkiruoat, karkit ja makeiset
5 Maitotuotteet juustoja
Ote Northwind-tietokannan luokkataulukosta
sarakkeen Luokkatunnus on tämän sarakkeen ensisijainen avain. (Sillä ei ole vieraa-avainta, koska se ei tarvitse pääsyä mihinkään muuhun taulukkoon.) Jokainen tuotetaulukon vierasavain on liitetty ensisijaiseen avaimeen Kategoriat-taulukossa. Esimerkiksi tuote Chai on määritetty luokkaan «Drinks», kun taas anissiirappi kuuluu luokkaan Mausteet. Tällainen linkittäminen luo lukemattomia tapoja käyttää ja käyttää uudelleen relaatiotietokannan tietoja.

Por Markus