Tietojärjestelmä tuotantoympäristössä
Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen käyttäjän käytössä Tavoitteet Tutustutaan tietokantaan osana suurempaa tietojärjestelmää. Tutustutaan suurten ja usean käyttäjän tietokantojen haasteisiin. Samanaikaisuuden hallinta Tehokkuus Hallittavuus ja ylläpidettävyys Luodaan katsaus tietokannan määrittely- ja suunnitteluprosessiin.
Pieni tietokantajärjestelmä (esim. autovuokraamo) Samalla työasemalla esimerkiksi MS Access-tietokannan hallintajärjestelmä Tietokanta Access-muodossa (.mdb) Tietokantaa käytetään yleensä vain yhdeltä koneelta. Access-ohjelman rajat riippuvat kehittäjän valitsemasta tietokantamoduulista eli tietokantatoiminnallisuuden toteuttavasta ohjelmistosta: JET Accessin perinteinen tietokantamoduuli Käytettiin tällä kurssilla Sallii vain pienen määrän samanaikaisia käyttäjiä Tiedosto Uusi Tyhjä tietokanta MSDE (Microsoft Data Engine) Skaalautuu paremmin suuriin järjestelmiin (yhteensopiva SQL Server tuotteen kanssa) Tiedosto Uusi Projekti
Suuri tietokantajärjestelmä (esim. matkavarausjärjestelmä) Yksityisasiakkaat Yritykset/etuoikeutetut asiakkaat Ylläpitäjät Internet-palvelin Tietokantapalvelin Laskentaryväs
Suuren tietokantajärjestelmän haasteita (1) Eri käyttäjäryhmille halutaan erilaisia oikeuksia tietokantaan Yksityisasiakkaat saavat selailla tarjontaa ja tehdä ostoja. Etuoikeutetut asiakkaat saavat lisätä tarjontaa. Ylläpitäjille on annettava pääsy koko tietokantaan. Ratkaisu Luodaan erilaiset käyttöliittymät ja rajapinnat tietokantaan. Suojataan tietokanta. Annetaan käyttäjäkohtaisesti tarvittavat luku- ja päivitysoikeudet.
Suuren tietokantajärjestelmän haasteita (2) On hallittava samanaikaisista pyynnöistä aiheutuvat ongelmat. Kaksi asiakasta haluaa varata viimeisen paikan. Asiakkaat tiedustelevat vapaiden paikkojen lukumäärää. A B??
Suuren tietokantajärjestelmän haasteita (2) Järjestelmä vastaa kummallekin asiakkaalle, että vapaita paikkoja on yksi. A B 1 1
Suuren tietokantajärjestelmän haasteita (2) Koska yksi paikka on vapaana, asiakkaan A varaus kirjoitetaan tietokantaan. A B A! A
Suuren tietokantajärjestelmän haasteita (2) Koska yksi paikka on vapaana, asiakkaan B varaus kirjoitetaan tietokantaan. A B B! A
Suuren tietokantajärjestelmän haasteita (2) Asiakkaan B varaus on tietokannassa, mutta asiakkaan A ei ole. Kummankin asiakkaan varaus on näennäisesti viety loppuun. A B B Ratkaisut: tietueiden ja taulujen lukitus tietokantaoperaatioiden koostaminen tapahtumiksi
Suuren tietokantajärjestelmän haasteita (3) Kriittisten tietojärjestelmien tiedon säilyvyyteen on voitava aina luottaa. Esimerkki pohdittavaksi: Pankki välittää asiakkaiden maksuja tililtä toiselle. Vakava laiterikko tuhoaa (ensisijaisen) tilitiedot sisältävän tallennusvälineen eräänä päivänä kello 12.34.16. Miten voidaan teknisesti varautua, että tietokannan sisältö (mm. tilien saldot) saataisiin tällaisissa tilanteissa palautettua? Ratkaisuja Tietojen kahdennus (vikasietoiset levyjärjestelmät, RAID (Redundant Array of Inexpensive Disks)) varmistaa, että levyrikko ei tuhoa tietoja. Varmistuskopiot sallivat tietokannan tietosisällön palautuksen. Lokitiedostojen avulla on mahdollista jatkaa varmistuskopion tilanteesta.
Suuren tietokantajärjestelmän haasteita (4) Laskentatehon hallinta Erittäin raskaat kyselyt voivat kuormittaa liikaa tietokantapalvelinta. Kyselyiden vaatima laskenta voidaan tehdä erillisellä laskentapalvelimella tai palvelimilla. Laitteistoratkaisut On arvioitava tietokannan kuormitus ja varustauduttava riittävällä laitteistolla. Tietojärjestelmä halutaan suunnitella skaalautuvaksi: laitteistot voidaan korvata tehokkaammilla ilman, että perusratkaisua halutaan muuttaa. Tietokannan organisointi Tehokkuuden saavuttamiseksi indeksointi on keskeistä: luodaan aputietorakenne, jolla haluttuihin kenttiin kohdistuvat haut nopeutuvat.
Suuren tietokantajärjestelmän haasteita (4) Access-demo indeksoinnista: S-levyn tiedosto suuri.mdb sisältää yhdessä taulussa miljoonan ihmisen tiedot: Tiedoston koko on 73620 kb. Kysely Hae ihmiset, joiden sukunimi on Ranta kestää n. 8 sekuntia (konetehosta riippuen)
Suuren tietokantajärjestelmän haasteita (4) Luodaan nyt indeksi Sukunimi-kentälle: indeksointi kestää n. 12 s. (aikaisemmin konetehoin) tiedostokoko 83372 kb Em. hakukysely kestää enää n. 1 s.
Miten tietokantajärjestelmiä kehitetään? Tietokantajärjestelmä on osa yrityksen tietojärjestelmäarkkitehtuuria. Tieto Prosessit Verkko Tietojärjestelmäarkkitehtuuri Ihmiset Tapahtumat ja ajan hetket Syyt Lähde: McFadden et al., Modern Database Management. Addison-Wesley 1999. Edellä kuvattuja mallinnetaan esim. UML-kaavioin. Ks. esim Wikipedia-artikkeli http://fi.wikipedia.org/wiki/uml-mallinnus Mallinnuksen pohjalta voidaan käynnistää tietokantaprojekteja (jotka voivat käynnistyä myös muulla tavoin).
Tietokannan suunnittelu Tietokannan suunnittelu perustuu tiedon käsitteelliseen mallintamiseen Asiakas Tilaus Tilausrivi Tuote tekee sisältää kohdistuu Yllä on esimerkki yksilö-yhteyskaaviosta (ER-kaavio) Sisältää aluksi tärkeimmän tietosisällön. Tarkennetaan ja laajennetaan asteittain ja johdetaan lopulta relaatiokaavio.
Tietokannan toteutus Relaatiotietokanta toteutetaan tietokannan hallintajärjestelmällä (TKHJ), kuten tälläkin kurssilla ollaan tehty. Tietokannan hallintajärjestelmiä: Oracle MySQL PostgreSQL MS Access Etuja 1 : Vältytään toisteisuudelta ja epäjohdonmukaisuudelta. Tiedon hakeminen ja jakaminen usealle käyttäjälle on helpompaa. Sovellusten kehittäminen tietokannan päälle on helpompaa TKHJ hoitaa datan hallintaan liittyvän infrastruktuurin. Tiedon ja sitä käsittelevien ohjelmien riippumattomuus. Tietokantaa voi laajentaa ilman, että se vaikuttaa sovelluksiin. Tiedon syöttäjät voidaan pakottaa (yrityksen) standardien noudattamiseen. 1) Lähde: McFadden et al., Modern Database Management. Addison-Wesley 1999.