Ulkopuolinen avain avaa oven koko tietopaketille
Tietokannan suunnittelijat käyttävät laaja-alaisesti avaimia kehitettäessä relaatiotietokantojaan. Yleisimpiä näistä avaimista ovat ensisijaiset avaimet ja vieraat avaimet. Tietokantaan liittyvä avain on relaatiotaulukon kenttä, joka vastaa toisen taulukon ensisijaista avainsaraketta. Jos haluat ymmärtää, miten ulkomaisen avaimen toiminta toimii, katsotaan lähemmin lähemmin relaatiotietokannan ajatusta.
Jotkut relaatiotietokannan perusteet
Relaatiotietokannassa tiedot tallennetaan riveihin ja sarakkeisiin sisältäviin taulukoihin , mikä helpottaa etsimistä ja manipulointia. Relaatiotietokannan käsitteen takana on jonkin verran matemaattista matematiikkaa (relaatioalgebra, jota EF ehdottaa
Codd IBM: ssä vuonna 1970), mutta se ei ole tämän artikkelin aihe.
Käytännöllisiin tarkoituksiin (ja ei-matemaatikoihin) relaatiotietokanta tallentaa "liittyviä" tietoja riveihin ja sarakkeisiin. Lisäksi - ja tässä missä se saa mielenkiintoiselta - useimmat tietokannat on suunniteltu siten, että yhden taulukon tiedot voivat käyttää tietoja toisessa taulukossa. Tämä kyky luoda taulukoiden välisiä suhteita on relaatiotietokannan todellinen voima.
Ulkomaisten avainten käyttäminen
Useimmissa taulukoissa, varsinkin suurissa, monimutkaisissa tietokannoissa, on ensisijaisia avaimia. Taulukoihin, joiden on tarkoitus käyttää muita taulukoita, on oltava myös vieras avain.
Jos haluat käyttää yleisesti mainittua Northwinds-tietokantaa, tässä on ote Product-taulukosta:
Tuotetunnus | Tuotteen nimi | LuokanTunnus | QuantityPerU | Yksikköhinta |
---|---|---|---|---|
1 | Chai | 1 | 10 laatikkoa x 20 pussia | 18.00 |
2 | Chang | 1 | 24 - 12 oz pulloa | 19.00 |
3 | Anisoitu siirappi | 2 | 12 - 550 ml pulloja | 10.00 |
4 | Chef Antonin Cajun-maustekastike | 2 | 48 - 6 oz purkkia | 22.00 |
5 | Chef Antonin Gumbo Mix | 2 | 36 laatikkoa | 21.35 |
6 | Mummon Boysenberry Spread | 2 | 12 - 8 oz purkkia | 25.00 |
7 | Bobin orkesterin kuivatut päärynät | 7 | 12 - 1 lb pkgs. | 30.00 |
TuoteID- sarake on tämän taulukon ensisijainen avain. Se antaa yksilöllisen tunnuksen jokaiselle tuotteelle.
Tässä taulukossa on myös ForeignID-sarake, CategoryID . Jokaisen Tuotepaketin tuote-linkit yhdistyvät ryhmän luokkaan, joka määrittää kyseisen tuotteen luokka.
Huomaa tämä osio tietokannan Luokat-taulukosta:
LuokanTunnus | Kategorian nimi | Kuvaus |
---|---|---|
1 | juomat | Virvoitusjuomia, kahvia, teetä, oluita ja juomia |
2 | Mausteet | Makeat ja suolaiset kastikkeet, maut, levitteet ja mausteet |
3 | konvehteja | Jälkiruoat, karkit ja makeutusaineet |
5 | Maitotuotteet | juustot |
Sarakkeen CategoryID on sarakkeen ensisijainen avain. (Se ei ole vieras avain, koska sillä ei ole tarvetta käyttää toista taulukkoa.) Tuotteitaulukon jokainen vierasavaimella linkitetään ensisijaisen avaimen luokat-taulukkoon. Esimerkiksi Chai-tuotteelle on määritetty "Juomat" -luokka, kun taas Anisoi-siirappi on luokassa Maustevalmisteet.
Tällainen yhdistäminen luo lukemattomia tapoja käyttää ja käyttää uudelleen tietoja relaatiotietokantaan.