Vieraiden avainten voima relaatiotietokantoissa

Tietokannan suunnittelijat käyttävät avaimia laajasti kehittäessään relaatiotietokannat. 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.

Jotkut relaatiotietokantojen perusteet

Relaatiotietokannassa tiedot tallennetaan rivejä ja sarakkeita sisältäviin taulukoihin, mikä helpottaa hakua ja käsittelyä. Relaatiotietokannan käsitteen taustalla on vakavaa matematiikkaa (relaatioalgebra, E.F. Coddin IBM: ssä vuonna 1970 ehdottama), mutta se ei ole tämän artikkelin aihe.

Käytännön tarkoituksiin (ja ei-matemaatikoille) relaatiotietokanta tallentaa liittyvät tiedot riveissä ja sarakkeissa. 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 yleisesti lainattua Northwinds-tietokantaa:

Tuotetunnus Tuotteen nimi KategoriaID Määrä PerU Yksikköhinta
1 Chai 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 22.00
5 Keittiömestari Antonin Gumbo Mix 2 36 laatikkoa 21.35
6 Isoäidin Boysenberry levite 2 12-8 unssin purkit 25.00
7 Uncle Bobin luomukuivattuja päärynöitä 7 12-1 lb pkgs. 30.00
Northwind-tietokannan tuotetaulukkoote

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, KategoriaID. Jokainen tuotetaulukon tuote linkittää Luokat-taulukon merkintään, joka määrittelee kyseisen tuotteen luokan.

Huomaa tämä ote tietokannan Kategoriat-taulukosta:

KategoriaID Kategorian nimi Kuvaus
1 Juomat Virvoitusjuomat, kahvit, teet, oluet ja oluet
2 Mausteet Makeat ja suolaiset kastikkeet, herkut, levitteet ja mausteet
3 Makeiset Jälkiruoat, karkit ja makeiset
5 Maitotuotteet Juustot
Northwind-tietokannan kategorioiden taulukkoote

Kolumni KategoriaID on tämän sarakkeen ensisijainen avain. (Sillä ei ole viiteavainta, koska sillä ei ole tarvetta käyttää toista taulukkoa.) Jokainen tuotetaulukon vierasavain linkittää ensisijaiseen avaimeen Kategoriat-taulukossa. Esimerkiksi tuote Chai on määritetty luokkaan "Juomat", kun taas anissiirappi on kategoriassa Mausteet.

Tällainen linkittäminen luo lukemattomia tapoja käyttää ja käyttää uudelleen relaatiotietokannan tietoja.