HELIA TIKO-05 1 (8) Tietokannanhallintajärjestelmä (DBMS) Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Peräkkäistiedostot... 3 Suorasaantitiedostot... 4 Tiedoston palvelut... 5 Tiedostopohjaisten ratkaisujen ongelmia:... 6 Tietokantapohjaiset ratkaisut... 7 Tietokantasovellus... 8 Tietokannanhallintajärjestelmien kehitys... 9 Tietokannanhallintajärjestelmän palvelut... 10 Tietokannan 3-tasomalli... 12 Tietokantapohjaisten ratkaisujen etuja... 13 Tietokantapohjaisten ratkaisujen haittoja... 14 Operatiiviset tietokannat versus Data Warehouse... 15 Käsitteitä... 16
HELIA TIKO-05 2 (8) Tietovarastotekniikan kehittyminen Tiedostopohjaiset ratkaisut Kulta-aika 1950-1960 luvut Kukin sovellus määritteli oman datansa Tyypillisesti vain yhden sovelluksen käytettävissä kerrallaan *) Tyypillisesti vain yhden käyttäjän käytettävissä kerrallaan *) Sovellus 1 Sovellus 2 Sovellus 3 Tietovarasto 1 Tietovarasto 2 Tietovarasto 3 *) ilman mittavaa ohjelmointityötä
HELIA TIKO-05 3 (8) Peräkkäistiedostot 1950-luku: reikäkortit ja reikänauhat 1960-luku: magneettinauhat käytössä edelleen mm. varmuuskopioinnissa, eräajoissa, päivityslokeissa, Tiedot sijaitsevat peräkkäin, ts. tiedot ovat luettavissa ja kirjoitettavissa vain peräkkäisjärjestyksessä Tyypillisesti tiettyä tiedostoa käytti vain yksi sovellus (mahdollisesti useampikin) Tyypillisesti sama tieto oli kopioitu useampaan tiedostoon
HELIA TIKO-05 4 (8) Suorasaantitiedostot 1960-luku: rumpu ja levymuistit tiedolla täytyy olla jokin yksilöivä ominaisuus, jota käytetään hakuperusteena eli ns. avaimena 1. hakemistorakenteinen peräkkäistiedosto l. indeksoitu peräkkäistiedosto 2. hajarakenne (hash) Tyypillisesti tiettyä tiedostoa käytti vain yksi sovellus (mahdollisesti useampikin) Tyypillisesti sama tieto oli kopioitu useampaan tiedostoon Hakemistorakenne Autotiedosto Hakemisto 1 1011 Volvo 0011 3 2 0235 Audi 0235 2 3 0011 Renault 0551 4 4 0551 Toyota 1011 1 Hajarakenne Autotiedosto Hajautin (=funktio) 1 0235 Audi Param. Os. 2 1011 Volvo Osoitin ylivuotoalueelle 0551 3 0011 Renault 4 0551 Toyota
HELIA TIKO-05 5 (8) Tiedoston palvelut Perustaminen Poistaminen Kopioiminen Siirto Uudelleen nimeäminen Avaaminen Luku Kirjoitus Sulkeminen (etsi, lue) (lisäykset, muutokset, poistot) Yksinkertaiset suojausmahdollisuudet (käyttöjärjestelmän tarjoamat)
HELIA TIKO-05 6 (8) Tiedostopohjaisten ratkaisujen ongelmia: Tiedon riippuvuus (Dependency) Tietovaraston rakenne oli kuvattu vain sitä käsittelevässä ohjelmassa (ns. Tietovaraston ohjelmariippuvuus) Tietovaraston rakenteen muuttaminen aiheutti muutoksia myös sitä käsittelevään ohjelmaan (ns. Ohjelman tietoriippuvuus) Eri tiedostoissa olevien tietojen käyttö hankalaa ; erillisyys (isolation & separation of data) Tiedostot määritelty eri ohjelmointikielellä yhteensopimattomat tiedostot (incompatible files) Kiinteät kyselyt & päivitykset (=ohjelmoitava) (fixed queries) Tiedon monistus (Duplication) Moneen kertaan tallennettu tieto saattoi olla ristiriitaista eri tiedostoissa Moneen kertaan tallennettu tieto vaati moninkertaisen tallennustilan Käsittelyn & koordinoinnin tarve kasvaa samalla Tiedon suojaus työlästä (Integrity & Security) Tietojen yhteiskäyttö työlästä: tiedon eheydestä huolehtivat mekanismit ohjelmoitava itse Virhetilanteiden hallinta työlästä: virhetilanteista toipuminen ohjelmoitava itse Käyttöoikeuksien hallinta työlästä: käyttöoikeuksien valvonta ohjelmoitava itse
HELIA TIKO-05 7 (8) Tietokantapohjaiset ratkaisut 1970-luku -> Tiedon tallennuksesta ja hausta vastaa keskitetysti tietokannanhallintajärjestelmä / tiedonhallintajärjestelmä Moni sovellus voi käyttää yhtäaikaa samaa tietovarastoa Moni käyttäjä voi käyttää yhtäaikaa samaa tietovarastoa Sovellusohjelma ei käsittele tietoa suoraan vaan DBMS:n kautta Tietovaraston ohjelmariippumattomuus Sovelluksen tietoriippumattomuus Sovellus 1 Sovellus 2 Sovellus 3 Tiedonkannanhallintajärjestelmä (DBMS) Tietovarasto 1 Tietovarasto 3 1. Verkkotietokannat 70-luku 2. Hierarkkiset tietokannat 70-luku 3. Relaatiotietokannat 80-luku 4. Oliotietokannat 2000-luku?
HELIA TIKO-05 8 (8) Tietokantasovellus Käyttäjä Sovellus Käsittelee näyttölomakkeen dataa Käsittelee raporttien dataa Luo ja välittää hakuja ja päivityksiä DBMS Lukee tietokannan tietoja Päivittää tietokannan tietoja Luo ja ylläpitää tietokannan tietorakenteita Valvoo tietokannan sääntöjä Huolehtii tapahtumankäsittelystä Kontrolloi käyttöoikeuksia Huolehtii varmuuskopioista Tietokanta Data Metadata Hakemistorakenteet Käyttäjät
HELIA TIKO-05 9 (1) Tietokannanhallintajärjestelmien kehitys Sovellus käyttöliittymä käyttöliittymä käyttöliittymä käyttöliittymä käyttöliittymä sovelluslogiikka sovelluslogiikka sovelluslogiikka sovelluslogiikka sovelluslogiikka tyyppimäärittelyt tyyppimäärittelyt tyyppimäärittelyt tyyppimäärittelyt tietokantalogiikka tietokantalogiikka tietokantalogiikka tyyppimäärittelyt eheys eheys tietokantalogiikka tietokantalogiikka tiedostoorganisaatio eheys eheys eheys tiedostoorganisaatio tiedostoorganisaatio tiedostoorganisaatio tiedostoorganisaatio Tiedostopalvelimet (->1970) Ensimmäiset tietokannat (1970 1980) Relaatiotietokannat (1980 - ) Aktiiviset rel.tietokannat (1990 - ) Olio-Relaatiotietokannat (2000 -> ) Tietokanta ict03d_dbms.doc 10.1.2007 11:37:00
HELIA TIKO-05 10 (7) Tietokannanhallintajärjestelmän palvelut 1. Tiedon varastointi, haku ja päivitys Dbms:n perustoiminto Ohjelmoijan ei tarvitse tietää fyysistä talletusrakennetta 2. Eheyden valvonta (Integrity Management) Tieto pysyy virheettömänä ja ristiriidattomana (määrittelyjen mukaisena) Menetelmät virheettömyyttä ja ristiriidattomuutta tukevien sääntöjen määrittelyyn 3. Transaktiokäsittely (Transaction Management) Päivitystapahtuman pitää onnistua kokonaan tai peruuntua kokonaan Samanaikaiset päivitykset eivät saa tietokantaa ristiriitaiseen tilaan Mikään häiriötilanne ei saa tietokantaa ristiriitaiseen tilaan 4. Samanaikaisuuden hallinta Samanaikaiset päivitykset eivät häiritse toisiaan Samanaikaiset päivitykset eivät saa tietokantaa ristiriitaiseen tilaan Osa tapahtumankäsittelyä 5. Toipuminen (Recovery) Mikään häiriötilanne ei saa tietokantaa ristiriitaiseen tilaan Osa tapahtumankäsittelyä
HELIA TIKO-05 11 (7) 6. Käyttöoikeuksien hallinta Menetelmät käyttäjien tunnistamiseen Menetelmät käyttöoikeuksien määrittelyyn ja valvontaan 7. Tietohakemisto Sisältää määrittelyt tietokantaan talletetusta tiedosta Metadataa mm. taulujen, avainten, sääntöjen, käyttäjien yms. määrittelyt 8. Tietoliikennetuki Osattava toimia yhdessä eri tietoliikenneprotokollien kanssa 9. Apuohjelmat Esim. Tiedon lataaminen tietokantaan Tiedon vienti / kopiointi tietokannasta Varmuuskopiointi Valvonta- & hallintaohjelmisto Tilastointi (esim. suorituskykyyn / käyttöön liittyen) Sovelluskehitin
HELIA TIKO-05 12 (7) Tietokannan 3-tasomalli Ansi Sparc arkkitehtuuri Ulkoinen näkymä 1 Ulkoinen näkymä 2 Ulkoinen näkymä n Käsite kaavio Sisäinen kaavio Fyysisen tason toteutus piilotetaan käyttäjiltä / ohjelmoijilta Ohjelma tieto -riippumattomuus Modulaarisuus: Muutos ulkoisella tai sisäisellä tasolla ei aiheuta muutoksia muihin tasoihin
HELIA TIKO-05 13 (7) Tietokantapohjaisten ratkaisujen etuja Tiedon ohjelmariippumattomuus Tiedon parempi saavutettavuus Ad hoc käsittely ilman vaativaa ohjelmointia... Eri sovellusten tietojen yhdistäminen helpompaa Parempi ylläpidettävyys Tiedon eheys (Integrity) Redundanssin(toiston) hallinta / eliminointi Eheyssääntöjen määrittely Tiedon yhteiskäyttöisyys helpompaa Toipumismekanismit virhetilanteiden varalle Tiedon suojaus (Security) Käyttöoikeuksien hallinta yksityiskohtaisella tasolla Ohjelmoinnin tehokkuus Standardi käsittelykieli Tietyt eheydestä, tietoturvasta ja toipumisesta vastaavat mekanismit valmiina ei tarvitse itse ohjelmoida
HELIA TIKO-05 14 (7) Tietokantapohjaisten ratkaisujen haittoja Monimutkaisuus Hinta Laitteisto Ohjelmisto Ylläpitotyö Suorituskyky
HELIA TIKO-05 15 (7) Operatiiviset tietokannat versus Data Warehouse Apuna seurannassa ja päätöksenteossa Vain lukukäyttöä: raportointia & analysointia Tiedonhaun nopeus tärkeää Suuria datamäääriä; myös historiatietoja Tietoja summattu ja toistettu Tiedot ladataan määräajoin operatiivisista kannoista (ei reaaliaikaisesti ajan tasalla) Ei tarvita samanlaisia palveluja kuin operatiivisissa järjestelmissä, (erit. tapahtumankäsittelyä) Nousu 1990-luvulla Ei yhtä teknologiaa ylitse muiden; usein tuotesidonnaisia ratkaisuja
HELIA TIKO-05 16 (7) Käsitteitä Tietokanta (Database) Tiettyä kohdealuetta kuvaavien tietojen organisoitu kokoelma, Relaatiotietokanta (Relational Database) Relaatiotietomallin mukaisesti organisoitu tietokanta Relaatiotietomalliin perustuvan tietokannan hallintajärjestelmän avulla toteutettu tietokanta Tietomalli (Data Model) Malli, jonka mukaan tietokannan tiedot organisoidaan. Malli koostuu joukosta peruskäsitteitä, -sääntöjä ja - operaatioita Esim: relaatiomalli, verkkomalli ja hierarkkinen malli. Tietokannanhallintajärjestelmä / Tiedonhallintajärjestelmä / (Database Management System) Ohjelmisto, joka keskitetysti vastaa tiedon määrittelystä, hausta ja ylläpidosta Relationaalinen Tietokannanhallintajärjestelmä / RDBMS Ohjelmisto, joka hakee ja ylläpitää tietokannan tietoja käyttäen relaatiotietomallin rakenne-, sääntö- ja käsittelyominaisuuksia Esim. Oracle, SQL Server, DB2, Sybase, Solid,... Tietokantasovellus Sovellus, jossa tietovarastot ja niitä käsittelevät ohjelmat on erotettu toisistaan siten, että tiedon varastoinnista vastaa keskitetysti tiedonhallintajärjestelmä