Mikä on tietokanta?
- Luentotaltiointi
- Osoitekirja
- Ratkaisu 1: Paperi ja kynä
- Ratkaisu 2: Irtolehtikansio ja kynä
- Ratkaisu 3: Tekstitiedosto
- Tiedosto kasvaa hyvin suureksi
- Osoitteet ja nimet on erotettava toisistaan
- Henkilöllä on useampia asuntoja
- Halutaan lisätä uutta tietoa tai tehdä yhteenvetoja
- Tiedon organisointi käyttäjän mukaan
- Liittyvien tietojen pakollinen olemassaolo
- Monta päivitystä, jotka tehdään joko kaikki tai ei yhtään
- Tietokone kaatuu
- Useampi tietokone saman tiedon käsittelijänä
- Yleisiä vaatimuksia tietokannalta
- Tietokannan suunnittelu
- Käsitteellinen mallintaminen (ER-malli)
- ER-kaavioiden piirtäminen
- Esimerkkikaavio
- Esimerkki
Luentotaltiointi
- tiedonhallinta0102.mp3 2.7M
- tiedonhallinta0103.mp3 2.7M
- tiedonhallinta0104.mp3 3.3M
- tiedonhallinta0105.mp3 3.2M
- tiedonhallinta0106.mp3 2.9M
- tiedonhallinta0107.mp3 2.6M
Tällä luennolla selvitetään mikä on tietokanta. Käydään läpi myös tietokantojen suunnittelun perusteita ER-mallinnuksen avulla.
- 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.
Osoitekirja
Ratkaisu 1: Paperi ja kynä
- Halpa ja yksinkertainen ratkaisu
- Hankala etsiä, päivittää, jakaa ja laajentaa
- Kenen puhelinnumero olikaan 123456?
- Miten korjata osoite jos edellinen on kirjoitettu tussilla? Entäs jos tila ei riitä?
- Hankalaa lisätä uutta informaatiota esim. sähköpostiosoitteita
- Tiedon eheys? esim. Kaksi ihmistä asuu samassa kommuunissa. Toisesta
vain viittaus toiseen (kts. Kallen osoite). Toinen muuttaakin muualle. Muistetaanko päivittää myös toiselle uusi osoite?
- Kalle Kuoma, opiskelijakatu 13 b 2, 40100 Jyväskylä
- Olli Opiskelija, kts. Kallen osoite
- Turhaa tiedon toistoa
- Kalle Kuoma, opiskelijakatu 13 b 2, 40100 Jyväskylä
- Olli Opiskelija, opiskelijakatu 13 b 2, 40100 Jyväskylä
- Varmuuskopiointi?
Ratkaisu 2: Irtolehtikansio ja kynä
- Voidaan helposti pitää järjestyksessä esim. nimen mukaan
- Voidaan helpommin lisätä, poistaa ja päivittää
- Edelleen samat ongelmat kuin ensimmäisessä vaihtoehdossa. Hakeminenkaan ei onnistu helposti kuin nimen mukaan.
Ratkaisu 3: Tekstitiedosto
- Vapaasti muotoiltavissa
- Rajoittamaton koko
- Helposti kopioitavissa
- Jaettavissa
- Tekstihaku
- Edelleen ongelmana tiedon toistuminen ja eheys
- Entä jos vaatimukset kasvavat?
Tiedosto kasvaa hyvin suureksi
- Hakeminen hidastuu
- Haku: "Opiskelija" antaakin tulokseksi kaikki joiden osoitteessa lukee "opiskelijankatu" eikä pelkästään "Olli Opiskelija"
Ratkaisu
- Jaetaan tieto kenttiin esim. nimi, osoite ja puhelinnumero
- Lisätään paljon käytetyille kentille hakemisto
Osoitteet ja nimet on erotettava toisistaan
- Isoja perheitä, jotka muuttavat usein. Jonkun osoite saattaa unohtua päivittää.
- Olli Opiskelija, opiskelijakatu 13 b 2, 40100 Jyväskylä
- Oili Opiskelija, opiskelijakatu 13 b 2, 40100 Jyväskylä
- Otto Opiskelija, opiskelijakatu 13 b 2, 40100 Jyväskylä
- Oskari Opiskelija, opiskelijakatu 13 b 2, 40100 Jyväskylä
- Säästetään tilaa jos voidaan tehdä päivitys vain yhteen paikkaan
- Ei enää ongelmia joulukortteja lähetettäessä: yksi kortti jokaiseen osoitteeseen
Ratkaisu
- Kaksi tiedostoa: yksi henkilöille ja yksi osoitteille

- Kuinka yhdistetään henkilö ja osoite?

Myös postinumero ja postitoimipaikka voitaisiin laittaa eri tiedostoihin.
Henkilöllä on useampia asuntoja
- Henkilö voi omistaa tai vuokrata useita asuntoja
- Monta henkilöä voi omistaa useita asuntoja. (Monen suhde moneen, M-to-M)
- Usea henkilö voi omistaa yhdessä asunnon (Monen suhde yhteen, M-to-1)
- Yksi henkilö voi omistaa useita asuntoja (Yhden suhde moneen, 1-to-M)
- Yksi henkilö voi omistaa yhden asunnon(Yhden suhde yhteen, 1-to-1)
Ratkaisu
- Henkilöstä viittaus hänen omistamaansa asuntoon jos useampi voi omistaa
yhdessä asunnon (Monen suhde yhteen)

Henkilö Etunimi Sukunimi Asunto Olli Opiskelija 0 Oili Opiskelija 0 Otto Opiskelija 0 Oskari Opiskelija 0 Kalle Kuoma 0 Matti Meikäläinen 1 Maija Meikäläinen 1 Kalle Kaljasieppo 2 Asunto AsuntoID Osoite 0 opiskelijakatu 13 b 2 1 Taitoniekantie 13 G 13 2 Olutkuja 3 - Asunnosta viittaus omistajaan jos henkilöllä voi olla useita asuntoja (Yhden suhde moneen)

Hetu Etunimi Sukunimi 010173-0001 Olli Opiskelija 010273-000k Oili Opiskelija 010373-0000 Otto Opiskelija 010473-000l Oskari Opiskelija 011078-1111 Kalle Kuoma 011280-0101 Kalle Kaljasieppo 051076-1234 Maija Meikäläinen 101075-1111 Matti Meikäläinen AsuntoID Osoite 0 opiskelijakatu 13 b 2 010173-0001 1 Taitoniekantie 13 G 13 010173-0001 2 Olutkuja 3 011280-0101 - Uusi tiedosto, joka yhdistää omistajan ja asunnon (Monen suhde moneen).
Henkilö voi omistaa useita asuntoja ja asunnolla voi olla useita omistajia

Hetu Etunimi Sukunimi 010173-0001 Olli Opiskelija 010273-000k Oili Opiskelija 010373-0000 Otto Opiskelija 010473-000l Oskari Opiskelija 011078-1111 Kalle Kuoma 011280-0101 Kalle Kaljasieppo 051076-1234 Maija Meikäläinen 101075-1111 Matti Meikäläinen AsuntoID Osoite 0 opiskelijakatu 13 b 2 1 Taitoniekantie 13 G 13 2 Olutkuja 3 Omistaja Asunto 010173-0001 0 010273-000k 0 010373-0000 0 010473-000l 0 011078-1111 0 011280-0101 2 051076-1234 1 101075-1111 1 051076-1234 0 051076-1234 2
Halutaan lisätä uutta tietoa tai tehdä yhteenvetoja
- Halutaan tietää montako joulukorttia on lähetetty ja saatu
- Halutaan tulostaa siistit osoitelaput joulukortteihin
- Keneltä ei ole tullut yhtään joulukorttia pariin vuoteen?
Ratkaisu
- Uusien kenttien lisääminen
- Yhteenvetojen muodostaminen
- Kieli kyselyjen ja yhteenvetojen tekemiseen
Tiedon organisointi käyttäjän mukaan
- Muut perheenjäsenet haluavat nähdä nimet ja osoitteet yhdessä
- Vaimolle ei haluta näyttää entisten eikä varsinkaan nykyisten tyttöystävien osoitteita
Ratkaisu
- Käytetään valmiita kyselyjä näkyminä tietokantaan
- Voidaan yhdistää tietoja useasta tiedostosta
- Määritellään oikeuksia käyttäjien mukaan
Liittyvien tietojen pakollinen olemassaolo
- Postikorttia ei voi lähettää jollei löydy osoitetta
- Henkilöt eivät yksilöidy ilman henkilötunnusta esim. Matti Meikäläisiä voi olla useampi
Ratkaisu
- Nimeä ei voi syöttää jollei syötä myös henkilötunnusta
- Osoitetta ei voi poistaa jos se liittyy johonkin nimeen
Monta päivitystä, jotka tehdään joko kaikki tai ei yhtään
- Kaksi taloutta muuttaa yhteen eli täytyy muuttaa usean henkilön asumistietoja. Mitä jos tietokone kaatuu kesken muutosten?
Ratkaisu
- Esitetään, että kaikki päivitykset tehtäisiin yhtäaikaa
Tietokone kaatuu
- Ovatko tiedot vielä tallessa?
- Ovatko tiedot muuttumattomat?
Ratkaisu
- Varmistetaan, että kaikki vanha data on saatavilla viimeiseen hyväksyntään saakka.
Useampi tietokone saman tiedon käsittelijänä
- Kaksi käyttäjää päivittää tietokantaa yhtäaikaa
Ratkaisu
- Tapahtumat ovat atomisia eli eivät jakaudu osiin
- Tapahtumat tapahtuvat peräkkäin jossakin järjestyksessä
Yleisiä vaatimuksia tietokannalta
- Kukin tieto tallennetaan tietokannassa vain yhteen paikkaan eli ei esiinny turhaa toistuvuutta
- 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
Tietokannan suunnittelu
- Vaatimusten
määrittely
- Haastatteluin, kirjalliseen materiaaliin tutustumalla ja keskusteluin selvitetään järjestelmältä vaadittavat ominaisuudet. Apuna käytetään usein käyttötapaus-tekniikkaa.
- Käsitteellinen
mallintaminen
- Laaditaan kaavio, joka kuvaa tietokannan sisällön ja rakenteen.
- Käyttöliittymän suunnittelu
- Suunnitellaan sovelluksen rakenne ja sovellukseen kuuluvien näyttöjen sisältö ja rakenne
- Tietokannan looginen suunnittelu
- Kaavion pohjalta laaditaan varsinainen tietokannan rakenne
- Toteutus
- Toteutetaan edellisten osien suunnitelmat
Käsitteellinen mallintaminen (ER-malli)
Kohteet
- tunnistettavissa oleva asia tai tapahtuma
- Helposti havaittavia kohteita ovat käyttäjien puheissa esiintyvät henkilöt, esineet, tilat ja tuotteet. Hankalampia ovat käsitteelliset kohteet kuten tilaus tai sopimus.
- Kohteet ovat sellaisia, joista halutaan tallettaa tietoja pysyvästi tietokantaan. Raportit ja tulosteet eivät ole kohteita vaan tietokannan tiedoista johdettuja tulostietoja
Suhteet
- vähintään kahden kohteen välillä vallitseva riippuvuus
- Suhde voi merkitä olemassaoloa, toiminnallista suhdetta tai tapahtumaa
- suhteen aste määräytyy suhteeseen liittyvien kohteiden lukumäärän mukaan.
- suhteen kardinaalisuus:
- yhden suhde yhteen (one-to-one, 1-to-1)
- yhden suhde moneen (one-to-many, 1-to-M) (monen suhde yhteen (many-to-one, M-to-1))
- monen suhden moneen (many-to-many, M-to-M)
ominaisuudet
- jokaisella samantyyppisellä kohteella on tiettyjä
yhteisiä ominaisuuksia
- opiskelijoilla on kaikilla nimi, sotu, osoite yms
- Ominaisuuksien joukosta valitaan avaimeksi sopivat
- Avaimen pitää olla yksilöivä, uniikki
- Jokainen ominaisuus saa arvonsa tietystä arvojoukosta
- Ominaisuus voi olla yksi- tai moniarvoinen
- Sallitaanko ominaisuuksille tyhjät arvot
- Sallitaaanko tuntemattomat arvot
- Ominaisuudet voivat olla johdettuja
- esim. tilausten kokonaislukumäärä lasketaan yksittäistilausten kappalemääristä.
ER-kaavioiden piirtäminen
Piirto-ohjelmana voi käyttää mitä tahansa kaavioiden piirtämiseen sopivaa työkalua tai vaikka Exceliä. Järkevintä on kuitenkin käyttää erityisesti ER-kaavioita varten suunniteltuja työkaluja koska ne helpottavat kaavion muuntamista tietokannaksi. Tällä kurssilla käytetetään Erkka-ohjelmaa.
Muistisääntö
- Kohteen yhteyteen liitetään vain kohteeseen välittömästi liittyviä tietoja (ominaisuuksia)
- Kunkin tiedon päivitys tapahtuu vain yhteen paikkaan
- Kohteet

- Jokainen kohde esitetään suorakulmiona jonka sisällä lukee kyseisen kohteen kohdetyyppi.
- ominaisuudet

- esitetään ellipseillä jotka on liitetty jatkuvalla viivalla kohteeseen tai suhteeseen. Ellipsin sisällä lukee ominaisuuden nimi.
- Avaimina toimivat ominaisuudet alleviivataan.
- suhteet

- Jokainen suhde esitetään timanttikuviona jonka sisällä lukee suhteen nimi
- suhteeseen liittyvät kohteet liitetään siihen jatkuvalla viivalla joista jokaisen kohdalla lukee 1 tai M riippuen siitä onko kyseessä yhden suhde yhteen, yhden suhde moneen vai monen suhde moneen.
Esimerkkikaavio
Suunnitellaan tietokanta pienen yrityksen tietojen ja projektien hallintaan. Yksinkertaistettu versio tietokannan vaatimusmäärittelystä on seuraavanlainen:
- Työntekijöistä talletetaan nimi (etunimi, toinen nimi, sukunimi), puhelinnumerot, palkka ja tieto mahdollisista lapsista.
- Jokainen työntekijä toimii jollakin osastolla.
- Projekteissa työskentelee yksi tai useampia työntekijöitä. Sama työntekijä voi olla yhtäaikaa monessa projektissa.
- Jokaisella projektilla on yksi projektipäällikkö.
- Projekteissa rakennetaan monenlaisia laitteita. joihin tarvitaan tietty määrä tietynlaisia osia. Osia projekteille toimittavat monet eri toimittajat, joiden yhteystiedot pitää tallettaa järjestelmään. Järjestelmän pitää sisältää tieto siitä, mitä osia ja miltä toimittajalta on toimitettu millekin projektille.
- Jotkut osat koostetaan itse muista osista. Tietokannan pitää siis sisältää tieto myös osien koostumuksesta.
- Järjestelmästä pitää selvitä myös, mitkä toimittajat pystyvät toimittamaan mitäkin osia.

Esimerkki
Yksikkö jakaa avustuksia järjestöille päätöksien perusteella henkilöiden palkkaukseen palkollinen vai yksityisyrittäjä? mikä summa annettu avustukseksi avustuksella on ajankohta jolloin se annetaan
Kesken jäänyt kaavio:


Käyttäjien kommentit