Tieto - data Digitaalisesti tallennettua informaatiota jostakin kohteesta Vapaamuotoinen tieto (unformatted) Esim. teksti, puhe, kuvat, Sisältö jäsentämätöntä Koneellinen käsittely vaikeaa paitsi kokonaisuutena Jotain määrämuotoisuutta esiintyy, esim. merkkien esitystapa, kuvapisteiden koodaus Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Rakenteinen (structured) Koneellinen käsittely helppoa Jäsenneltyä Pääsy tiedon osiin Tällä kurssilla käsitellään rakenteista tietoa 1 2 Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla Perinteinen jako Käsitetaso Rakennetaso (tai esitystaso) Talletustaso Tietoabstraktiot Abstraktiotasojen ajatuksena tiedon mallinnuksessa on jakaa tiedon kuvaaminen ja määrittely osiin ja täten yksinkertaistaa kuvauksia, kun mukana ei ole kuvauksen käyttötarkoituksen kannalta ylimääräistä informaatiota 3 4 Näkökulmat tietoon Käsitetaso, kohdetaso (conceptual level, real word level): Mitä tietoja käsitellään millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää mitä tietoelementtien arvot tarkoittavat Miten tiedot liittyvät yhteen Mitä sääntöjä tietoihin liittyy Ohjelmistoista riippumaton kuvaus tiedoista Näkökulmat tietoon Rakennetaso, looginen taso, esitystaso (structural level, logical level): Minkälaisia käsiteltäviä rakenteita tiedot muodostavat - esim. eri ohjelmointikielten näkemykset tiedosta Miten ohjelmoijat ja tietokannan suorakäyttäjät näkevät tiedot 5 6 Harri Laine 1
Näkökulmat tietoon Talletustaso, fyysinen taso (physical level): Minkälaisina koneenläheisinä teknisinä rakenteina tiedot tallennetaan ja miten niitä voidaan käsitellä Tietueiden muoto, tiedon koodaustapa, salakirjoitus, tiivistystekniikka, Minkälaiset rakenteet tehostavat tiedon hakua Onko tiedot hajautettu vai ovatko kaikki keskitetysti samassa paikassa Abstraktiotasot On tietoja autoista ja henkilöistä. Henkilöistä tallennetaan nimi. Autoista tallennetaan tieto omistajasta, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, ) käsitetaso rakennetaso 7 Tiedosto Auto levyllä X1135 toteuttaa taulun auto Indeksi AiX (auto, rekno) talletustaso 8 Abstraktiotasot tiedon käsittelyssä Mitä malleja on tarjolla? käsitetaso sisällön suunnittelu käsitetaso Entity-Relationship mallit (ER) Oliomallit (UML) Semanttiset tietomallit rakennetaso fyysinen taso kyselyt, ohjelmointi, rajapinnat Tallennustapa, viritys, hajautus, tehokkuus rakennetaso fyysinen taso Relaatiomalli Oliomallit XML Hierarkkinen malli Verkkomalli Muita Toimittajakohtaiset käsitteet 9 10 Mallinnuksen kohteet Monitasoinen tiedon mallinnus ei liity vain tietokantoihin. Esimerkiksi tietoliikenteessä voidaan tarkastella välitettävien viestien sisältöä käsitetasolla, muotoa rakennetasolla ja teknistä toteutusta yhtenä tai useampana talletustason abstraktiona. Tietokanta vs. tiedosto Edellä tietokanta määriteltiin yleisesti tietokokoelmana, jatkossa tarkastellaan ominaisuuksia, joita tietokannalle yleensä asetetaan verrattuna perinteiseen ohjelmointikielten tiedosto käsitteeseen. Tarkastelun kohteena ovat rakenteiset tiedot 11 12 Harri Laine 2
Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään tiedostoina (file, data stream). Tiedostoja on rakenteisia (structured) ja vapaamuotoisia (text file). Rakenteinen tiedosto muodostuu tietueista (record). Tietue puolestaan jakautuu kenttiin (field) Rakenteinen tietue Rakenteisessa tietueessa kenttien sisältöön päästään käsiksi kentän tunnuksen tai sijainnin perusteella merkkipositioissa 10-15 sijaitseva tieto kolmannessa kentässä sijaitseva tieto kentän SYNTYMA-AIKA sisältö Alimmalla toiminta-abstraktion tasolla tiedon käsittely perustuu aina tiedon sijaintiin Kiinteämuotoisissa tietueissa kentän tunnuksen ja sijainnin välisen yhteyden tietää ohjelmointikielen kääntäjä, vaihtuvamuotoisissa yhteys ratkaistaan suoritusaikaisesti tietueisiin sisältyvän rakennetiedon perusteella. 13 14 Rakenteinen tietue Perinteinen: XML: hnumero etunimi 2345 Arttu 3 Aho kentän pituus sukunimi <henkilotietue> <hnumero>2345</hnumero> <etunimi>arttu</etunimi> <sukunimi>aho</sukunimi> </henkilotietue> Java Perinteisissä ohjelmointikielissä käsiteltävien tiedostojen tietuerakenne määritellään osana ohjelmaa. miten taataan yhtenäisyys samoja tietoja käyttävien ohjelmien välillä? miten toisella kielellä kirjoitetun ohjelman pitäisi määritellä tiedot? C 15 16 ohjelma A määrittely erilliseksi osaksi tiedoston rakenteen määrittely ohjelma B Tietokannoissa tiedon kuvaus on irrallaan ohjelmista tietokantakaaviona tiedon määrittely erillinen kieli tiedon määrittelyyn helppoa, jos A ja B on laadittu samalla ohjelmointikielellä (include) 17 18 Harri Laine 3
Tietoriippumattomuus Kun jokin ohjelma tarvitsee tiedostoon lisätietoja (tietueisiin uusia kenttiä) perinteisiä tiedostoja käytettäessä kaikki muuttunutta tiedostoa käsittelevät ohjelmat on muutettava ja käännettävä uudelleen Ohjelman tietoriippumattomuus: Ohjelma täytyy kääntää uudelleen vain, jos sen itse tarvitsemien tietojen rakenne muuttuu Tietokantakaavioon sisältyvät erilaiset näkymät tietoon mahdollistavat tietoriippumattomuuden Eri ohjelmilla voi olla erilainen käsitys rakenteesta Ohjelma 1 Ohjelma 2 Miltä näyttää 1 näkymä Millainen on tk Miltä näyttää 2 näkymä 19 20 Tietokanta / samanaikainen käyttö Tietokannat / hakumahdollisuudet Perinteiset tiedostot yksi käyttäjä kerrallaan saa haltuunsa koko tiedoston Tietokannat tyypillisesti useita samanaikaisia käyttäjiä käyttäjät häiritsevät toisiaan mahdollisimman vähän muut käyttäjät eivät välttämättä näy käyttäjälle Tiedosto peräkkäiskäsittely = käy läpi kaikki tietueet siinä järjestyksessä, jossa tietueet sijaitsevat tiedostossa haku osoitteen (esim. tietueen järjestysnumero) perusteella (hae kymmenes tietue) Tietokanta kohteena annetun hakukriteerin täyttävät hakukriteeri perustuu tiedon sisältöön ei sijaintipaikkaan (hae tietueet, joissa kentässä palkka oleva arvo <2000) 21 22 Tietokanta / suojaus Tietokanta /tapahtumakäsittely ja elvytys Käyttöjärjestelmä suojaa tiedostoja ja hakemistoja luku-, kirjoitus-, suoritusoikeus koko tiedostolle Tietokannat täsmäsuojaus, jopa kenttätasolla käyttöhistoria operaatiotarkkuudella, niin haluttaessa Tiedosto käyttäjän tai sovellusohjelman on huolehdittava varmuuskopioinnista, varmistuksista, operaatioiden peruutuksista, virheistä toipumisesta Tietokanta takaa vahvistetun operaation läpimenon operaatiosarjan peruminen mahdollista vahvistukseen asti elpyminen virhetilanteista 23 24 Harri Laine 4
Tietokanta / suuret dynaamiset tietomäärät Kasvavat tietomäärät edellyttävät mukautuvia ja tehokkaita talletusrakenteita nopea haku annetun kriteerin perusteella tiedoston koon kasvaminen ei saa merkittävästi vaikuttaa tiedonsaannin aikaan Rakenteiden viritys tehokkaammiksi ilman, että ohjelmia joudutaan muuttamaan 25 Tietokanta / tietojen väliset riippuvuudet Tietokanta kuvaa reaalimaailman ilmiöitä Reaalimaailmassa vallitsevien sääntöjen (esim. Henkilöllä vain yksi puoliso kerrallaan) on oltava voimassa myös reaalimaailmaa kuvaavassa tietokannassa jos sääntöjä valvotaan sovellusohjelmassa, on valvonta sisällytettävä jokaiseen tietoja muokkaavaan ohjelmaan vaihtoehtona erillinen sovellusohjelmien ulkopuolinen valvontamekanismi (tietokanta valvoo) 26 Tietokantajärjestelmä (database system) TKHJ:n osia Hallintaliittymä Suorakäyttöliittymä Ohjelmointirajapinnat tietokanta tietokannanhallintajärjestelmä Tietohakemistojärjestelmä 27 28 TKHJ:n osia TKHJ:n osia Hallintaliittymä Suorakäyttöliittymä Suorakäyttö liittymä Hallintaliittymä Ulkoiset liittymät Ohjelmointi rajapinnat Ohjelmointi rajapinnat Tietohakemistojärjestelmä Tietohakemistojärjestelmä Kuvaustietoa, metatietoa 29 30 Harri Laine 5
Pääsyn valvonta (authorization control) tarkastaa käyttäjien oikeudet operaatioihin Kyselyn optimoija (query optimizer) laatii toteutussuunnitelman halutuille tietokantaoperaatiolle miten tehdään Transaktion hallinta (transaction manager) valvoo samanaikaisia operaatioita varaa ja vapauttaa resursseja, huolehtii operaatioiden päättymisistä ja mahdollisista peruutuksista. Eheyden valvonta (integrity control) valvoo, etteivät tietokantaan kohdistuvat muutokset riko tietokannalle määriteltyjä oikeellisuussääntöjä. Suorittaja (command processor) ohjaa operaatioiden suoritusta Puskurien hallinta (buffer management), vastaa keskusmuistin ja apumuistin välisestä tiedonsiirrosta Hakumenetelmät (access methods) suorittaa tiedonhaut toteutussuunnitelman mukaisesti 31 32 Harri Laine 6