Tietokantojen yksi tärkeimmistä käsitteistä on luoda tietokannat taulukoiden välisiä suhteita. Nämä suhteet tarjoavat mekanismin yhdistää useita taulukoissa tallennettuja tietoja ja hakea ne tehokkaasti. Jotta voit luoda linkin kahden taulukon välillä, sinun on määritettävä vieras avain yhdestä taulukosta, joka viittaa toiseen taulukkoon sarakkeeseen.
Tietokannan taulukoita ja suhteita
Tiedät jo, että tietokannat ovat vain sarja taulukoita , jotka muistuttavat taulukkolaskentaohjelmaa , kuten Microsoft Excelia. Itse asiassa voit jopa muuntaa Excel-laskentataulukon tietokantaan. Jos tietokannat eroavat kuitenkin taulukkolaskentaan, on kyse taulukoiden tehokkaiden suhteiden rakentamisesta.
Harkitse esimerkiksi yrityksen tietokantaa henkilöstötietojen seurantaan. Tietokannassa voi olla taulukko nimeltä Työntekijät, joka sisältää seuraavat tiedot jokaiselle henkilökunnan jäsenelle:
- henkilöstökortti
- Etunimi
- Sukunimi
- Toimistopuhelin
- Kotipuhelin
- PositionID
Tässä esimerkissä työntekijän tunnus on yksilöllisesti luotu kokonaisluku, joka määritetään jokaiselle työntekijälle, kun se lisätään tietokantaan. Sijainti-ID on työkoodi, jota käytetään viittaamaan työntekijän asemaan yrityksessä. Tässä järjestelmässä työntekijällä voi olla vain yksi asema, mutta useita (tai ei) työntekijöitä voi täyttää jokaisen tehtävän. Esimerkiksi sinulla voi olla satoja työntekijöitä, joilla on kassa-asema.
Tietokanta saattaa sisältää myös taulukon nimeltä Positio, jossa on seuraavat lisätiedot kustakin asemasta:
- PositionID
- otsikko
- Työtaso
- SkillCategory
- Sijainti
Tämän taulukon sijainti-ID-kenttä on samanlainen Työntekijät-taulukon Työntekijän tunnuksen kentän kanssa - se on yksilöllisesti luotu kokonaisluku, joka luodaan, kun paikka lisätään tietokantaan.
Kun menemme vetämään tietokannasta työntekijöiden luettelo, olisi luonnollista pyytää jokaisen henkilön nimi ja nimensä. Nämä tiedot tallennetaan kuitenkin useisiin tietokantataulukoihin, joten niitä voi hakea vain käyttämällä JOIN-kyselyä, joka edellyttää olemassa olevia suhteita taulukoiden välillä.
Kun tarkastellaan taulukkojen rakennetta, kentän, joka määrittelee suhde, on luultavasti ilmeinen - Position ID -kenttä. Jokaisella työntekijällä voi olla vain yksi asema ja tämä asema tunnistetaan sijoittamalla Position ID positiotaulukon vastaavaan merkintään. Sen lisäksi, että positio-taulukon ensisijainen avain on tässä esimerkissä, Position ID -kenttä on myös ulkomaalainen avain Työntekijöiden taulukosta Positions-taulukkoon. Tietokanta voi tämän jälkeen käyttää tätä kenttää korreloimaan tietoja useista taulukoista ja varmistamaan, että kaikki muutokset tai lisäykset tietokantaan edelleen ohjaavat viitteellistä eheyttä .
Kun olet tunnistanut vieraan avaimen, voit mennä eteenpäin ja vetää haluamasi tiedot tietokannasta seuraavan kyselyn avulla:
Ulkomaisten avainten luominen SQL Serverissa
Teknisesti, sinun ei tarvitse määritellä suhdetta nimenomaisesti, jotta pystyt tekemään edellä mainitun kaltaisia kyselyitä. Jos kuitenkin määrität nimenomaan suhteen ulkomaisen avaimen rajoituksen avulla, tietokanta pystyy tekemään joitain siivoustyötä sinulle:
- Kun lisäät uuden tietueen Työntekijät-taulukkoon, tietokanta varmistaa, että annettava Position-tunnus on positiivisen taulukon kelvollinen ensisijainen avain .
- Jos muutat Position ID positiot-taulukossa, tietokanta voi suorittaa vaaditut päivitykset Työntekijät-taulukkoon johdonmukaisuuden säilyttämiseksi.
- Tietokanta voi suojata sijainnin poistamisen vaikutusta kohdistustaulukosta joko kieltäytymällä poistamasta asemaa vastaavilla työntekijärekistereillä tai suorittaen kaikkien asiaan liittyvien työntekijöiden vaiheittaisen poiston.
Näin voit luoda ulkomaisen avaimen SQL Server:
ALTER TABLE Työntekijät ADD FOREIGN KEY (Position ID) REFERENSSIT Position (Position ID)Voit myös luoda vieraan avaimen, kun luot taulukon lisäämällä lausekkeen:
ULKOMAISET AVAIN REFERENSSIT Sijoitukset (Position ID)vierasavaimen sarakkeen sarakkeen määritelmän loppuun.