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

Compare with Current View Page History

« Previous Version 2 Current »

Relaatiomalli

Johdanto

Aiemmin tarkastelimme intuitiivisesti ja esimerkkien kautta Excel-ohjelmaan tallennetun tietoaineiston organisoimista laskentataulukoihin. Seuraavaksi lähestymme ongelmaa käsitteellisesti ja tutustumme relaatiomalliin.

Relaatiomalli on looginen tietomalli, jolla voidaan täsmällisesti kuvata tietojen organisointi sekä tietoaineistoihin tehtävät kyselyt, poistot ja päivitykset.

Relaatiomallin mukaisesti kuvattu tietoaineisto voidaan toteuttaa relaatiotietokantana. Tällöin voidaan hyödyntää valmiita tietokannan hallintajärjestelmiä eli ohjelmistoja, joiden avulla tietokanta voidaan luoda, sitä voidaan ylläpitää ja siihen voidaan kohdistaa kyselyitä, poistoja ja päivityksiä.

Relaatio ja attribuutit

Seuraavassa kuvataan relaatiomallin keskeisiä käsitteitä. Koska relaatiomallin mukaiset tietoaineistot voidaan esittää taulukkoina, kerrotaan sulkeissa kunkin käsitteen vastine taulukkoesityksessä.

Relaatiolla tarkoitetaan nimettyä, kaksiulotteista tietojoukkoa (taulukkoa/taulua). 

Relaatio täyttää seuraavat ehdot:

  1. Relaatiolla (taulukolla) on nimi, joka erottaa sen muista relaatioista (taulukoista)
  2. Relaatiolla on attribuutteja (sarakeotsikoita), joista jokaisella on relaation (taulukon) sisällä yksikäsitteinen nimi.
  3. Relaatio (taulukko) sisältää monikoita (rivejä), joista kukin koostuu attribuuttien arvoista.
  4. Relaation (taulukon) kaikki rivit ovat erilaisia.
  5. Attribuuttien (sarakkeiden) ja monikoiden (rivien) järjestyksellä ei ole väliä.
  6. Kussakin monikossa kukin attribuutin arvo (solun sisältö) on atominen eli se sisältää yhden, yksikäsitteisen arvon.

Tästä lähtien puhumme tauluista, riveistä ja sarakkeista. Taustalla ovat edellä kuvatut relaatiomallin käsitteet.

Tarkastelimme aiemmin työntekijäaineistoa, jossa päädyimme jakamaan tietoaineiston kahteen laskentataulukkoon. Toinen taulukoista sisältää tiedot työntekijöistä ja toinen osastoista:

Onko edellä esitetty ratkaisu relaatiomallin mukainen?

Toteamme, että edellä kuvatut ehdot 1-6 täyttyvät, joten tietoaineistomme on relaatiomallin mukainen. Esimerkiksi kukin ihminen ja kukin osasto esiintyy aineistoissa vain kertaalleen.

Näemme myös, että kaikki Excel-taulukot eivät ole relaatiomallin mukaisia. On helppo kirjoittaa Excel-laskentataulukoita, joiden rakenne rikkoo kutakin edellä esitetyistä ehdoista 1-6.

Pääavain

Taulun pääavaimella tarkoitetaan sellaista saraketta (tai sarakejoukkoa), jonka arvot erottelevat taulun rivit toisistaan yksikäsitteisesti.

Esimerkiksi edellä esitetyn taulun TYÖNTEKIJÄ pääavain on Henkilönumero. Kukin työntekijä voidaan tunnistaa yksikäsitteisesti hänen henkilönumeronsa perusteella. Kahdella työntekijällä ei voi olla samaa henkilönumeroa.

Vastaavasti taulun OSASTO pääavain on Osastonumero. Osastot voidaan erottaa toisistaan osastonumeron perusteella.

Pääavaimen arvojen on oltava yksikäsitteisiä, ja pääavaimelle on annettava arvo jokaisella rivillä.

Viiteavain

Viiteavainten avulla voidaan yhdistää eri taulukoissa olevia tietoja.

Viiteavain viittaa toisen taulun pääavaimeen. Esimerkiksi TYÖNTEKIJÄ-taulun attribuutti Osasto viittaa OSASTO-taulun sarakkeeseen Osastonumero.

Relaatiotietokanta ja relaatiokaavio

Toisiinsa liittyvät taulut muodostavat relaatiotietokannan.

Relaatiokaavion avulla voidaan kuvata relaatiotietokantaan kuuluvat taulut sekä niiden pää- ja viiteavaimet. Relaatiokaaviossa voidaan kuvata myös sarakkeiden arvoalueita (esim. kokonaisluku) ja muuta oheistietoa.

Edellä kuvattu kahdesta taulusta koostuva relaatiotietokanta voitaisiin esittää relaatiokaaviona seuraavasti:

TYÖNTEKIJÄ(Henkilönumero, Sukunimi, Etunimi, Osasto, Lähiosoite, Postinumero, Postitoimipaikka)

OSASTO(Osastonumero, Nimi, Päällikkö, Budjetti)

Edellä pääavaimet kuvattiin alleviivattuina ja viiteavaimet kursivoituina.

Eheysrajoitteet

Arvoaluerajoite

Sarakkeen arvoalueella tarkoitetaan niiden arvojen joukkoa, jotka sarake voi saada. Esimerkiksi edellisen esimerkin taulun TYÖNTEKIJÄ sarakkeen Henkilönumero arvoalueena olisi kokonaislukujen joukko.

Arvoalue voidaan määrittää myös yksityiskohtaisemmin: jos sarake sisältää suomalaisen postinumeron, voitaisiin määrittää, että arvoalueena olisi viisinumeroinen kokonaisluku etunollineen tai (tarkemmin) Suomessa käytössä olevien arvoalueiden joukko.

Kun sarakkeen arvoalue määritetään, voi tietokannan hallintajärjestelmä valvoa, että tietokannassa olevat sarakkeet sisältävät vain arvoalueeseen kuuluvia arvoja. Tällöin esimerkiksi kielletyn muotoisen postinumeron syöttäminen estetään teknisesti.

Avainrajoite

Avainrajoite määrää sen, että kaikilla taulun riveillä on kelvollinen pääavaimen arvo, joka ei ole sama kuin minkään muun pääavaimen arvo.

Tietokannan hallintajärjestelmä valvoo avainrajoitteen toteutumista.

Esimerkiksi seuraava tilanne rikkoo avainrajoitetta (pääavaimena Kurssitunnus):

KURSSI

Kurssitunnus

Nimi

Opintoviikot

101

Mekaniikan perusteet

3

201

Suhteellisuusteoria

2

101

Astrofysiikka

4

Viite-eheysrajoite

Tilanteissa, joissa sarake viittaa toisen taulun pääavaimeen - eli on viiteavaimena - on tarkoituksenmukaista vaatia, että viittaus osoittaa kohteeseensa (tai viitevaimena on arvona erityinen NULL-arvo). Tämä tarkoittaa sitä, että viiteavaimen arvon on aina esiinnyttävä kohdetaulun jonkin monikon pääavaimen arvona. Muussa tapauksessa viite-eheys rikkoutuu, ja tietokannassa viittauksia, jotka eivät osoita mihinkään.

Seuraava kuva esittää tilannetta, jossa viite-eheys rikkoutuu. Henkilön n:o 2 osastonumeroa (4) ei löydy OSASTO-taulun osastonumeroiden joukosta.

TYÖNTEKIJÄ

Henkilönumero

Sukunimi

Etunimi

Osasto

1

Nieminen

Ville

1

2

Peltonen

Maija

4

3

Virtanen

Mervi

2

OSASTO

Osastonumero

Nimi

Budjetti

1

Markkinointi

20

2

Myynti

70

3

Asiakaspalvelu

6

Tietokannan hallintajärjestelmä valvoo viite-eheysrajoitteen toteutumista.

 Tietokannan normaalimuodot

Tietokantaa suunniteltaessa tietokanta pyritään saattamaan ns. kolmanteen normaalimuotoon, jossa tietokannan taulujen rakenteella on toivottuja ominaisuuksia. Kolmanteen normaalimuotoon päästään ensimmäisen ja toisen normaalimuodon kautta.

Taulujen saattamista kolmanteen normaalimuotoon kutsutaan tietokannan normalisoinniksi. Ehtoja rikkovat taulut pilkotaan pienemmiksi tauluiksi, kunnes ehdot toteutuvat.

Ensimmäinen normaalimuoto

Ensimmäinen normaalimuoto edellyttää, että kaikki sarakkeiden arvot ovat yksiarvoisia. Tämä ehto täyttyy lähtökohtaisesti, jos tietokanta on suunniteltu relaatiomuotoon. Esimerkiksi sarakkeen Lapset arvo Liisa, Maija, Ville ei olisi yksiarvoinen.

Toinen normaalimuoto

Toinen normaalimuoto vaatii lisäksi, että taulussa ei ole tilannetta, jossa osa pääavaimesta (vaan ei koko pääavain) määräisi jonkin sarakkeen arvon. Seuraava taulu kuvaisi kiellettyä tilannetta:

TOTEUTUS

Kurssi

Toteutusnumero

Opettaja

Opintopisteet

Sovellusohjelmat

16

Virtanen

3

Sovellusohjelmat

17

Lehtinen

3

Suhteellisuusteorian perusteet

16

Kallio

4

Edellisessä esimerkissä opintopisteiden määrä riippuu pelkästään kurssin nimestä, vaikka taulun pääavaimena ovat Kurssi ja Toteutusnumero yhdessä. Opintopistemäärä joudutaan syöttämään liian moneen paikkaan.

Kolmas normaalimuoto

Kolmas normaalimuoto vaatii lisäksi, että taulussa ei ole ns. transitiivisia riippuvuuksia, joissa jokin sarake riippuu toisesta sarakkeesta, joka ei ole pääavain.

Esimerkiksi seuraava taulu ei ole kolmannessa normaalimuodossa. Sarakkeen Osaston_nimi arvo määräytyy suoraan sarakkeen Osasto perusteella, eikä Osasto-sarake ole taulun pääavain.

TYÖNTEKIJÄ

Henkilönumero

Sukunimi

Etunimi

Osasto

Osaston_nimi

1

Nieminen

Ville

1

Markkinointi

2

Peltonen

Maija

4

Asiakaspalvelu

3

Virtanen

Mervi

4

Asiakaspalvelu

  • No labels
You must log in to comment.