You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Relaatiotietokannan suunnittelu ja tietokannan luonti

KirjastoEsimerkki.pdf

Johdanto

Relaatiotietokannan suunnittelu lähtee asiakkaan liiketoimintaprosessien analysoimisesta. Tällöin selvitetään, minkälaisia mahdollisuuksia olemassa olevan tietojärjestelmän parantaminen tai uuden tietojärjestelmän kehittäminen voi tarjota.

Vaatimusten määrittelyn kautta edetään kohdealueen tietojen käsitteelliseen mallintamiseen sekä tietojärjestelmän loogiseen ja fyysiseen suunnitteluun. Käsitteellisessä mallintamisessa tunnistetaan kohdealueen oliot, joista tallennetaan tietoja tietojärjestelmään (kuten asiakkaat ja tilaukset) sekä selvennetään niiden väliset yhteydet. Loogisessa suunnittelussa muunnetaan ne relaatioiksi (taulukoiksi) ja attribuuteiksi (kentiksi). Fyysisessä suunnittelussa otetaan kantaa muun muassa käytettävään tietokannan hallintajärjestelmään ja tallennusratkaisuun.

Tarkastelemme seuraavassa vaiheita, joilla pieni esimerkkitietokanta rakennetaan käyttäen Access-tietokannanhallintajärjestelmää. Lähdemme liikkeelle tilanteesta, jossa relaatiokaavio (taulut ja kentät) on selvillä.

Päävaiheet

Tietokannan rakentamisen päävaiheet Access-ohjelman avulla ovat:

  1. Luodaan tietokannan taulut.
  2. Määritetään kunkin taulun osalta kenttien arvoalueet, syöttörajoitukset, kelpoisuustarkistukset yms.
  3. Määritetään taulujen väliset yhteydet, joiden avulla Access voi valvoa viite-eheyttä.
  4. Määritetään kyselyitä, raportteja ja lomakkeita tietojen hakemista ja päivittämistä varten. 

Tietokantaan on tarkoituksenmukaista syöttää tietoja siinä vaiheessa, kun taulut ja niihin liiittyvät viite-eheys- ja arvoaluerajoitukset on määritetty.

Tarkastelemme seuraavassa esimerkin kautta kolmea ensimmäistä vaihetta: taulujen, kenttien ja yhteyksien määritystä. Neljänteen vaiheeseen palataan myöhemmin.

Esimerkissämme toteutamme pienen kirjaston kokoelmatietokannan, jossa on kolme taulua:

TEOS(Kirjailija, Nimike, Kustantaja, Julkaisuvuosi)

KIRJASTO(Nimi, Lähiosoite, Postinro)

NIDE(Koodi, Kirjailijan_nimi, Teoksen_nimi, Kirjasto, Hyllypaikka)

Pääavaimet on merkitty alleviivauksin, ja viiteavaimet on kursivoitu. Huomaa, että kyseessä on yksinkertaistettu esimerkki: teoksella voi olla vain yksi kirjailija, ja kirjastojen yhteystiedot ovat puutteelliset.

Taulujen luonti ja kenttien määritys

Perustamme aluksi tyhjän tietokannan: Tiedosto/Uusi, ja tehtäväruudusta Tyhjä tietokanta. Päsemme Access-ohjelman pääikkunaan, jossa voidaan luoda tietokantaobjekteja (taulukot, kyselyt, lomakkeet, ...). 

Seuraavaksi luomme uuteen tietokantaan taulut ja määrittelemme niiden kentät. Jos lähtisimme liikkeelle valmiista Excel-taulusta, voisimme käyttää ohjattua tietojen tuontia valinnalla Tiedosto/Nouda ulkoiset tiedot/Tuo.

Luomme kuitenkin käsin kolme kappaletta tauluja, nimittäin TEOS, KIRJASTO ja NIDE. Valinnalla Luo taulukko rakennenäkymässä voidaan määrittää kunkin luotavan taulukon kentät sekä avain- ja arvoaluerajoitteet:

Kentän ominaisuuksista voidaan määrittää mm.:

  • Syöttörajoite. ohjatun toiminnon avulla voidaan kuvata, missä muodossa teksti- tai päivämäärä voidaan syöttää kenttään. Esimerkiksi postinumeron ja -toimipaikan voi toteuttaa siten, että kentän tyypiksi määritetään Luku ja syöttörajoitteeksi Postinumero.
  • Kelpoisuussääntö kuvauksineen. Kelpoisuussäännön avulla voidaan tarkistaa tiedon oikeellisuus: esimerkiksi se, että vuosiluku on sallitussa vaihteluvälissä
  • Arvo tarvitaan. Tieto määrittää, onko kenttään pakko syöttää arvo, vai sallitaanko puuttuvat arvot.
  • Indeksoitu. Määrittää rakennetaanko kenttää varten indeksi, joka mahdollistaa tietojen nopean hakemisen kentän arvojen perusteella.

Pääavaimet (perusavaimet) määritetään tässä vaiheessa. Kustakin taulusta valitaan halutut kentät ja painetaan Perusavain-painiketta:

Kun tiedot on syötetty, voidaan taulukon määritysikkuna sulkea. Uusi taulukko-objekti tallennetaan viimeistään tässä vaiheessa.

Kun kolme taulua on luotu (TEOS, KIRJASTO, NIDE) ja niiden kentät pääavaimineen määritetty, on aika kuvata taulujen väliset yhteydet.

Yhteyksien määritys

Yhteydet määritetään Yhteydet-painikkeen avulla:

Yhteyksien määrityksen ansiosta Access voi valvoa viite-eheyttä sekä yhdistää kyselyissä ja raporteissa eri tauluissa olevat tiedot toisiinsa.

Yhteyskaavioon lisätään KIRJASTO-, TEOS- ja NIDE-oliot, ja yhteydet määritetään siten, että kunkin yhteyden pääavaimesta vedetään hiirellä yhteys vastaavaan viiteavaimeen.

Viite-eheyden säilyttäminen kannattaa aina valita. Tällöin Access pitää huolen, että tietokantaan ei voi syöttää sellaista tietoa, jonka viiteavain ei osoita minnekään. Esimerkiksi NIDE-taulukon Kirjasto-kenttään ei tällöin saa syöttää sellaista kirjastoa, jota ei ole olemassa KIRJASTO-taulussa.

Kenttien johdannaispäivitys aiheuttaa viiteavaimen arvojen automaattisen muutoksen, jos viitattavan taulukon pääavainta muutetaan.

Kenttien johdannaispoisto on usein vaarallista: viittaava tietue poistetaan kokonaan, jos viittauksen kohde poistuu.

Yhteyksien määrityksen tuloksena yhteyskaavio näyttää tältä:

Kaaviosta näkyvät tietokannan olioiden väliset lukumäärärajoitteet, joilla viite-eheyttä valvotaan: jokaista NIDE-taulukon Kirjasto-kentän arvoa kohti on esimerkiksi löydyttävä (tasan) yksi KIRJASTO-taulun nimi kentän arvo. Toisaalta tiettyä kirjaston nimeä kohti voi olla mielivaltainen määrä niteitä, joiden sijainniksi on merkitty tuo kirjasto.

Tietojen syöttö

Tietoja voi syöttää taulukoihin valitsemalla halutun taulukon ja sen jälkeen painamalla Avaa-painiketta.

Tiedot on syötetävä sellaisessa järjestyksessä, että viite-eheys toteutuu koko ajan. Ensin kannattaa aloittaa kirjastoista, sitten jatkaa teoksilla ja syöttää viimeiseksi niteet. Access valvoo myös, että avainrajoitteita noudatetaan. Kun tiedot on syötetty, ikkuna suljetaan ja objektin tiedot tallennetaan. Tiedot voidaan myös tallentaa kesken syötön.

Nyt tietokannan rakenne on määritetty ja tietokantaan on syötetty hieman tietoa. Tämän jälkeen siihen voidaan esimerkiksi kohdistaa kyselyitä.

  • No labels
You must log in to comment.