Oikein suunniteltu tietokanta antaa ajan tasalla olevat ja tarkat tiedot. Koska oikea suunnittelu on tärkeää tavoitteiden saavuttamiseksi tietokannan parissa työskenneltäessä, hyvää rakennetta koskevien periaatteiden opiskelemiseen kannattaa käyttää aikaa. Loppujen lopuksi tuloksena on todennäköisesti tietokanta, joka täyttää tarpeesi ja mukautuu helposti muutoksiin.

Tämä artikkeli sisältää ohjeet tietokannan työpöytäversion suunnitteluun. Opit päättämään, mitä tietoja tarvitset, miten tiedot jaetaan sopiviin taulukoihin ja sarakkeisiin ja miten nämä taulukot liittyvät toisiinsa. Tämä artikkeli kannattaa lukea ennen ensimmäisen työpöytätietokannan luomista.

Tärkeää:  Access sisältää rakenneominaisuuksia, joiden avulla voit luoda tietokantasovelluksia verkkoa varten. Monet rakenteeseen liittyvät osat ovat erilaisia, kun tietokantaa suunnitellaan verkkoa varten. Tässä artikkelissa ei käsitellä verkon tietokantasovellusten rakennetta. Lisätietoja verkkotietokannoista on artikkelissa Internetin kautta jaettavan tietokannan luominen.

Tämän artikkelin sisältö


Tietokantaan liittyviin termeihin tutustuminen

Access järjestää tietoja taulukoiksi, eli rivien ja sarakkeiden luetteloiksi, jotka muistuttavat tilikirjaa tai laskentataulukkoa. Yksinkertaisessa tietokannassa saattaa olla vain yksi taulukko. Useimmissa tietokannoissa niitä tarvitaan useampia. Käytössä voi olla esimerkiksi taulukko, johon tallennetaan tietoa tuotteista, toinen taulukko, johon tallennetaan tietoja tilauksista, ja kolmas taulukko, joka sisältää tietoja asiakkaista.

Kuva, jossa on kolme taulukkoa taulukkonäkymissä

Kutakin riviä kutsutaan tietueeksi jajoka sarakkeeksi eli kentälle. Tietue on merkityksellinen ja yhdenmukainen tapa yhdistää tietoja jostakin kohteesta. Kenttä on yksittäinen tietokohde eli kohdetyyppi, joka näkyy jokaisessa tietueessa. Esimerkiksi Tuotteet-taulukossa jokaisella rivillä, eli jokaisessa tietueessa, olisi tietoja yhdestä tuotteesta. Jokaisessa sarakkeessa, eli kentässä, olisi kyseistä tuotetta koskeva tietyntyyppinen tieto, kuten nimi tai hinta.

Sivun alkuun

Mikä on hyvä tietokannan rakenne?

Tietyt periaatteet ohjaavat tietokannan suunnitteluprosessia. Ensimmäinen periaate on, että tietojen kaksoiskappaleet (eli tarpeettomat tiedot) ovat virheelliset, koska ne hukkaavat tilaa ja lisäävät virheiden ja epäyhtenäisyyksien todennäköisyyttä. Toinen periaate on, että tietojen oikeus ja täydellisyys ovat tärkeitä. Jos tietokannassa on virheellisiä tietoja, myös tietokannasta tietoja saavat raportit sisältävät virheellisiä tietoja. Tämän vuoksi näihin raportteihin perustuvat päätökset näytetään väärillä muodoilla.

Hyvän tietokannan rakenne on sellainen, joka

  • jakaa tiedot aihepohjaisiin taulukoihin päällekkäisten tietojen vähentämiseksi

  • tarjoaa Accessille sen tarvitsemat tiedot, jotta se voi liittää taulukoissa olevat tiedot yhteen tarpeen mukaan

  • auttaa tietojen tarkkuuden ja eheyden tukemisessa ja varmistamisessa

  • vastaa tietojen käsittely- ja raportointitarpeita.

Sivun alkuun

Suunnitteluprosessi

Suunnitteluprosessi koostuu seuraavista vaiheista:

  • Määritä tietokantasi tarkoitus    

    Tämä auttaa valmistautumaan muihin vaiheisiin.

  • Etsi ja järjestä tarvittavat tiedot     

    Kerää kaikentyyppiset tiedot, jotka haluat tallentaa tietokantaan, kuten tuotteiden nimet ja tilausnumerot.

  • Jaa tiedot taulukoihin    

    Jaa tiedot pääkohteisiin tai -aiheisiin, kuten tuotteisiin tai tilauksiin. Jokaisesta aiheesta tulee taulukko.

  • Muuta tietokohteet sarakkeiksi    

    Määritä, mitä tietoja haluat tallentaa mihinkin taulukkoon. Jokaisesta kohteesta tulee kenttä, joka näkyy taulukossa sarakkeena. Työntekijätaulukossa voi olla esimerkiksi kentät Sukunimi ja Aloittanut.

  • Määritä perusavaimet    

    Valitse jokaisen taulukon perusavain. Perusavain on sarake, jolla yksilöidään kukin rivi. Se voi olla esimerkiksi Tuotetunnus tai Tilaustunnus.

  • Määritä taulukoiden yhteydet    

    Katso taulukoita ja päätä, miten taulukossa olevat tiedot liittyvät toisen taulukon tietoihin. Lisää tarvittaessa taulukoihin kenttiä tai luo uusia taulukoita yhteyksien selventämiseksi.

  • Tarkenna rakennetta    

    Analysoi rakenne virheiden varalta. Luo taulukoita ja lisää esimerkkitietoja tietueisiin. Katso, saatko taulukoista haluamasi tulokset. Muokkaa rakennetta tarvittaessa.

  • Käytä normalisointisääntöjä    

    Käytä normalisointisääntöjä, jotta näet, onko taulukoiden rakenne oikea. Muokkaa taulukoita tarvittaessa.

Sivun alkuun

Tietokannan tarkoituksen määrittäminen

Tietokannan tarkoitus kannattaa kirjata muistiin paperille , sen tarkoitus, käyttötark kohta ja kuka sitä käyttää. Jos tietokanta on pieni esimerkiksi kotiyritystä varten, voit kirjoittaa jotain yksinkertaista, kuten "Asiakastietokanta säilyttää asiakastietojen luettelon postitus- ja raporttien tuottamiseen". Jos tietokanta on monimutkaisempi tai sitä käyttää monet henkilöt, kuten usein yritysympäristössä, tarkoitus voi olla helposti kappale tai enemmän, ja sen tulisi sisältää, milloin ja miten kukin henkilö käyttää tietokantaa. Ideana on oltava hyvin kehittynyt toiminta-ajatus, johon voidaan viitata koko suunnitteluprosessin ajan. Kun käytät tällaista lauseketta, voit keskittyä päätöksiisi.

Sivun alkuun

Tarvittavien tietojen etsiminen ja järjestäminen

Aloita olemassa olevista tiedoista, jotta löydät tarvittavat tiedot ja voit järjestää ne. Voi esimerkiksi olla, että tallennat tällä hetkellä ostotilaukset tilikirjaan tai säilytät asiakastietoja arkistokaappiin säilöttävissä paperilomakkeissa. Kerää kyseiset asiakirjat ja luetteloi jokainen näytettävä tietotyyppi (esimerkiksi jokainen lomakkeessa täytettävä ruutu). Jos valmiita lomakkeita ei ole, mieti, millaisen lomakkeen suunnittelisit asiakastietojen tallentamiseen. Mitä tietoja laittaisit lomakkeeseen? Mitä täytettäviä ruutuja loisit? Tunnista ja luettele nämä kohteet. Oletetaan esimerkiksi, että pidät asiakasluetteloa kortistokorteilla. Kortteja tarkastelemalla saatat huomata, että jokaisessa kortissa on asiakkaan nimi, osoite, kaupunki, osavaltio, postinumero ja puhelinnumero. Niistä jokainen voi vastata taulukon saraketta.

Kun valmistelet luetteloa, älä yritä saada siitä täydellistä heti kerralla. Luetteloi sen sijaan jokainen kohta, joka tulee mieleen. Jos joku muukin käyttää tietokantaa, pyydä myös häneltä ideoita. Voit hienosäätää luetteloa myöhemmin.

Mieti seuraavaksi tietokannasta luotavia raportti- tai postitustyyppejä. Voit esimerkiksi luoda tuotteen myyntiraportin, jossa myynti näkyy alueittain, tai varaston yhteenvetoraportin, jossa näkyvät tuotevaraston määrät. Ehkä tarpeena on myös luoda asiakkaille lähetettäviä kirjeitä, joissa ilmoitetaan myyntitapahtumasta tai tarjotaan etuja. Suunnittele raportti mielessäsi ja kuvittele, miltä se näyttäisi. Mitä tietoja laittaisit raporttiin? Luettele jokainen kohta. Toimi samoin kirjeiden ja muiden haluamiesi raporttien kohdalla.

Henkilö kuvittelemassa tuoteinventaarioraporttia

Raporttien ja postitusten miettiminen saattaa auttaa tunnistamaan tietokannassa tarvittavat kohteet. Oletetaan esimerkiksi, että annat asiakkaille mahdollisuuden vastaanottaa (tai olla vastaanottamatta) säännöllisiä sähköpostipäivityksiä ja haluat tulostaa luettelon asiakkaista, jotka ovat ilmoittaneet haluavansa vastaanottaa päivitykset. Tallennat tiedon lisäämällä asiakastaulukkoon Sähköpostin lähettäminen -sarakkeen. Voit asettaa jokaisen asiakkaan kohdalla kentän arvoksi Kyllä tai Ei.

Sähköpostiviestien lähettäminen asiakkaille tuo mukanaan toisen tallennettavan kohdan. Kun tiedät, että asiakas haluaa vastaanottaa sähköpostiviestejä, sinulla on myös oltava sähköpostiosoite, johon viestit lähetetään. Sen vuoksi on tallennettava jokaisen asiakkaan sähköpostiosoite.

On järkevää luoda prototyyppi kustakin raportista tai tulosluettelosta ja miettiä, mitä kohteita raportin tuottamiseen tarvitaan. Kun esimerkiksi tarkastelet lomakkeen kirjainta, mielessä voi tulla muutama asia. Jos haluat lisätä tervehdystä esimerkiksi "Mr"-, "Mrs"- tai "Ms"-merkkijonon, joka aloittaa tervehdystapahtuman, sinun on luotava tervehdyskohde. Saatat myös yleensä aloittaa kirjaimen "Hyvä mr. Smith", älä "Hyvä." Mr. Sylvester Smith". Tämä ehdottaa, että haluat yleensä tallentaa etunimen erillään etunimestä.

Kannattaa myös muistaa, että jokainen tieto tulee purkaa pienimpiin käyttökelpoisiin osiin. Nimen ollessa kyseessä nimi puretaan kahteen osaan, etunimeen ja sukunimeen, jotta sukunimi on helposti käytettävissä. Jos raportti halutaan esimerkiksi lajitella sukunimen mukaan, asiakkaan sukunimi on kätevästi tallennettuna erikseen. Jos haluat lajitella tai etsiä tietoja, suorittaa laskutoimituksen tai luoda raportin tietyn tiedon perusteella, sijoita kyseinen tieto omaan kenttäänsä.

Mieti kysymyksiä, joihin haluat saada vastauksen tietokannasta. Esimerkiksi kuinka monta kappaletta myit kyseistä tuotetta viime kuussa? Missä parhaat asiakkaasi asuvat? Kuka toimittaa myydyimmän tuotteesi? Näiden kysymysten ennakoiminen auttaa löytämään muut tallennettavat kohteet.

Tietojen keräämisen jälkeen olet valmis seuraavaan vaiheeseen.

Sivun alkuun

Tietojen jakaminen taulukoihin

Jos haluat jakaa tietoja taulukoiksi, valitse pääkohteet tai -aiheet. Esimerkiksi tuotemyynnin tietokannan tietojen löytämisen ja järjestämisen jälkeen alustava luettelo voi näyttää tältä:

Käsinkirjoitettuja tieto-osia, jotka on ryhmitelty aiheisiin.

Tässä näkyviä pääkohteita ovat tuotteet, toimittajat, asiakkaat ja tilaukset. Näistä neljästä taulukosta kannattaa siis aloittaa: yhdessä on tuotteiden tiedot, toisessa toimittajia koskevat tiedot, kolmannessa asiakkaiden tiedot ja neljännessä tilausten tiedot. Vaikka luettelo ei olekaan täydellinen, se on hyvä lähtökohta. Voit jatkaa luettelon tarkentamista, kunnes tuloksena on hyvin toimiva rakenne.

Alustavaa luetteloa ensimmäistä kertaa tarkasteltaessa saattaa tulla mieleen, että ne voisi kaikki laittaa yhteen taulukkoon yllä olevassa kuvassa olevien neljän taulukon sijasta. Opit tässä, miksi se ei kannata. Mieti hetki alla näkyvää taulukkoa:

Kuva, jossa on sekä tuotteita että toimittajia sisältävä taulukko

Tässä tapauksessa jokaisella rivillä on tietoja sekä tuotteesta että toimittajasta. Koska samalta toimittajalta voi olla useita tuotteita, toimittajan nimi- ja osoitetiedot on toistettava monta kertaa. Tämä vie turhaan levytilaa. Parempi ratkaisu on tallentaa toimittajan tiedot vain kerran erilliseen toimittajataulukkoon ja linkittää kyseinen taulukko sitten tuotetaulukkoon.

Toinen tämän rakenteen ongelma käy ilmi, kun sinun pitää muokata toimittajan tietoja. Oletetaan esimerkiksi, että sinun pitää muuttaa toimittajan osoitetta. Koska se on useissa paikoissa, saatat vahingossa muuttaa osoitteen yhdessä paikassa, mutta saatat unohtaa muuttaa sen muissa paikoissa. Toimittajan osoitteen tallentaminen vain yhteen paikkaan ratkaisee tämän ongelman.

Kun suunnittelet tietokantaa, yritä aina tallentaa kunkin tieto vain kerran. Jos huomaat toistavasi samat tiedot useassa paikassa, kuten tietyn toimittajan osoitteen, lisää kyseinen tieto erilliseen taulukkoon.

Oletetaan lopuksi, että olemassa on vain yksi Coho Wineryn toimittama tuote ja haluat poistaa tuotteen, mutta säilyttää toimittajan nimi- ja osoitetiedot. Miten tuotetietue voitaisiin poistaa poistamatta samalla toimittajan tietoja? Ei mitenkään. Koska jokainen tietue sisältää tiedon tuotteesta ja myös toimittajasta, toista ei voi poistaa poistamatta toista. Tiedot on pidettävä erillisinä jakamalla taulukko kahdeksi taulukoksi: toinen tuotteen tietoja ja toinen toimittajan tietoja varten. Tämän jälkeen tuotetietue poistettaessa poistetaan vain tuotteen tiedot, ei toimittajan tietoja.

Kun olet valinnut aiheen, jota taulukko edustaa, kyseisen taulukon sarakkeisiin kannattaa tallentaa tietoja vain kyseisestä aiheesta. Esimerkiksi tuotetaulukkoon tulee tallentaa vain tuotteita koskevia tietoja. Koska toimittajan osoite on toimittajaan liittyvä tieto eikä se koske tuotetta, osoite kuuluu toimittajataulukkoon.

Sivun alkuun

Tietokohteiden muuttaminen sarakkeiksi

Määritä taulukon sarakkeet päättämällä, mitä tietoja taulukkoon tallennetusta aiheesta on seurattava. Esimerkiksi Asiakkaat-taulukossa sarakeluettelon lähtökohta voisi olla Nimi, Osoite, Kaupunki-osavaltio-postinumero, Tervehdys ja Sähköpostiosoite. Taulukon kukin tietue sisältää samat sarakkeet, joten voit tallentaa nimen, osoitteen, kaupungin, osavaltion, postinumeron, tervehdyksen ja sähköpostiosoitteen kullekin tietueelle. Osoitesarake sisältää esimerkiksi asiakkaiden osoitteet. Kukin tietue sisältää yhden asiakkaan tiedot, ja osoitekenttä sisältää kyseisen asiakkaan osoitteen.

Kun olet määrittänyt ensimmäisen sarakejoukon kullekin taulukolle, voit tarkentaa sarakkeita. Esimerkiksi asiakkaan nimi kannattaa tallentaa kahteen erilliseen sarakkeeseen (etunimi ja sukunimi), jotta voit lajitella ja indeksoida vain tarvittavat sarakkeet sekä tehdä niistä hakuja. Vastaavasti osoite koostuu viidestä erillisestä osasta (osoite, kaupunki, osavaltio, postinumero ja maa/alue), joten nekin kannattaa tallentaa eri sarakkeisiin. Jos haluat suorittaa haun, suodattaa tai lajitella esimerkiksi osavaltion mukaan, osavaltiotiedot on tallennettava erilliseen sarakkeeseen.

Harkitse myös, onko tietokannassa vain kotimaisia tietoja vai tallennetaanko siihen myös kansainväliset tiedot. Jos esimerkiksi aiot tallentaa kansainväliset osoitteet, osavaltion sarakkeen tilalla kannattaa olla alueen sarake, koska siihen voidaan tallentaa sekä osavaltioita että muiden maiden alueita. Vastaavasti tämä kannattaa huomioida myös postinumerossa, jos aiot tallentaa kansainvälisiä osoitteita.

Seuraavassa on lueteltu muutamia vinkkejä sarakkeiden määrittämiseen.

  • Älä sisällytä laskettuja tietoja    

    Useimmissa tapauksissa taulukoihin ei kannata tallentaa laskutoimitusten tulosta. Sen sijaan Access kannattaa määrittää tekemään laskutoimitukset silloin, kun tulos halutaan nähdä. Oletetaan esimerkiksi, että Tuotteita tilauksessa -raportissa näkyy välisumma tilauksen kustakin tietokannan tuoteluokasta. Missään taulukossa ei kuitenkaan ole Yksiköitä tilauksessa -välisummasaraketta. Sen sijaan Tuotteet-taulukko sisältää Yksiköitä tilauksessa -sarakkeen, johon on tallennettu kunkin tuotteen tilauksessa olevat yksiköt. Access laskee tietojen avulla välisumman aina, kun tulostat raportin. Itse välisummaa ei pidä tallentaa taulukkoon.

  • Tallenna tiedot pienimmissä loogisissa osissa    

    Voi olla houkuttelevaa, että sinulla on yksi kenttä koko nimiä varten tai tuotteen nimiä ja tuotekuvauksia varten. Jos yhdistät kenttään useamman kuin yhdenlaisia tietoja, yksittäisten tietojen noutaminen on vaikeaa myöhemmin. Yritä hajottaa tiedot loogisiin osiin. Voit esimerkiksi luoda erilliset kentät etu- ja sukunimiä tai tuotteen nimeä, luokkaa ja kuvausta varten.

Kuva tieto-osista suunnitteluprosessin aikana

Kun olet määrittänyt kunkin taulukon tietosarakkeet, voit valita jokaisen taulukon perusavaimen.

Sivun alkuun

Perusavainten määrittäminen

Jokaisessa taulukossa tulisi olla sarake (tai sarakeryhmä), joka yksilöi jokaisen taulukkoon tallennetun rivin. Se on usein yksilöllinen tunnistenumero, esimerkiksi työntekijän tunnusnumero tai sarjanumero. Tietokantaterminologiassa tällaista tietoa kutsutaan taulukon perusavaimeksi. Access yhdistää usean taulukon tiedot ja tuo yhdistetyt tiedot nopeasti saatavillesi perusavainkenttien avulla.

Jos taulukolle on jo yksilöllinen tunniste, kuten tuotenumero, joka yksilöi jokaisen luettelon tuotteen, voit käyttää tunnistetta taulukon perusavaimena, mutta vain, jos tämän sarakkeen arvot ovat aina erilaiset kussakin tietueessa. Perusavaimessa ei voi olla arvojen kaksoiskappaleita. Älä esimerkiksi käytä henkilöiden nimiä perusavaimena, koska nimet eivät ole yksilöllisiä. Samassa taulukossa voi olla helposti kaksi samanniminen henkilö.

Perusavaimella on aina oltava arvo. Jos sarakkeen arvo voi muuttua määrittämättömäksi tai tuntemattomaksi (puuttuva arvo) jossain vaiheessa, sitä ei voi käyttää perusavaimen osana.

Valitse aina perusavain, jonka arvo ei muutu. Useita taulukoita käyttävässä tietokannassa taulukon perusavainta voidaan käyttää viittauksena muissa taulukoissa. Jos perusavain muuttuu, muutos on otettava käyttöön avaimen kaikissa viittauspaikoissa. Muuttumattoman perusavaimen käyttäminen pienentää sen mahdollisuutta, että perusavain poikkeaisi muista taulukoista, joissa siihen viitataan.

Usein perusavaimena käytetään satunnaista yksilöllistä numeroa. Jokaiselle tilaukselle voidaan esimerkiksi määrittää yksilöllinen tilausnumero. Tilausnumeron tarkoituksena on vain tilauksen yksilöiminen. Kun se on määritetty, se ei muutu.

Jos sinulla ei ole mielessäsi saraketta tai sarakejoukkoa, joka voi olla hyvä perusavain, harkitse Laskuri-tietotyypin saraketta. Kun käytät Laskuri-tietotyyppiä, Access määrittää arvon automaattisesti. Tällainen tunniste on faktaton; se ei sisällä mitään tietoja, jotka kuvaavat sen edustamaan riviä. Factless identifiers are ideal for use as a primary key because they do not change. Perusavain, joka sisältää tietoja rivistä , kuten puhelinnumerosta tai asiakkaan nimestä, muuttuu todennäköisemmin, koska itse tiedot voivat muuttua.

Kuva, jossa on Tuotteet-taulukko ja perusavainkenttä.

1. Laskuri-tietotyypiksi määritetty sarake on usein hyvä perusavain. Tuotetunnus on aina yksilöllinen.

Joissakin tapauksissa voidaan käyttää vähintään kahta kenttää, jotka yhdessä muodostavat perusavaimen. Esimerkiksi tilaustietotaulukossa, johon tallennetaan tilausten rivinimikkeet, perusavain voi käyttää kahta saraketta: Tilaustunnus ja Tuotetunnus. Kun perusavain käyttää vähintään kahta saraketta, sitä kutsutaan myös yhdistelmäavaimeksi.

Tuotemyynnin tietokannalle voit luoda kullekin taulukolle Laskuri-sarakkeen, joka toimii perusavaimena: Tuotetunnus Tuotteet-taulukossa, Tilaustunnus Tilaukset-taulukossa, Asiakastunnus Asiakkaat-taulukossa ja Toimittajatunnus Toimittajat-taulukossa.

Kuva tieto-osista suunnitteluprosessin aikana


Sivun alkuun

Taulukoiden yhteyksien luominen

Nyt kun tiedot on jaettu taulukoihin, tiedot on yhdistettävä uudelleen merkityksellisillä tavoilla. Esimerkiksi seuraava lomake sisältää tietoja useista taulukoista.

Tilaukset-lomake

1. Tämän lomakkeen tiedot ovat Asiakkaat-taulukosta...

2. ...Työntekijät-taulukosta...

3. ...Tilaukset-taulukosta...

4. ...Tuotteet-taulukosta...

5. ...ja Tilaustiedot-taulukosta.

Access on relaatiotietokannan hallintajärjestelmä. Relaatiotietokannassa tiedot voidaan jakaa erillisiksi taulukoiksi aiheen mukaan. Sen jälkeen tiedot kerätään yhteen tarpeen mukaan taulukoiden välisten yhteyksien avulla.

Sivun alkuun

Yksi-moneen-yhteyden luominen

Pohdi tätä esimerkkiä: Toimittajat- ja Tuotteet-taulukot tuotetilausten tietokannassa. Toimittaja voi toimittaa minkä tahansa määrän tuotteita. Tästä seuraa se, että Toimittajat-taulukossa olevalla toimittajalla voi olla useita tuotteita Tuotteet-taulukossa. Toimittajat-taulukon ja Tuotteet-taulukon välinen yhteys on siis yksi-moneen-yhteys.

Yksi-moneen-käsite

Voit esittää yksi-moneen-yhteyden tietokannan rakenteessa ottamalla perusavaimen yhteyden yksi-puolelta ja lisäämällä sen lisäsarakkeena tai -sarakkeina taulukkoon yhteyden monta-puolelle. Tässä tapauksessa esimerkiksi lisäät Toimittajatunnus-sarakkeen Toimittajat-taulukosta Tuotteet-taulukkoon. Access voi tämän jälkeen etsiä kullekin tuotteelle oikean toimittajan Tuotteet-taulukossa olevalla toimittajan tunnusnumerolla.

Tuotteet-taulukon Toimittajatunnus-saraketta kutsutaan viiteavaimeksi. Viiteavain on toisen taulukon perusavain. Toimittajatunnus-sarake Tuotteet-taulukossa on viiteavain, koska se on myös Toimittajat-taulukon perusavain.

Kuva tieto-osista suunnitteluprosessin aikana

Luot perustan taulukoiden välisille yhteyksille muodostamalla perusavaimista ja viiteavaimista pareja. Jos et ole varma, millä taulukoilla kannattaa olla yhteinen sarake, yksi-moneen-yhteyden tunnistaminen varmistaa, että kahdessa toisiinsa liittyvässä taulukossa on oltava jaettu sarake.

Sivun alkuun

Monta-moneen-yhteyden luominen

Otetaan esimerkiksi Tuotteet-taulukon ja Tilaukset-taulukon välinen yhteys.

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, koska millä tahansa tuotteella voi olla monta tilausta ja missä tahansa tilauksessa voi olla monia tuotteita. Huomaa, että taulukoiden välisen monta-moneen-yhteyden havaitseminen edellyttää yhteyden molempien puolien huomioon ottamista.

Näiden kahden taulukon aiheilla eli tilauksilla ja tuotteilla on monta-moneen-yhteys. Se aiheuttaa ongelman. Kuvittele ongelman ymmärtämiseksi, mitä tapahtuisi, jos yrittäisit luoda yhteyden kahden taulukon välille lisäämällä Tuotetunnus-kentän Tilaukset-taulukkoon. Jotta tilauksessa voisi olla useita tuotteita, Tilaukset-taulukossa on oltava useita tietueita tilausta kohti. Toistaisit yhtä tilausta koskevat tilaustiedot kullakin rivillä, joten tuloksena olisi tehoton rakenne, joka saattaa aiheuttaa virheellisiä tietoja. Sama ongelma tulee eteen, jos lisäät Tilaustunnus-kentän Tuotteet-taulukkoon: Tuotteet-taulukossa olisi useita tietueita kullekin tuotteelle. Miten ongelma ratkaistaan?

Vastaus on luoda kolmas taulukko, jota kutsutaan usein liitoskohtataulukoksi, joka hajottaa monta-moneen-yhteyden kahtena yksi-moneen-suhteeksi. Perusavain lisätään kummastakin taulukosta kolmanteen taulukkoon. Tämän vuoksi kolmas taulukko tallentaa yhteyden jokaisen esiintymän tai esiintymän.

Monta-moneen-yhteys

Jokainen Tilaustiedot-taulukon tietue edustaa yhtä tilauksen rivinimikettä. Tilaustiedot-taulukon perusavain koostuu kahdesta kentästä: Tilaukset- ja Tuotteet-taulukoiden viiteavaimista. Yksistään Tilaustunnus-kentän käyttäminen perusavaimena ei toimi tässä taulukossa, koska yhdessä tilauksessa voi olla useita rivinimikkeitä. Tilaustunnus toistetaan tilauksen jokaiselle rivinimikkeelle, joten kenttä ei sisällä yksilöllisiä arvoja. Yksistään Tuotetunnus-kentän käyttäminenkään ei toimi, koska yksi tuote voi esiintyä monessa eri tilauksessa. Yhdessä nämä kaksi kenttää tuottavat yksilöllisen arvon kullekin tietueelle.

Tuotteiden myynnin tietokannassa Tilaukset-taulukko ja Tuotteet-taulukko eivät liity toisiinsa suoraan. Sen sijaan ne liittyvät toisiinsa epäsuorasti Tilaustiedot-taulukon kautta. Tilausten ja tuotteiden välinen monta-moneen-yhteys esitetään tietokannassa käyttämällä kahta yksi-moneen-yhteyttä:

  • Tilaukset-taulukolla ja Tilaustiedot-taulukolla on yksi-moneen-yhteys. Kussakin tilauksessa voi olla useita rivinimikkeitä, mutta kukin rivinimike on yhdistetty vain yhteen tilaukseen.

  • Tuotteet-taulukolla ja Tilaustiedot-taulukolla on yksi-moneen-yhteys. Kuhunkin tuotteeseen voi liittyä useita rivinimikkeitä, mutta kukin rivinimike viittaa vain yhteen tuotteeseen.

Voit määrittää Tilaustiedot-taulukossa kaikki tiettyyn tilaukseen liittyvät tuotteet. Voit myös määrittää kaikki tietyn tuotteen tilaukset.

Tilaustiedot-taulukon lisäämisen jälkeen taulukoiden ja kenttien luettelo voi näyttää esimerkiksi tällaiselta:

Kuva tieto-osista suunnitteluprosessin aikana


Sivun alkuun

Yksi-yhteen-yhteyden luominen

Toinen yhteystyyppi yksi-yhteen-yhteys. Oletetaan esimerkiksi, että haluat tallentaa tuotteelle erityisiä lisätietoja, joita tarvitset vain harvoin tai jotka koskevat vain harvoja tuotteita. Koska tietoja ei tarvita usein ja koska tietojen tallentaminen Tuotteet-taulukkoon aiheuttaisi tyhjää tilaa jokaisessa tuotteessa, jota tiedot eivät koske, lisätiedot voi sijoittaa erilliseen taulukkoon. Tuotteet-taulukon tavoin Tuotetunnus toimii perusavaimena. Tämän lisätietotaulukon ja Tuotteet-taulukon välinen yhteys on yksi-yhteen-yhteys. Jokaiselle Tuotteet-taulukossa olevalle tietueelle on yksi vastaava tietue lisätietotaulukossa. Kun löydät tällaisen yhteyden, kummassakin taulukossa on oltava yhteinen kenttä.

Kun tunnistat tietokannassa tarpeen yksi-yhteen-yhteydelle, mieti, voisiko kahden taulukon tiedot yhdistää yhteen taulukkoon. Jos et halua tehdä sitä jostain syystä, koska se esimerkiksi aiheuttaa paljon tyhjää tilaa, seuraavassa on lueteltu tapoja esittää yhteys suunnittelussa:

  • Jos kummallakin taulukolla on sama aihe, voit ehkä määrittää yhteyden käyttämällä taulukoissa samaa perusavainta.

  • Jos kahdella taulukolla on eri aiheet ja erilaiset perusavaimet, valitse toinen taulukko (kumpi tahansa) ja lisää sen perusavain toiseen taulukkoon viiteavaimena.

Taulukoiden välisten yhteyksien määrittämisellä voit varmistaa, että oikeat taulukot ja sarakkeet ovat käytössä. Kun yksi-yhteen- tai yksi-moneen-yhteys on olemassa, yhteyteen liittyvissä taulukoissa on oltava yhteinen sarake tai useita yhteisiä sarakkeita. Kun monta-moneen-yhteys on olemassa, yhteyden esittämiseen tarvitaan kolmas taulukko.

Sivun alkuun

Rakenteen hienosäätäminen

Kun sinulla on tarvittavat taulukot, kentät ja yhteydet, luo ja täytä taulukoissa mallitiedot ja kokeile käyttää tietoja: kyselyjen luominen, uusien tietueiden lisääminen ja niin edelleen. Tämä auttaa korostamaan mahdollisia ongelmia. Saatat esimerkiksi joutua lisäämään sarakkeen, jonka olet unohtanut lisätä suunnitteluvaiheessa, tai taulukko, jonka haluat jakaa kahteen taulukkoon kaksoiskappaleiden poistamiseksi.

Katso, voitko käyttää tietokantaa vastausten saaminen. Luo raakaluonnoksia lomakkeista ja raporteista ja katso, näyttävätkö ne odottamiasi tietoja. Etsi tarpeettomat päällekkäisyydet, ja kun löydät tietoja, muuta rakennettasi sen poistamiseksi.

Alkuperäistä tietokantaa testatessasi huomaat todennäköisesti kehityskohtia. Esimerkiksi seuraavat asiat kannattaa tarkistaa:

  • Onko sarakkeita unohtunut? Jos on, kuuluvatko tiedot olemassa oleviin taulukoihin? Jos tiedot liittyvät johonkin muuhun, voit joutua luomaan uuden taulukon. Luo sarake jokaiselle seurattavalle tietokohteelle. Jos tietoja ei voi laskea muista sarakkeista, tarvitset todennäköisesti niille uuden sarakkeen.

  • Onko tietokannassa turhia sarakkeita, koska niiden tiedot voidaan laskea olemassa olevista kentistä? Jos tietokohde voidaan laskea olemassa olevista sarakkeista (alennettu hinta lasketaan esimerkiksi jälleenmyyntihinnasta), niin kannattaa yleensä toimia, jotta uuden sarakkeen luominen voidaan välttää.

  • Syötätkö toistuvasti samoja tietoja yhteen taulukoista? Jos näin on, taulukko on todennäköisesti jaettava kahdeksi taulukoksi, joilla on yksi-moneen-yhteys.

  • Onko taulukoissa useita kenttiä, rajallinen määrä tietueita ja useita tyhjiä kenttiä yksittäisissä tietueissa? Jos on, mieti taulukon suunnittelemista uudelleen, jotta kenttiä on vähemmän ja tietueita enemmän.

  • Onko jokainen tieto purettu pienimpiin käyttökelpoisiin osiin? Jos tietokohdetta tarvitaan raportoinnissa, lajittelussa, haussa tai laskemisessa, kyseinen tieto kannattaa lisätä omaan sarakkeeseensa.

  • Sisältääkö kukin sarake yhden tiedon taulukon aiheesta? Jos sarake ei sisällä tietoja taulukon aiheesta, se kuuluu toiseen taulukkoon.

  • Ovatko kaikki taulukoiden väliset yhteydet esitettyinä joko yhteisten kenttien tai kolmannen taulukon kautta? Yksi-yhteen- ja yksi-moneen-yhteydet edellyttävät yhteisiä sarakkeita. Monta-moneen-yhteyksissä on käytettävä kolmatta taulukkoa.

Tuotteet-taulukon hienosäätäminen

Oletetaan, että jokainen tuotemyynnin tietokannassa oleva tuote kuuluu yleisluokkaan, esimerkiksi juomiin, mausteisiin tai kalaruokiin. Tuotteet-taulukko sisältää kentän, jossa näytetään kunkin tuotteen luokka.

Oletetaan, että tietokannan rakenteen tarkastelun ja hienosäätämisen jälkeen päätät tallentaa luokan kuvauksen sen nimen kanssa. Jos lisäät Luokan kuvaus -kentän Tuotteet-taulukkoon, joudut toistamaan luokan kuvauksen jokaisessa kyseiseen luokkaan kuuluvassa tuotteessa, joten tämä ei ole hyvä ratkaisu.

Parempi ratkaisu on määrittää Luokat tietokannassa seurattavaksi uudeksi aiheeksi ja lisätä sille oma taulukko ja oma perusavain. Sen jälkeen voit lisätä Luokat-taulukon perusavaimen Tuotteet-taulukkoon viiteavaimena.

Luokat- ja Tuotteet-taulukoilla on yksi-moneen-yhteys: luokka voi sisältää useita tuotteita, mutta tuote voi kuulua vain yhteen luokkaan.

Kun tarkastelet taulukon rakennetta, etsi toistuvia ryhmiä. Kuvitellaan esimerkiksi, että taulukko sisältää seuraavat sarakkeet:

  • Tuotetunnus

  • Nimi

  • Tuotetunnus1

  • Nimi1

  • Tuotetunnus2

  • Nimi2

  • Tuotetunnus3

  • Nimi3

Tässä jokainen tuote on toistuva ryhmä sarakkeita, jotka eroavat muista vain siten, että sarakkeen nimen loppuun on lisätty numero. Kun näet tällä tavalla numeroituja sarakkeita, rakennetta kannattaa tarkastella uudelleen.

Tällaisessa mallissa on useita vikoja. Aluksi se pakottaa asettamaan ylärajan tuotteiden määrälle. Kun ylität rajoituksen, taulukkorakenteeseen on lisättävä uusi sarakeryhmä, joka on tärkeä hallintatehtävä.

Toinen ongelma on siinä, että tilaa hukkaantuu toimittajiin, joilla on tuotteita enimmäismäärää vähemmän, koska ylimääräiset sarakkeet on tyhjiä. Vakavin rakenteellinen vika on siinä, että rakenne vaikeuttaa useiden tehtävien suorittamista (esimerkiksi taulukon lajittelua tai indeksointia tuotetunnuksen tai nimen mukaan).

Aina kun näet toistuvia ryhmiä, tarkastele rakennetta tarkasti ja katso, miten taulukko jaetaan kahtena. Yllä olevassa esimerkissä on parempi käyttää kahta taulukkoa, yksi toimittajille ja toinen tuotteille, jotka on linkitetty toimittajan tunnuksella.

Sivun alkuun

Normalisointisääntöjen käyttäminen

Voit käyttää tietojen normalisointisääntöjä rakenteen seuraavassa vaiheessa. Käytä sääntöjä, jotta näet, onko taulukoiden rakenne oikea. Sääntöjen käyttämistä tietokannan rakenteeseen kutsutaan tietokannan normalisoinniksi tai vain normalisoinniksi.

Normalisoinnista on eniten hyötyä sen jälkeen, kun kaikki tietokohteet on esitetty ja alustava rakenne on valmis. Tavoitteena on varmistaa, että tietokohteet on jaettu sopiviin taulukoihin. Normalisointi ei kuitenkaan voi varmistaa, että kaikki oikeat tietokohteet ovat lähtökohtaisesti käytössä.

Sääntöjä käytetään peräkkäin siten, että jokainen vaihe varmistaa, että rakenne on jossakin "tavallisissa lomakkeissa". Viisi tavallista muotoa hyväksytään yleisesti – ensimmäinen normaalimuoto viidennessä normaalimuodossa. Tämä artikkeli laajenee kolmen ensimmäisen kerran, koska ne kaikki ovat pakollisia suurimmalle osalle tietokantamalleja.

Ensimmäinen normaalimuoto

Ensimmäisessä normaalimuodossa on se, että taulukon jokaisessa rivi- ja sarake leikkaannossa on yksi arvo, ei koskaan arvoluetteloa. Sinulla ei esimerkiksi voi olla Hinta-nimistä kenttää, johon sijoitat useamman kuin yhden hinnan. Jos pidät rivien ja sarakkeiden jokaista risteystä soluna, kussakin solussa voi olla vain yksi arvo.

Toinen normaalimuoto

Toisessa normaalimuodossa edellytetään, että kukin ei-avainsarake on täysin riippuvainen koko perusavaimesta, eikä vain avaimen osasta. Tätä sääntöä käytetään, kun käytössä on perusavain, joka koostuu useammasta kuin yhdestä sarakkeesta. Oletetaan, että taulukossasi on seuraavat sarakkeet, joissa Tilaustunnus ja Tuotetunnus muodostavat perusavaimen:

  • Tilaustunnus (perusavain)

  • Tuotetunnus (perusavain)

  • Tuotteen nimi

Tämä rakenne ei ole toisen normaalimuodon mukainen, koska Tuotteen nimi on riippuvainen tuotetunnuksesta, mutta ei tilaustunnuksesta, joten se ei ole riippuvainen koko perusavaimesta. Tuotteen nimi on poistettava taulukosta. Se kuuluu toiseen taulukkoon (Tuotteet).

Kolmas normaalimuoto

Kolmas normaalimuoto edellyttää, että sen lisäksi, että jokainen ei-avainsarake on riippuvainen koko perusavaimesta, kyseiset ei-avainsarakkeet ovat itsenäisiä toisiinsa nähden.

Toisin sanoen jokaisen ei-avainsarakkeen on oltava riippuvainen pääavaimesta ja vain pääavaimesta. Oletetaan esimerkiksi, että taulukko sisältää seuraavat sarakkeet:

  • Tuotetunnus (perusavain)

  • Nimi

  • OVH

  • Alennus

Oletetaan, että Alennus riippuu ohjevähittäishinnasta (OVH). Tämä taulukko ei ole kolmannen normaalimuodon mukainen, koska ei-avainsarake Alennus on riippuvainen toisesta ei-avainsarakkeesta (OVH). Sarakkeen riippumattomuus tarkoittaa sitä, että mitä tahansa ei-avainsaraketta pitäisi voida muuttaa ilman että se vaikuttaa toiseen sarakkeeseen. Jos muutat OVH-kentän arvoa, Alennus-kentän arvo muuttuu vastaavasti eli sääntöä rikotaan. Tässä tapauksessa Alennus pitää siirtää toiseen taulukkoon, jonka avaimena on OVH.

Sivun alkuun

Tarvitsetko lisäohjeita?

Kehitä taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Microsoft Office Insidersiin

Oliko näistä tiedoista hyötyä?

Kuinka tyytyväinen olet käännöksen laatuun?
Mikä vaikutti kokemukseesi?

Kiitos palautteesta!

×