01.05.2013 Views

Relaatiotietomallin perusteet

Relaatiotietomallin perusteet

Relaatiotietomallin perusteet

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

HELIA – TIKO-05 1 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Relaatiomalli<br />

Relaatiomalli .......................................................................................2<br />

Peruskäsitteet..................................................................................3<br />

Relaatio........................................................................................5<br />

Attribuutti ja arvojoukko................................................................6<br />

Monikko........................................................................................7<br />

Säännöt...........................................................................................8<br />

Arvojoukkoeheyssääntö...............................................................8<br />

Pääavain ja yksilön eheyssääntö.................................................9<br />

Viiteavain ja viite-eheyssääntö...................................................10<br />

Sovellusalueen eheyssäännöt ...................................................14<br />

Käsittely.........................................................................................15<br />

Access ..............................................................................................16<br />

Yleistä............................................................................................16<br />

Access-sovellus.............................................................................17<br />

Perusobjektit..................................................................................17<br />

Taulu ..........................................................................................19<br />

Kysely ........................................................................................22<br />

Relaatiotietokanta ?.......................................................................27<br />

Käsitteitä...........................................................................................28<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 2 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Relaatiomalli<br />

• Relaatiomalli on eräs tietomalleista<br />

(muita mm. hierarkkinen malli, verkkomalli)<br />

Tietomalli<br />

~ Malli, jonka mukaan tietokannan tiedot organisoidaan.<br />

Tietomalli koostuu joukosta peruskäsitteitä, -sääntöjä ja -<br />

operaatioita<br />

Perusajatuksiltaan<br />

• yksinkertainen<br />

• yksiselitteinen<br />

• selkeä<br />

Pohjautuu joukko-opin käsitteisiin<br />

Loogisen minimaalisuuden tavoittaminen<br />

Erinomainen väline tietokannan rakenteen ja käsittelyn<br />

kuvaamiseen<br />

∼ Relaatiotietomallissa kaikki tieto tallennetaan<br />

taulukkomuotoon - relaatioihin (tauluihin)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 3 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Peruskäsitteet<br />

Relaation<br />

nimi<br />

1. Relaatio (Relation)<br />

2. Attribuutti (Attribute)<br />

3. Monikko (Tuple)<br />

Viralliset Käytännölliset Tiedostoista<br />

periytyvät<br />

Relaatio Taulu / Taulukko (Tiedosto)<br />

Attribuutti Sarake Kenttä<br />

Monikko Rivi Tietue<br />

<br />

Attribuutit<br />

OPETTAJA Lyhenne Nimi Huone Sotu<br />

BurOt Burman 111111-aaaa<br />

BenAn Benson 3012 222222-bbbb<br />

Monikot VirOu Virkki 3012 333333-cccc<br />

VirPe Virkki 3012 444444-dddd<br />

Arvo<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 4 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Relaation ominaisuuksia:<br />

• Jokaisella relaatiolla on yksikäsitteinen nimi<br />

• Relaatiossa ei saa olla kahta täysin samanlaista riviä!<br />

(relaatio on rivien joukko ja tietty alkio voi esiintyä<br />

joukossa vain kerran)<br />

• Rivien järjestyksellä ei ole merkitystä<br />

(joukossa ei ole järjestystä)<br />

• Relaation jokaisella rivillä tulee olla yhtä monta attribuuttia<br />

• Tietyssä relaatiossa jokaisella attribuutilla on<br />

yksikäsitteinen nimi<br />

• Kukin attribuutti on homogeeninen, eli sisältää arvoja vain<br />

yhdestä arvoalueesta<br />

• Kukin attribuutti on atominen, eli jakamaton<br />

• Attribuuttien järjestyksellä ei ole merkitystä<br />

(relaation attribuuteilla on yksikäsitteiset nimet)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 5 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Relaatio<br />

Määritelmä<br />

”Olkoon D1, D2, … , Dn arvojoukkoja,<br />

joiden ei tarvitse olla erillisiä.<br />

Relaatio R on joukko monikkoja,<br />

joiden 1. arvo kuuluu joukkoon D1,<br />

2. arvo joukkoon D2 jne.<br />

Relaatio on siis karteesisen tulon D1 * D2 * … * Dn<br />

osajoukko”<br />

(Codd, 1970)<br />

• Jokaisella relaatiolla on yksikäsitteinen nimi<br />

Relaatiokaava (Relation schema)<br />

• Määrittelee relaation rakenteen<br />

(pysyvät ominaisuudet)<br />

R(A1, A2, … , An)<br />

R = relaation nimi<br />

A1, A2, … , An = attribuuttilista<br />

esim:¨<br />

OPISKELIJA(opno, op_sukunimi, op_etunimi, op_aloitusvuosi)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 6 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Attribuutti ja arvojoukko<br />

• Tietyssä relaatiossa jokaisella attribuutilla on<br />

yksikäsitteinen nimi<br />

• Jokaisen relaatiokaavan attribuuttiin Ai liittyy arvojoukko /<br />

arvoalue dom(Ai), joka sisältää attribuutin Ai mahdolliset<br />

(atomiset) arvot<br />

Tyhjä arvo (NULL) sisältyy jokaiseen arvojoukkoon<br />

• Relaatiotietomallissa attribuuttien arvojoukot / arvoalueet<br />

voidaan määritellä vapaasti attribuuttien merkityksen<br />

mukaan<br />

esim. sukunimi –arvoalue sisältää kaikki<br />

olemassaolevat sukunimet<br />

• Relaatiotietokantatuotteissa arvoaluekäsitettä ei yleensä<br />

tunneta eikä tueta<br />

• Sarakkeet esitellään perustietotyyppien<br />

(Char, Int, …) ja niiden maksimipituuksien avulla<br />

esim. sukunimi varchar(20)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 7 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Monikko<br />

• koostuu arvoista ja niihin liittyvistä attribuuteista.<br />

• monikko on siis tällaisten attribuutti-arvo –parien joukko<br />

Attribuutti -arvo-pari sisältää merkityksen<br />

esim. hinta: 10,99<br />

Tarkan merkityksen selvittäminen vaatii yleensä<br />

enemmän tietoa …<br />

Tyhjä arvo (Null)<br />

~ Arvo puuttuu, koska sitä ei tiedetä<br />

~ Arvo puuttuu, koska sitä ei ole<br />

Vertailu null-arvon kanssa mahdotonta<br />

Laskutoimitus null-arvon kanssa mahdoton<br />

Tietokantatuotteissa on mekanismeja,<br />

joilla null-arvoihin voi varautua<br />

OPETTAJA Lyhenne Nimi Huone Sotu<br />

BurOt Burman 111111-aaaa<br />

BenAn Benson 3012 222222-bbbb<br />

t VirOu Virkki 3012 333333-cccc<br />

VirPe Virkki 3012 444444-dddd<br />

NULL<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 8 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Säännöt<br />

~ määrittelee tietokannan tauluissa yhtäaikaa sallitut rivit eli<br />

tietokannan sallitut tilat<br />

• Arvojoukkoeheyssääntö<br />

• Yksilön eheyssääntö<br />

• Viite-eheyssääntö<br />

• Sovellusalueen eheyssäännöt<br />

Arvojoukkoeheyssääntö<br />

• Domain Integrity<br />

• Kukin attribuutti on homogeeninen, eli sisältää arvoja<br />

vain yhdestä arvoalueesta<br />

• Kukin attribuutti on atominen, eli jakamaton<br />

• SQL-standardin mukaisia tietotyyppejä käsitellään<br />

SQL-kielen yhteydessä<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 9 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Avain<br />

~ Key/ Tunniste<br />

~ Pienin mahdollinen joukko relaation attribuutteja,<br />

jotka riittävät yksilöimään jokaisen relaation rivin<br />

• Avain voi siis koostua useammasta attribuutista<br />

(ns. yhdistelmäavain)<br />

• Avaimen arvo ei voi olla tyhjä<br />

• Jokaisella relaatiolla on ainakin yksi avain<br />

• Relaatiolla voi olla myös useampia avaimia<br />

(ns. avainehdokkaita / Candidate Key)<br />

Pääavain Avain<br />

OPETTAJA Lyhenne Nimi Huone Sotu<br />

BurOt Burman 111111-aaaa<br />

BenAn Benson 3012 222222-bbbb<br />

VirOu Virkki 3012 333333-cccc<br />

VirPe Virkki 3012 444444-dddd<br />

Pääavain ja yksilön eheyssääntö<br />

~ Primary Key & Entity Integrity<br />

~ Relaation avain – tai mikäli niitä on useampia<br />

pääavaimeksi valittu avain<br />

• Pääavaimen arvo (tai sen osa) ei voi olla tyhjä<br />

• Pääavaimeksi kannattaa valita attribuutti, jonka arvo ei<br />

muutu (ainakaan usein)<br />

• Oliopohjaisessa ohjelmistokehityksessä avaimeksi<br />

määritellään mitään merkitsemätön numero<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 10 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Viiteavain ja viite-eheyssääntö<br />

~ Foreign Key & Referential Integrity<br />

~ Relaation attribuutti , jolla on sama arvoalue<br />

kuin toisen relaation pääavaimella<br />

~ Relaation viiteavain viittaa toisen relaation pääavaimeen<br />

• Relaatioiden väliset yhteydet toteutetaan viiteavaimien<br />

avulla<br />

• Viiteavain sijaitsee aina yhteyden moni (*) –päässä<br />

• Viiteavaimen arvo voi olla tyhjä, jos yhteys ei ole<br />

pakollinen<br />

Viiteavain<br />

OPETTAJA Lyhenne Nimi Huone Sotu KOohjelma<br />

BurOt Burman 111111-aaaa<br />

Pääavain BenAn Benson 3012 222222-bbbb TIKOA<br />

KOohjelma Tunnus Nimi Laajuus<br />

TIKOA Tietotekniikan koulutusohjelma – Aik.. 210<br />

BITE Degree Program of Business Inform.. 210<br />

Viite-eheyssääntö:<br />

~ Viiteavaimen arvon on löydyttävä viitatun relaation<br />

pääavaimen arvoista (tai viiteavaimen on oltava tyhjä)<br />

~ Ts. ei saa viitata sellaiseen riviin, jota kannasta ei löydy<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 11 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Esimerkki<br />

Relaatiokaavat :<br />

Kurssi (krs_id, krs_nimi, krs_laajuus, krs_alku_pvm,<br />

krs_loppu_pvm)<br />

Opiskelija(opi_id, opi_sukunimi, opi_etunimi, opi_katuosoite,<br />

opi_postino, opi_puhno)<br />

Osallistuminen(krs_id (FK), op_id (FK), krs_arvosana)<br />

Relaatiot:<br />

Kurssi krs_id krs_nimi krs_laajuus krs_alku_pv<br />

k2227 Yrttitietous 5 28-Aug-06<br />

k3331 Metsänhoito 9 28-Aug-06<br />

Opiskelija opi_id opi_sukunimi opi_etunimi opi_katu…<br />

o1007 Lokki Mervi Kolkekuja...<br />

o1008 Ahti Eino Pitkätie 5..<br />

o1009 Kuusi Eero Aarnipolku…<br />

Osallistuminen krs_id op_id krs_arvosana<br />

k2227 o1007 5<br />

k2227 o1009 2<br />

k3331 o1008 5<br />

k3331 o1007<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 12 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Relaatiokaavio:<br />

viitattu relaatio<br />

viittaava relaatio<br />

viitattu relaatio<br />

Kurssi<br />

krs_id<br />

krs_nimi<br />

krs_laajuus<br />

krs_alku_pvm<br />

krs_loppu_pvm<br />

1<br />

0..*<br />

Osallistuminen<br />

krs_id<br />

opi_id<br />

krs_arvosana<br />

0..*<br />

1<br />

Opiskelija<br />

opi_id<br />

opi_sukunimi<br />

opi_etunimi<br />

opi_katuosoite<br />

opi_postino<br />

opi_puhno<br />

PK: krs_id<br />

PK: krs_id, opi_id<br />

FK: krs_id<br />

FK: opi_id<br />

PK: opi_id<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 13 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Muita avaimia<br />

Toisioavain, sivuavain, hakuavain<br />

~ Secondary Key<br />

~ Attribuutti tai attribuuttijoukko, jonka avulla tietoa haetaan<br />

usein<br />

esim. sukunimi<br />

• Toisioavain ei yksilöi relaation riviä<br />

• Relaatiolla voi olla useita toisioavaimia<br />

• Toisioavaimen perusteella luodaan indeksi<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 14 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Sovellusalueen eheyssäännöt<br />

Lisäksi on mahdollista määritellä sovellusalueen sisäisiä<br />

eheyssääntöjä<br />

Esim.<br />

Asiakkaasta tulee VIP-asiakas kun hänen kuukausittaisten<br />

ostojensa yhteismäärä on 3 kk:n aikana ylittänyt 2000 €<br />

Tietokantatuotteiden tuki sovellusalueen eheyssääntöjen<br />

määrittelylle vaihtelee<br />

Vaatii yleensä ohjelmointimahdollisuuden<br />

esim. herätetoiminto (trigger), proseduuri tms.<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 15 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Käsittely<br />

• Relaatiotietokannan käsittely perustuu relaatioalgebraan<br />

• Perusoperaatiot tiedon hakuun:<br />

alkuperäinen suomennos arkiselitys<br />

Selection,<br />

Restriction<br />

Valinta,<br />

rajoitus<br />

Rivien valinta<br />

Projection Projektio Sarakkeiden valinta<br />

Union Unioni Useammasta taulusta tietoja<br />

omille riveilleen<br />

Intersection Leikkaus Useammasta taulusta<br />

yhteiset tiedot<br />

Set<br />

Difference<br />

Erotus Ensimmäisestä taulusta<br />

tiedot joita ei löydy<br />

toisesta taulusta<br />

Join Liitos Useammasta taulusta tietoja<br />

samoille riveille<br />

Cartesian<br />

product<br />

Karteesinen<br />

tulo,<br />

ristitulo<br />

Useammasta taulusta tietoja<br />

siten että tiedot yhdistetään<br />

kaikin mahdollisin tavoin<br />

Eksaktit kuvaukset operaatiosta löytyvät<br />

• Connolly, Begg. Luku 4<br />

• Relaatiosanastosta www.cs.helsinki.fi/relaatiosanasto/<br />

• SQL-kielessä ko. toiminnot on toteutettu englannin kieltä<br />

muistuttavalla syntaksilla<br />

(Kutakin toimintoa käsitellään tarkemmin SQL:n<br />

yhteydessä)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 16 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Access<br />

Yleistä<br />

• Relaatiotietokantatyyppinen ohjelmisto, jossa on mukana<br />

myös sovellus- ja raporttikehitin<br />

• Ohjelman käyttö levisi räjähdysmäisesti sen julkaisun<br />

jälkeen 1992 – 1993<br />

• Käyttäjinä ennemminkin tavalliset käyttäjät kuin<br />

atk-ammattilaiset<br />

• Access venyy yllättävän moneen käyttöön<br />

henkilökohtaisista kortistoista laajoihin yritysratkaisuihin<br />

Huom: tiedon suojaus ja samanaikainen käyttö<br />

(tapahtumankäsittely) heikoissa kantimissa<br />

• ODBC:n (Open Database Connectivity) avulla liitettävissä<br />

suuriin relaatiotietokantoihin<br />

(Taulut ’oikeassa, isossa’ tietokannassa, joka huolehtii<br />

samanaikaisesta käytöstä ja tapahtumankäsittelystä)<br />

• Perso muistille, vie paljon levytilaa<br />

• Tietokanta kannattaa tiivistää aika-ajoin<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 17 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Access-sovellus<br />

• Tietokanta sekä sitä käsittelevät ohjelmat tallennetaan<br />

samaan tiedostoon<br />

Ohjelman tietoriippuvuus<br />

Tietojen ohjelmariippuvuus<br />

• Tiedostotyyppi .MDB<br />

Perusobjektit<br />

1. Taulu<br />

2. Kysely<br />

3. Lomake<br />

4. Raportti<br />

5. Makro<br />

6. Moduli<br />

+ velhot<br />

TAULU<br />

KYSELY<br />

LOMAKE RAPORTTI<br />

MAKRO<br />

MODULI<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 18 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

• Accessissä kaikki objektit (1-4) voidaan avata joko<br />

1. Rakenteen tarkastelua ja muuttamista varten (design)<br />

2. Tietosisällön tarkastelua tai muuttamista varten (open)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 19 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Taulu<br />

= Talletettu relaatio<br />

• Tauluihin tallennetaan tietokantaan tulevat tiedot<br />

• Taulu luodaan määrittelemällä sen sarakkeet<br />

sarakkeita on oltava vähintään yksi<br />

• Taululle on määriteltävä avain<br />

joko jokin olemassaolevista sarakkeista tai niiden<br />

yhdistelmä tai erillinen (merkityksetön) numero<br />

• Taululle annetaan nimi tallennuksen yhteydessä<br />

Käytä kuvaavia taulun nimiä<br />

(käytä systemaattisesti joko yksikkö- tai monikko-muotoa)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 20 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Vinkkejä<br />

1. Määrittele ensin kaikkien kenttien tietotyypit.<br />

(Esim. pääavaimet -> Autonumber,<br />

jos (myös) viiteavain -> number.) Tallenna<br />

2. Määrittele pääavain. Tallenna<br />

3. Määrittele viiteavaimet Relationships -ikkunassa. Tallenna<br />

4. Määrittele muut kenttäkohtaiset eheyssäännöt<br />

5. Määrittele Indeksit<br />

• Kun tauluun tallennetaan tietoa syntyvät tietueet (l. rivit)<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 21 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Taulujen väliset yhteydet<br />

• Viiteavaimet ja yhteydet taulujen välillä tehdään<br />

Relationships –työkalulla (Tools – Relationship)<br />

• Huom. Muista rastittaa Edit Relatationships-ikkunassa<br />

vaihtoehto Enforce Referential Integrity.<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 22 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Kysely<br />

• Kyselyillä haetaan tauluista tietoa<br />

• Kyselyssä voidaan yhdistää useamman taulun tietoa<br />

tyypillisesti viiteavainten avulla<br />

• Kyselyssä halutaan usein mukaan vain tietyn hakuehdon<br />

täyttävät tietueet<br />

• Kyselyssä voidaan ottaa mukaan vain osa taulujen<br />

sarakkeista<br />

• Sarakkeiden järjestys voi poiketa taulun sarakkeiden<br />

järjestyksestä<br />

• Rivit voidaan kyselyssä järjestää halutulla tavalla<br />

• Kysely voidaan tallentaa, jolloin sille on annettava nimi<br />

• Käytä kuvaavia kyselyn (näkymän) nimiä<br />

(käytä systemaattisesti joko yksikkö- vai monikko-muotoa)<br />

• Alkuliite V_ tai Q_ saattaa olla hyödyllinen<br />

tällöin pystyt nopeasti päättelemään onko kysymyksessä<br />

taulu vai kysely<br />

• Tallennettua kyselyä voidaan käyttää taulun tavoin:<br />

1. Kyselyjä voidaan käyttää uusien kyselyjen pohjana<br />

2. Niiden tietoja voidaan myös päivittää<br />

(ei kaikissa tapauksissa) ja<br />

päivitykset tallentuvat alkuperäiseen tauluun.<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 23 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 24 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Lomake<br />

• Lomakkeella tiedot voidaan esittää havainnollisemmin kuin<br />

taulussa tai kyselyssä (= pelkkä taulukko)<br />

• Lomakkeen avulla tiedon syöttö ja selailu on selkeämpää<br />

• Kullakin lomakkeella on ns. perustaulunsa (tai kyselynsä)<br />

• Yhdelle lomakkeelle voidaan kuitenkin koota tietoa<br />

useammasta taulusta alilomakkeiden avulla<br />

• Kyselyjen käyttö lomakkeiden pohjana on<br />

suositeltavampaa kuin taulujen, koska kyselyjä voidaan<br />

tarvittaessa muuttaa joustavammin kuin tauluja<br />

• Kun lomake tallennetaan tietokantaan sille annetaan nimi<br />

• Käytä kuvaavia lomakkeen nimiä<br />

(käytä systemaattisesti joko yksikkö- vai monikko-muotoa)<br />

• Etuliite f_ tai F_ saattaa olla tarkoituksenmukainen<br />

Tämän kurssin aikana ei paneuduta lomakkeisiin<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 25 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Raportti<br />

• Raportilla voidaan tiedot tulostaa havainnollisemmin kuin<br />

tauluna tai kyselynä<br />

• Tiedot voidaan tulostaa tulostimelle, näytölle tai tiedostoon<br />

• Kullakin raportilla on ns. perustaulunsa (tai kyselynsä)<br />

• Yhdelle raportille voidaan kuitenkin koota tietoa<br />

useammasta taulusta aliraporttien avulla<br />

• Kyselyjen käyttö raporttien pohjana on suositeltavampaa<br />

kuin taulujen, koska kyselyjä voidaan tarvittaessa muuttaa<br />

joustavammin kuin tauluja<br />

• Kun raportti tallennetaan tietokantaan sille annetaan nimi.<br />

• Käytä kuvaavia raportin nimiä<br />

(käytä systemaattisesti joko yksikkö- vai monikko-muotoa)<br />

• Etuliite r_ tai R_ saattaa olla tarkoituksenmukainen<br />

Tämän kurssin aikana ei paneuduta raportteihin<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 26 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Makro<br />

• Makrolla voidaan automatisoida toistuvia toimenpiteitä<br />

• Makro-ohjelmointi ’matkii’ käyttäjän näytöllä suorittamia<br />

toimenpiteitä<br />

Moduli<br />

Tämän kurssin aikana ei paneuduta makro-ohjelmointiin<br />

• Ohjelmamoduleilla voidaan tehdä monimutkaisempaa<br />

laskentaa, kontrollirakenteita tms.<br />

• Ohjelmointikieli on Access Basic,<br />

joka on osajoukko Visual Basicistä<br />

Tämän kurssin aikana ei paneuduta moduli-ohjelmointiin<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 27 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Relaatiotietokanta ?<br />

Relaatiomallin isä Codd määritteli 1985 joukon sääntöjä,<br />

jotka tietokannanhallintajärjestelmän tulisi täyttää,<br />

jotta sillä olisi ’oikeus’ kutsua itseään relationaaliseksi...<br />

http://www.ncb.ernet.in/education/modules/dbms/general/CoddsRules<br />

.htm<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00


HELIA – TIKO-05 28 (28)<br />

ICT03D Tieto ja tiedon varastointi<br />

O.Virkki 25.1.2007<br />

Käsitteitä<br />

Relaatiokaava (Relation schema)<br />

Formaali, tekstimuotoinen tapa kuvata relaation rakenne<br />

R(a1, a2, … an)<br />

Avain (Key)<br />

Tietueen yksilöivä tieto, yksilön (tietojen) tunniste<br />

Relaatiotietokannassa attribuutti / attribuuttijoukko, joka<br />

yksilöi relaation rivin<br />

Relaatiokaavio<br />

Tietokannan tietosisällön graafinen kuvaus, jossa kohdetta<br />

kuvataan relaatioina ja niiden välisinä yhteyksinä<br />

relaatiotietomallin mukaisesti. Kuvaus on riippumaton<br />

toteutusratkaisuista.<br />

Yksilön eheyssääntö<br />

Relaatiossa on oltava pääavain joka yksilöi jokaisen relaation<br />

rivin. Pääavain tai sen osa ei saa olla tyhjä<br />

Viite-eheyssääntö<br />

Relaation viiteavaimen arvon on löydyttävä<br />

viitatun relaation pääavaimen arvojen joukosta<br />

Arvojoukkoeheyssääntö<br />

Relaatiossa attribuutin kaikkien arvojen on kuuluttava<br />

samaan arvojoukkoon<br />

ict03d_relaatiomalli.doc 25.1.2007 12:07:00

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!