Eräs hyvän tietokantasuunnittelun tavoitteista on poistaa tarpeettomat tiedot (kaksoiskappaleet). Voit toteuttaa tämän jakamalla tiedot moneen aihekohtaiseen taulukkoon, jolloin jokainen tieto esitetään vain kerran. Sen jälkeen annat Access keinon yhdistää jaetut tiedot – voit tehdä tämän sijoittamalla yhteisiä kenttiä toisiinsa liittyviin taulukoihin. Jotta osaisit tehdä tämän vaiheen oikein, sinun täytyy kuitenkin ymmärtää taulukoiden väliset yhteydet ja määrittää ne tietokantaan.
Sisältö
Johdanto
Kun olet luonut taulukon jokaiselle tietokannan aiheelle, sinun on annettava Access tapa yhdistää tiedot tarvittaessa uudelleen. Voit tehdä sen sijoittamalla yhteisiä kenttiä toisiinsa liittyviin taulukoihin ja määrittämällä taulukoiden välille yhteyksiä. Sen jälkeen voit luoda kyselyjä, lomakkeita ja raportteja, jotka näyttävät tietoja useista taulukoista samalla kertaa. Esimerkiksi tässä esitetty lomake sisältää useista taulukoista haettuja tietoja:
1. Tämän lomakkeen tiedot ovat Asiakkaat-taulukosta...
2. ...Tilaukset-taulukosta...
3. ...Tuotteet-taulukosta...
4. ...ja Tilaustiedot-taulukosta.
Asiakkaan nimi haetaan Laskun maksaja -ruutuun Asiakkaat-taulukosta, tilaustunnuksen ja tilauspäivän arvot tulevat Tilaukset-taulukosta, tuotteen nimi Tuotteet-taulukosta sekä yksikköhinnan ja määrän arvot Tilaustiedot-taulukosta. Nämä taulukot on linkitetty toisiinsa useilla tavoilla, jotta niiden tiedot saadaan tuotua lomakkeeseen.
Edellisessä esimerkissä taulukoiden kentät täytyy järjestää siten, että ne näyttävät samaan tilaukseen liittyvät tiedot. Tämä toteutetaan taulukkoyhteyksillä. Taulukkoyhteys perustuu avainkentissä, yleensä taulukoiden samannimisissä kentissä, olevien toisiaan vastaavien tietojen löytämiseen. Yleensä nämä toisiaan vastaavat kentät ovat toisen taulukon perusavain, joka määrittää jokaiselle tietueelle yksilöllisen tunnisteen, sekä toisen taulukon viiteavain. Esimerkiksi työntekijät voidaan yhdistää tilauksiin, joista he ovat vastuussa, luomalla yhteys Työntekijät- ja Tilaukset-taulukoiden Työntekijän tunnus -kenttien välille.
1. Työntekijän tunnus on molemmissa taulukoissa perusavaimena...
2. ...ja viiteavaimena.
Taulukoiden väliset yhteystyypit
Access on kolmenlaisia taulukoiden yhteyksiä.
-
Yksi-moneen-yhteys
Käytetään esimerkiksi tilausten seurantatietokantaa, joka sisältää Asiakkaat-taulukon ja Tilaukset-taulukon. Asiakas voi tehdä haluamansa määrän tilauksia. Siitä seuraa, että Tilaukset-taulukossa voi olla useita tuotteita yhtä Asiakkaat-taulukon asiakasta kohti. Asiakkaat-taulukon ja Tilaukset-taulukon välinen yhteys on siten yksi-moneen-yhteys.
Voit esittää yksi-moneen-yhteyden tietokannan rakenteessa ottamalla perusavaimen yhteyden yksi-puolelta ja lisäämällä sen lisäkenttänä tai -kenttinä taulukkoon yhteyden monta-puolelle. Tässä tapauksessa voit esimerkiksi lisätä uuden kentän, eli tunnuksen kentän Asiakkaat-taulukosta Tilaukset-taulukkoon ja antaa sen nimeksi Asiakastunnus. Access voi sitten etsiä oikean asiakkaan kullekin tilaukselle Tilaukset-taulukon Asiakastunnus-numerolla.
-
Monta-moneen-yhteys
Tarkastellaan nyt Tuotteet-taulukon ja Tilaukset-taulukon välistä suhdetta. Yksi tilaus saattaa sisältää useita tuotteita. Toisaalta taas yksi tuote voi esiintyä monessa tilauksessa. Siten Tilaukset-taulukon jokaista tietuetta kohti voi olla useita tietueita Tuotteet-taulukossa. Lisäksi Tuotteet-taulukon jokaista tietuetta kohti voi olla useita tietueita Tilaukset-taulukossa. Tällaista yhteyttä kutsutaan monta-moneen-yhteydeksi. Huomaa, että taulukoiden välisten monta-moneen-yhteyden havaitseminen edellyttää yhteyden molempien puolien huomioon ottamista.
Monta-moneen-yhteyden esittämistä varten on luotava kolmas taulukko, joka jakaa monta-moneen-yhteyden kahdeksi yksi-moneen-yhteydeksi. Perusavain lisätään kummastakin taulukosta kolmanteen taulukkoon. Tämän seurauksena kolmas taulukko kirjaa yhteyden jokaisen esiintymän. Esimerkiksi Tilaukset- ja Tuotteet-taulukoiden välillä on monta-moneen-yhteys, joka on määritetty luomalla kaksi yksi-moneen-yhteyttä Tilaustiedot-taulukkoon. Yhdessä tilauksessa voi olla useita tuotteita, ja jokainen tuote voi olla useissa tilauksissa.
-
Yksi-yhteen-yhteys
Yksi-yhteen-yhteydessä ensimmäisen taulukon jokaista tietuetta voi vastata vain yksi tietue toisessa taulukossa, ja jokaista toisen taulukon tietuetta voi vastata vain yksi tietue ensimmäisessä taulukossa. Tällainen yhteys ei ole yleinen, koska yleensä tällä tavalla yhdistetyt tiedot ovat samassa taulukossa. Yksi-yhteen-yhteyttä voidaan käyttää, kun halutaan jakaa taulukko, jossa on monta kenttää, eristää osa taulukosta tietoturvan takia tai tallentaa tietoja, jotka koskevat vain päätaulukon alijoukkoa. Kun havaitset tällaisen yhteyden, kummallakin taulukolla on oltava yhteinen kenttä.
Miksi taulukkoyhteyksiä luodaan?
Taulukoiden yhteydet voidaan luoda Yhteydet-ikkunassa tai vetämällä kenttä Kenttäluettelo-ruudusta. Access päättää taulukoiden yhteyksien avulla, miten taulukot liitetään, kun niitä on käytettävä tietokantaobjektissa. On useita syitä sille, miksi taulukoiden yhteydet pitäisi luoda ennen muiden tietokantaobjektien, kuten lomakkeiden, kyselyjen ja raporttien, luomista.
-
Taulukoiden yhteydet antavat tietoja kyselyjen suunnittelua varten
Kun halutaan käsitellä useamman kuin yhden taulukon tietueita, yleensä on luotava taulukot liittävä kysely. Kysely toimii etsimällä ensimmäisen taulukon perusavainkentän arvoja vastaavan toisen taulukon viiteavainkentän. Jos haluat esimerkiksi palauttaa rivit, joilla on lueteltu jokaisen asiakkaan kaikki tilaukset, muodosta kysely, joka liittää Asiakkaat-taulukon Tilaukset-taulukkoon Asiakastunnus-kentän perusteella. Voit määrittää liitettävät kentät manuaalisesti Yhteydet-ikkunassa. Jos taulukoiden välille on jo määritetty yhteys, Access antaa oletusliitokseen aiemmin luodun taulukkosuhteen perusteella. Lisäksi jos käytät jotakin ohjattua kyselytoimintoa, Access käyttää jo määrittämistäsi taulukoiden yhteyksistä keräämiään tietoja esittääkseen sinulle tietoon perustuvia valintoja ja esiasettaakseen ominaisuusasetuksia asianmukaisilla oletusarvoilla.
-
Taulukoiden yhteydet antavat tietoja lomakkeiden ja raporttien suunnittelua varten
Kun suunnittelet lomaketta tai raporttia, Access käyttää jo määrittämistäsi taulukoiden yhteyksistä keräämiään tietoja esittääkseen sinulle tietoon perustuvia valintoja ja esiasettaakseen ominaisuusasetuksia asianmukaisilla oletusarvoilla.
-
Taulukoiden yhteydet ovat perusta, johon voit pakottaa viite-eheyden ja estää yhteydettömät tietueet tietokannassa. Yhteydetön tietue on sellaiseen tietueeseen viittaava tietue, jota ei ole olemassa. Se voi olla esimerkiksi tilaustietue, joka viittaa olemattomaan asiakastilaukseen.
Kun tietokanta suunnitellaan, tiedot jaetaan taulukoihin, joista jokaisella on perusavain. Sen jälkeen liittyviin taulukoihin lisätään viiteavaimet, jotka viittaavat näihin perusavaimiin. Nämä viiteavainten ja perusavaimen parit muodostavat taulukoiden yhteyksien ja useita taulukoita käyttävien kyselyjen perustan. On tärkeää, että viiteavaimen perusavainviittaukset pysyvät synkronoituina. Viite-eheyden avulla varmistetaan, että viittaukset pysyvät synkronoituina, ja viite-eheys on riippuvainen taulukoiden yhteyksistä.
Viite-eheyden perusteet
Kun tietokanta suunnitellaan, tiedot jaetaan useisiin aihekohtaisiin taulukoihin, jotta vältyttäisiin tarpeettomilta tiedoilta. Anna sitten Access tapa yhdistää tiedot sijoittamalla yhteisiä kenttiä toisiinsa liittyviin taulukoihin. Jos haluat esimerkiksi esittää yksi-moneen-yhteyden, otat perusavaimen yksi-puolen taulukosta ja lisäät sen lisäkenttänä monta-puolen taulukkoon. Jos haluat yhdistää tiedot, Access ottaa arvon monta-taulukosta ja hakee vastaavan arvon "yksi"-taulukosta. Näin monta-puolen taulukon arvot viittaavat vastaaviin arvoihin yksi-puolen taulukossa.
Oletetaan, että Lähettäjät- ja Tilaukset-taulukoiden välillä on yksi-moneen-yhteys, ja haluat poistaa lähettäjän. Jos lähettäjällä, jonka haluat poistaa, on tilauksia Tilaukset-taulukossa, näistä tilauksista tulee orpoja, kun lähettäjän tietue poistetaan. Tilaukset sisältävät kuitenkin edelleen lähettäjän tunnuksen, mutta tunnus ei ole enää voimassa, koska tietuetta, johon se viittaa, ei enää ole.
Viite-eheyden tarkoituksena on estää orvot ja pitää viittaukset synkronoituina, jotta tällaista hypoteettista tilannetta ei koskaan esiintyisi.
Viite-eheys säilytetään ottamalla se käyttöön taulukon yhteyttä varten. Kun se on pakotettu, Access hylkää kaikki toiminnot, jotka rikkovat kyseisen taulukon yhteyden viite-eheyttä. Tämä tarkoittaa, että Access hylkää sekä päivitykset, jotka muuttavat viittauksen kohdetta, että poistot, jotka poistavat viittauksen kohteen. On mahdollista, että sinulla on täysin kelvollinen tarve muuttaa sellaisen lähettäjän perusavainta, jolla on tilauksia Tilaukset-taulukossa. Tällaisissa tapauksissa tarvitset todella, että Access päivittää automaattisesti kaikki tehostetut rivit osana yhtä toimintoa. Näin Access varmistaa, että päivitys on suoritettu kokonaan, jotta tietokanta ei jää epäyhtenäiseen tilaan, jossa jotkin rivit on päivitetty ja osa ei. Tästä syystä Access tukee Johdannaispäivitykseen liittyviä kenttiä -vaihtoehtoa. Kun säilytät viite-eheyden ja valitset Johdannaispäivitykseen liittyvät kentät -vaihtoehdon ja päivität sitten perusavaimen, Access päivittää automaattisesti kaikki perusavaimeen viittaavat kentät.
On myös mahdollista, että rivi ja kaikki siihen liittyvät tietueet täytyy poistaa, haluttaessa poistaa esimerkiksi lähettäjän tietue ja kaikki kyseiseen lähettäjään liittyvät tilaukset. Tästä syystä Access tukee Johdannaispoistoon liittyviä tietueita - asetusta. Kun säilytät viite-eheyden ja valitset Johdannaispoistoon liittyvät tietueet -vaihtoehdon ja poistat sitten tietueen yhteyden perusavaimen puolelta, Access poistaa automaattisesti kaikki perusavaimeen viittaavat tietueet.
Taulukon yhteyksien tarkasteleminen
Voit tarkastella taulukon yhteyksiä valitsemalla Tietokantatyökalut-välilehdessä Yhteydet. Yhteydet-ikkuna avautuu, ja siinä näkyvät olemassa olevat yhteydet. Jos taulukoiden yhteyksiä ei ole määritetty ja avaat Yhteydet-ikkunan ensimmäistä kertaa, Access kehottaa lisäämään ikkunaan taulukon tai kyselyn.
Yhteydet-ikkunan avaaminen
-
Valitse Tiedosto, valitse Avaa ja valitse sitten tietokanta ja avaa se.
-
Valitse Tietokantatyökalut-välilehden Yhteydet-ryhmästä Yhteydet.
-
Valitse Yhteyksien rakennenäkymä -välilehden Yhteydet-ryhmästäKaikki yhteydet.Tämä näyttää kaikki tietokannan määritetyt yhteydet. Huomaa, että piilotetut taulukot (taulukot, joiden Piilotettu-valintaruutu on valittuna taulukon Ominaisuudet-valintaikkunassa) ja niiden yhteydet eivät näy, ellei Näytä piilotetut objektit -valintaruutu ole valittuna Siirtymisasetukset-valintaikkunassa.
Taulukon yhteys esitetään taulukoiden väliin piirretyllä yhteysviivalla Yhteydet-ikkunassa. Yhteys, joka ei säilytä viite-eheyttä, näkyy yhteyttä tukevien yhteisten kenttien välissä olevana ohuena viivana. Kun valitset yhteyden napsauttamalla sen viivaa, viiva paksunee sen merkiksi, että se on valittu. Jos säilytät viite-eheyden tätä yhteyttä varten, viiva näyttää paksummalta kummassakin päässä. Lisäksi yhteyden toisella puolella viivan paksun pään yläpuolella näkyy numero 1 ja toisella puolella viivan paksun pään yläpuolella näkyy äärettömän symboli (∞).
Kun Yhteydet-ikkuna on aktiivinen, seuraavat komennot ovat käytettävissä valintanauhassa:
Yhteyksien rakennenäkymä -välilehden Työkalut-ryhmässä:
-
Muokkaa yhteyksiä Avaa Muokkaa yhteyksiä -valintaikkunan. Kun valitset yhteysviivan, voit muuttaa taulukon yhteyttä valitsemalla Muokkaa yhteyksiä. Voit myös kaksoisnapsauttaa yhteysviivaa.
-
Tyhjennä asettelu Poistaa kaikki taulukot ja yhteydet Yhteydet-ikkunan näytöstä. Huomaa, että tämä komento ainoastaan piilottaa taulukot ja yhteydet; se ei poista niitä kokonaan.
-
Yhteysraportti Luo raportin, joka näyttää tietokannassa olevat taulukot ja yhteydet. Raportissa näkyvät vain ne taulukot ja yhteydet, joita ei ole piilotettu Yhteydet-ikkunassa.
Yhteyksien rakennenäkymä -välilehden Yhteydet-ryhmässä:
-
Taulukoiden lisääminen Ottaa taulukoiden valinnan näkyviin Yhteydet-ikkunassa.
-
Piilota taulukko Piilottaa valitun taulukon Yhteydet-ikkunassa.
-
Suorat yhteydet Näyttää kaikki valitun taulukon yhteydet ja yhteydessä olevat taulukot Yhteydet-ikkunassa, jos ne eivät ole vielä näkyvissä.
-
Kaikki yhteydet Näyttää kaikki tietokannassa olevat yhteydet ja yhteydessä olevat taulukot Yhteydet-ikkunassa. Huomaa, että piilotettuja taulukoita (taulukoita, joita varten on valittu Piilotettu-valintaruutu taulukon Ominaisuudet-valintaikkunassa) ja niiden yhteyksiä ei näytetä, ellei Näytä piilotetut objektit ole valittuna Siirtymisasetukset-valintaikkunassa.
-
Sulje Sulkee Yhteydet-ikkunan. Jos teit muutoksia Yhteydet-ikkunan asetteluun, ohjelma kysyy, haluatko tallentaa tekemäsi muutokset.