HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten ratkaisujen ongelmia:... 4 Tietokantapohjaiset ratkaisut... 5 Tietokannan ja sovelluksen työnjako... 6 Tietokannan hallintajärjestelmän palvelut... 7 Tietokannan 3-tasomalli... 9 Tietokantapohjaisten ratkaisujen etuja... 10 Tietokantapohjaisten ratkaisujen haittoja (?)... 11 Tiedonhallintajärjestelmän rakenne... 12 SQL-käsittelijä... 13 Parsinta (Parser)... 13 Optimointi (Optimizer)... 13 Tilan käsittelijä... 14 Puskurin käsittelijä (Buffer Manager)... 14 Tiedoston käsittelijä (File Manager)... 14 Transaktion käsittelijä... 15 Samanaikaisuuden hallinta (Concurrency Control)... 15 Toipumisen hallinta (Recovery Control)... 15
HAAGA-HELIA Heti-09 2 (6) 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ä
HAAGA-HELIA Heti-09 3 (6) 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)
HAAGA-HELIA Heti-09 4 (6) 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 Tiedostot määritelty eri ohjelmointikielellä = = yhteensopimattomat tiedostot Kiinteät kyselyt & päivitykset = ohjelmoitava Tiedon monistuminen (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 & Sequrity) 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
HAAGA-HELIA Heti-09 5 (6) Tietokantapohjaiset ratkaisut 1970-luku -> Tiedon tallennuksesta ja hausta vastaa keskitetysti tietokannan hallintajärjestelmä (Database Management System; DBMS) Sovellusohjelma ei käsittele tietoa suoraan vaan DBMS:n kautta Moni sovellus voi käyttää yhtäaikaa samaa tietovarastoa Moni käyttäjä voi käyttää yhtäaikaa samaa tietovarastoa Tietovaraston ohjelmariippumattomuus Sovelluksen tietoriippumattomuus Sovellus 1 Sovellus 2 Sovellus 3 Tiedonhallintajärjestelmä Tietovarasto 1 Tietovarasto 3 1. Verkkotietokannat 70-luku 2. Hierarkkiset tietokannat 70-luku 3. Relaatiotietokannat 80-luku 4. Oliotietokannat 2000-luku?
HAAGA-HELIA Heti-09 6 (6) Tietokannan ja sovelluksen työnjako 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 eheyssääntöjä Huolehtii tapahtumankäsittelystä Kontrolloi käyttöoikeuksia Huolehtii varmuuskopioista Tietokanta Data Metadata (tietohakemisto) Hakemistorakenteet Käyttäjät & käyttöoikeudet
HAAGA-HELIA Heti-09 7 (9) Tietokannan hallintajärjestelmän palvelut 1. Tiedon varastointi, haku ja päivitys Dbms:n perustoiminto Ohjelmoijan ei tarvitse tietää fyysistä talletusrakennetta 2. Eheyden valvonta Tieto pysyy virheettömänä ja ristiriidattomana (määrittelyjen mukaisena) Menetelmät virheettömyyttä ja ristiriidattomuutta tukevien sääntöjen määrittelyyn 3. Tapahtumakäsittely 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 Mikään häiriötilanne ei saa tietokantaa ristiriitaiseen tilaan Osa tapahtumankäsittelyä
HAAGA-HELIA Heti-09 8 (9) 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
HAAGA-HELIA Heti-09 9 (9) 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 Modulaarisuus: Muutos ulkoisella tai sisäisellä tasolla ei aiheuta muutoksia muihin tasoihin Ohjelma tieto -riippumattomuus
HAAGA-HELIA Heti-09 10 (9) 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 hallinta / eliminointi Eheyssääntöjen määrittely Tiedon yhteiskäyttöisyys helpompaa Toipumismekanismit virhetilanteiden varalle Tiedon suojaus (Sequrity) Käyttöoikeuksien hallinta yksityiskohtaisella tasolla Ohjelmoinnin tehokkuus Standardi käsittelykieli Tietyt eheydestä, tietoturvasta ja toipumisesta vastaavat mekanismit valmiina ei tarvitse itse ohjelmoida
HAAGA-HELIA Heti-09 11 (9) Tietokantapohjaisten ratkaisujen haittoja (?) Monimutkaisuus Hinta Ohjelmisto Laitteistovaatimukset Ylläpitotyö
HAAGA-HELIA Heti-09 12 (9) Tiedonhallintajärjestelmän rakenne SQL- liittymä Sovellusohjelma SQL- komentoja SQL- käsittelijä (SQL Processor) Tapahtuman käsittelijä (Transaction Manager) Tilan käsittelijä (Storage Manager) DATA & METADATA
HAAGA-HELIA Heti-09 13 (9) SQL-käsittelijä Parsinta (Parser) SQL-lauseen jäsennys Syntaksin tarkistus Taulu- ja kenttäviittausten tarkistus Käyttöoikeuksien tarkistus Optimointi (Optimizer) Suoritussuunnitelman valinta l. käytettävät saantimenetelmät Tarvittavat tiedot löytyvät yleensä tietohakemistosta (metadata) Suoritussuunnitelmiin ja saantimenetelmiin palataan myöhemmin
HAAGA-HELIA Heti-09 14 (9) Tilan käsittelijä Puskurin käsittelijä (Buffer Manager) Keskusmuistin käsittely Pyytää tarvittavat t (page / block) tiedostonkäsittelijältä ja sijoittaa muistiin (elleivät ne ole jo siellä) Palauttaa t tiedostonkäsittelijälle levylle kirjoitusta varten Tiedoston käsittelijä (File Manager) Tiedostojen sijainti levyillä Saantimenetelmät Hakee / kirjoittaa tarvittavat t CPU Puskuriallas hakuja kirjoituksia Tietokantatiedostot
HAAGA-HELIA Heti-09 15 (9) Transaktion käsittelijä Samanaikaisuuden hallinta (Concurrency Control) Eheyden ja erillisyyden hallinta (Consistency & Isolation) Lukitukset Toipumisen hallinta (Recovery Control) Jakamattomuuden ja pysyvyyden hallinta (Atomicity & Durability) Lokit Transaktion käsitteeseen palataan myöhemmin