Relaatiotietomallin perusteet
Relaatiotietomallin perusteet
Relaatiotietomallin perusteet
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