Tietokannan termi "relaatio" tai "suhde" kuvaa tapaa, jolla taulukoissa olevat tiedot ovat yhteydessä.
Tietokantojen maailmaan tulokkailla on usein vaikea nähdä eroa tietokannan ja laskentataulukon välillä. He näkevät tietoja taulukoista ja tunnustavat, että tietokantojen avulla voit organisoida ja kysellä tietoja uudella tavalla, mutta ette ymmärrä relaatiotietokantojen tietokannan datan välisten suhteiden merkitystä.
Suhteissa voit kuvata eri tietokantapöytien välisiä yhteyksiä tehokkaasti. Näitä suhteita voidaan tällöin hyödyntää tehokkaiden ristipöydäkyselyjen suorittamiseksi, joita kutsutaan liitoksiksi.
Datayhteyksien lajit
Tietokantoja on kolme erilaista, joista kukin on nimetty suhteessa taulukon rivien määrään. Kukin näistä kolmesta suhdetyypistä on kahden taulukon välissä.
- Yhden suhde syntyy, kun jokaisella taulukon ensimmäisellä taulukolla on yksi ja toinen vastaava toisessa taulukossa. Yksittäisiä suhteita käytetään harvoin, koska usein on tehokkaampaa laittaa kaikki tiedot yhteen taulukkoon. Jotkut tietokantasuunnittelijat hyödyntävät tätä suhdetta luomalla taulukoita, jotka sisältävät toisen taulukon tietolähteen.
- Yksi-to-many-suhteet ovat yleisimpiä tietokantasuhteita. Ne tapahtuvat, kun taulukon A jokainen tietue vastaa yhtä tai useampaa tietuetta taulukossa B, mutta joka taulukon B jokainen tietue vastaa vain yhtä tietuetta taulukossa A. Esimerkiksi opettajien ja oppilaiden taulukon välinen suhde peruskoulussa tietokanta olisi todennäköisesti monen suhde, koska jokaisella opiskelijalla on vain yksi opettaja, mutta jokaisella opettajalla on useita opiskelijoita. Tämä monimuotoinen muotoilu poistaa kaksinkertaisen datan poistamisen.
- Monien välisten suhteiden esiintyminen tapahtuu, kun jokainen taulukon A mukainen tietue vastaa yhtä tai useampaa tietuetta taulukossa B ja jokainen taulukon taulukon B mukainen kirjaus vastaa yhtä tai useampaa tietuetta taulukossa A. Esimerkiksi opettajien ja kurssien välinen suhde taulukko olisi todennäköisesti monesta monesta, koska jokainen opettaja voi opettaa useamman kuin yhden kurssin, ja jokaisella kurssilla voi olla enemmän kuin yksi opettaja.
Itseään viittaavat suhteet: erityinen tapaus
Itse-viittaavat suhteet tapahtuvat, kun kyseessä on vain yksi taulukko. Yksi yleinen esimerkki on Työntekijät-taulukko, joka sisältää tietoja kunkin työntekijän ohjaajasta. Jokainen ohjaaja on myös työntekijä, jolla on oma ohjaaja. Tällöin on olemassa yksi-monta itseään viittaavaa suhdetta, sillä jokaisella työntekijällä on yksi ohjaaja, mutta jokaisella ohjaajalla voi olla enemmän kuin yksi työntekijä.
Suhteiden luominen ulkomaisten avainten kanssa
Luodaan yhteydet taulukoiden välille määrittämällä vieras avain. Tämä avain kertoo relaatiotietokannasta, kuinka taulut liittyvät. Monissa tapauksissa taulukon A sarakkeessa on ensisijaisia avaimia, joihin viitataan taulukosta B.
Tarkastele uudelleen esimerkkiä opettajien ja opiskelijoiden taulukoista. Opettajat-taulukossa on vain tunnus, nimi ja kurssi-sarake:
InstructorID | Opettajan nimi | kurssi |
---|---|---|
001 | John Doe | Englanti |
002 | Jane Schmoe | Matematiikka |
Opiskelija-taulukossa on tunnus, nimi ja vieras avainsarja:
Opiskelijanumero | Opiskelijan nimi | Teacher_FK |
---|---|---|
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
Opiskelija-taulukon sarake Teacher_FK viittaa ohjaajan ensisijaiseen avainarvoon Opettajat-taulukossa.
Usein tietokannan suunnittelijat käyttävät sarakkeessa "PK" tai "FK" tunnistamaan helposti ensisijaisen avaimen tai ulkomaisen avainsarakkeen.
Huomaa, että nämä kaksi taulukkoa havainnollistavat yhden ja monia suhteita opettajien ja opiskelijoiden välillä.
Suhteet ja viiteherkkyys
Kun olet lisännyt vieraan avaimen taulukkoon, voit luoda tietokantarajoituksen, joka ohjaa näiden kahden taulukon välistä viite-eheyttä . Näin taulukoiden väliset suhteet säilyvät yhtenäisinä. Kun yhdellä taulukolla on vieras avain toiseen taulukkoon, viitekevyyden eheyden käsite ilmoittaa, että taulukon B ulkomaisen avainarvon on viitattava taulukossa A olevaan olemassa olevaan tietueeseen.
Suhteiden toteuttaminen
Tietokannasta riippuen toteutat eri taulukoiden välisiä suhteita. Microsoft Access tarjoaa ohjatun toiminnon, jonka avulla voit helposti yhdistää taulukoita ja myös viitataedellytyksen.
Jos kirjoitat suoraan SQL: ää, luo ensin taulukko Opettajat ja julista ID-sarake ensisijaiseksi avaimeksi:
LUOVAA TAULUKKO Opettajat (
InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Opettaja_Name VARCHAR (100),
Kurssi VARCHAR (100)
);
Kun luot opiskelijan taulukon, ilmoitat, että Teacher_FK-sarake on vieraana avain, joka viittaa InstructorID-sarakkeeseen Opettajien taulukossa:
LUETTELO TAULUKKO Opiskelijat (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Opiskelijan nimi VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) REFERENSSIT Opettajat (InstructorID))
);
Yhteyksien käyttäminen liittymiseen
Kun olet luonut yhden tai useamman suhteesi tietokantaan, voit hyödyntää tehoa käyttämällä SQL JOIN-kyselyjä yhdistääkseen tietoja useista taulukoista. Yleisin liittymismalli on SQL INNER JOIN, tai yksinkertainen liittymä. Tämäntyyppinen liittymä palauttaa kaikki tietueet, jotka täyttävät liittymätilan useista taulukoista. Esimerkiksi tämä JOIN -ehto palauttaa opiskelijanimen, opettajan nimen ja kurssin, jossa oppilaan taulukon vierasavaava vastaa Teachers-taulukon ensisijaista avainta:
SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
Opiskelijoilta
INNER JOIN Opettajat
ON Students.Teacher_FK = Teachers.InstructorID;
Tämä lausuma tuottaa tällaisen taulukon:
Palautettu taulukko SQL-lausekkeesta
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglantiBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglanti