Luento 1
Mikä on tietokanta?
- Tietokanta on kokoelma yhteenliittyvää tietoa (data)
- Tietokanta on loogisesti yhtenäinen kokoelma tietoa jolla on
jokin merkitys.
- Tietokanta on suunniteltu, rakennettu ja täytetty tiedolla
jotain tiettyä tarkoitusta varten. Sillä on jokin tarkoitettu
käyttäjäryhmä ja joitain ennaltalaadittuja ohjelmia joita
käyttäjät käyttävät.
Yleisiä vaatimuksia tietokannalta
- Kukin tieto talletetaan kannassa vain yhteen paikkaan eli ei
esiinny turhaa toistuvuutta (redundanssia)
- Tietoja pystytään hakemaan joustavasti erilaisin perustein, myös
sellaisin, joita ei tietokantaa suunnitellessa ole pystytty
ennakoimaan.
- Tietokannan rakenteellinen muuttaminen on joustavaa
- Hyväksikäyttö ja sovellusohjelmat ovat riippumattomia tietojen
fyysisestä talletusrakenteesta: tietoriippumattomuus
Tietokantatyyppejä
- Hierarkkiset tietokannat



- Verkkotietokannat
- Relaatiotietokannat
- Oliotietokannat
Relaatiotietokannat
- yksinkertaisin, joustavin ja toteuttaa parhaiten tietokannalle
asetettavat vaatimukset
- Vaatii eniten koneresursseja
- E.F. Codd esitteli relaatiomallin jo 1970
- Relaatiotietokannassa tiedot esitetään tauluina (table)
yhtä riviä kutsutaan tietueeksi (record)
- taulun jokaisella rivillä yhtä monta tietoa
- jokaisella rivillä yksikäsitteinen perusavain
- kutakin riviä vastaa jokin reaalimaailman kohde
- kuhunkin kohteeseen liitetään vain siihen välittömästi
liittyvät ominaisuudet
- tauluja kutsutaan myös relaatioiksi
- Kukin yksittäinen tieto kannassa voidaan hakea ainakin
ilmoittamalla taulun nimi, perusavaimen sarakenimi ja avaimen arvo
sekä haettavan tiedon sarakenimi.
Ainakin tämä hakutapa olemassa, lisäksi lukemattomia muita.
Kentät (fields)
Kenttiä luotaessa niille määritellään seuraavanlaisia ominaisuuksia:
- Kentän nimi
Kentän nimeksi kannattaa valita jokin selkeä ja kuvaava nimi.
Nimessä kannattaa kuitenkin välttää välilyöntejä,
erikoismerkkejä ja skandinaavisia merkkejä (å,ä,ö).
- Tietotyyppi
- Kiinteä vai vaihtuvamittainen kenttä?
- Maksimipituus ja mahdollinen tarkkuus
- Onko tieto pakollinen
mahdollisimman moni kenttä pitää määritellä pakolliseksi
jolloin vältetään NULL-arvojen tuomat ongelmat
- Tarkistukset syötettävän tiedon oikeellisuudelle tai sallittujen
arvojoukkojen joukko.
- Oletusarvo
AVAIMET (keys)
- perusavain (primary key)
- yksikäsitteinen muodostuen yhdestä tai useammasta sarakkeesta
- taulusta ei saa löytyä identtisiä perusavaimen arvoja
- ei saa puuttua yhdeltäkään riviltä
- perusavaimen eheys (entity integrity)
- toissijaiset avaimet (secondary key, secondary index)
nopeuttavat taulun järjestämistä
- viite-avaimet
määritysalue on sama kuin jonkin perusavaimen
VIITE-EHEYS (REFERENTIAL INTEGRITY)
- jokaista taulussa esiintyvää (NULL:sta poikkeavaa) viiteavaimen arvoa pitää vastata
sama perusavaimen arvo taulussa, johon viiteavain viittaa
- yritettäessä rikkoa viite-eheyttä perusavaimen päivityksellä on kolme vaihtoehtoa:
- NULLIFIES eli viiteavaimen nollaus
kaikki poistuvaan perusavaimeen viittaavat viiteavaimet muutetaan
NULLeiksi
soveltuu vain sarakkeisiin, joilta ei ole kielletty puuttuvaa arvoa (NOT
NULL)
- CASCADES eli johdannaispoisto:
kaikki poistuvaan perusavaimeen viittaavat viiteavaimet ja vastaavat rivit
poistetaan
- RESTRICTED eli rajoitettu poisto:
voidaan poistaa vain perusavaimet, joihin ei ole viittauksia eli kyseistä
päivitystä ei tehdä.