Merkonomin |
Microsoft Access -tietokantaohjelman perusteet |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
6 USEAN TAULUN RELAATIOTIETOKANTARelaatiotietokantojen yksi keskeisiä periaatteita on se, että yhteen tauluun tallennetaan vain saman tyyppisiin kohteisiin liittyviä tietoja. Samaan tauluun ei siis tallenneta esim. asiakkaiden tietoja ja tilausten tietoja vaan asiakkaiden tiedot tallennetaan yhteen tauluun ja tilaustiedot toiseen tauluun. Toinen periaate on se, että tietty tieto tallennetaan vain yhteen tauluun. Näin tietokannan koko saadaan pidetyksi pienempänä ja ennen kaikkea vähennetään työtä ja varmistutaan siitä, että tietokannassa ei ole ristiriitaisia tietoja. Esim. asiakkaan osoite tallennetaan vain asiakastauluun, ei tilaustietojen yhteyteen tilaustauluun. Monissa tilanteissa tarvitaan tietoa useammasta taulusta. Esim. laskun tuottamista varten tarvitaan asiakkaan nimi- ja osoitetiedot asiakastaulusta, tiedot tilauksista ovat omassa taulussaan sekä tuotteiden hinta- ja muut tiedot omassa taulussaan. Jotta laskuun saadaan oikean asiakkaan nimi-, osoite- ja muut tiedot, tilaus- ja asiakastaulun välillä pitää olla jonkinlainen yhteys. Tämä yhteys luodaan viiteavaimen avulla. Ennen kuin tarkastelemme yhteyksiä ja avaimia lisää täydennämme tietokantaamme uusilla taulukoilla. Luo tietokantaan alla olevat taulukot. Määritä kunkin taulukon ensimmäinen kenttä perusavaimeksi. Toimittajat
Asiakkaat
Tuoteryhmät
Ostot
Myynnit
Kirjoita Tuoteryhmät-taulukkoon alla olevat tiedot
Kirjoita myös toimittajien tiedot. Alla ovat numerot ja nimet. Keksi itse muut tiedot.
6.1 Taulujen väliset yhteydetRelaatiotietokannan periaatteisiin kuuluu, että tietty tieto tallennetaan vain yhteen tauluun. Monessa tilanteessa tietoja on kuitenkin haettava useammasta taulusta. Jotta tämä onnistuisi, tauluissa tarvitaan yhteisiä kenttiä, joiden avulla taulujen välille luodaan yhteys. Periaatetta, että tietty tieto tallennetaan vain yhteen tauluun, ei siis voida täysin toteuttaa. Avainkenttien tiedot ovat usein kahdessa tai useammassa taulussa. Esim. tietokantamme Tuotteet-taulukossa on kenttä TuoteNro ja Myynnit-taulukossa kenttä Tuote. Molemmat kentät sisältävät tuotteiden numeroita. Jos kahdella taululla on edellisen esimerkin tapaan yhteinen kenttä, taulujen välille voidaan luoda yhteys. Tämän yhteyden avulla voidaan esim. laskulle hakea Myynnit-taulukossa olevien tietojen lisäksi myydyn tuotteen nimi ja hinta Tuotteet-taulukosta. 6.1.1 ViiteavainEdellisessä esimerkissämme Myynnit-taulukkoa voidaan kutsua viittaavaksi tauluksi eli lapsitauluksi. Tuotteet-taulukko on viitattava taulu eli äititaulu. Sitä lapsitaulun kenttää, jolla viitataan toisen taulun tietueeseen (riviin), kutsutaan viiteavaimeksi. Myynnit-taulukon Tuote-kenttä toimii siis viiteavaimena. Viittauksen kohteena äititaulussa on melkein aina perusavainkenttä. Tuotteet-taulukossa se on TuoteNro-kenttä. Jotta yhteyden muodostaminen onnistuu, täytyy yhteisten kenttien tietotyypin olla sama. Edellisessä sekä Tuotteet-taulukon TuoteNro-kentän että Myynnit-taulukon Tuote-kentän tietotyyppi on kokonaisluku. Kenttien nimet voivat olla samat, mutta niiden ei tarvitse välttämättä olla. Relaatiotietokannan viite-eheyssäännön mukaan viiteavaimen tulee viitata johonkin äititaulun olemassaolevaan riviin tai viiteavaimen arvon tulee olla tyhjä. Tietokannassamme tämä tarkoittaa esim. sitä, että Myynnit-taulukkoon voidaan syöttää vain sellainen tuotenumero, joka on Tuotteet-taulukossa. Microsoft Access voidaan "määrätä" valvomaan viite-eheyden säilymistä. 6.1.2 YhteystyypitKahden kohteen ja vastaavasti kahden taulun välinen yhteys voi olla yksi-yhteen-yhteys, yksi-moneen-yhteys tai monta-moneen-yhteys. Tässä opintojaksossa luomme vain yksi-moneen-yhteyksiä. Yksi-moneen-yhtyes tarkoittaa sitä, että yhtä viitattavan taulun tietuetta vastaa monta viittaavan taulun tietuetta, mutta yhtä viittaavan taulun tietuetta vastaa vain yksi viitattavan taulun tietue. Esim. jos otamme Tuotteet-taulukosta tietyn tuotteen, sen tuotenumero voi esiintyä Myynnit-taulukossa monessa tietueessa ts. samaa tuotetta on voitu myydä monta kertaa. Jos sen sijaan otamme Myynnit-taulukon yhden tietueen ja katsomme siinä olevan tuotenumeron, voimme todeta, että sama tuotenumero esiintyy vain yhdessä tietueessa Tuotteet-taulukossa. Sanomme, että Tuotteet-taulukon ja Myynnit-taulukon välillä on yksi-moneen-yhteys (yhden suhde moneen yhteys). 6.1.3 Yhteyksien luominenLuomme seuraavaksi Jukola-tietokannan taulujen väliset yhteydet.
|