2. Tietkannan käsitteitä ja arkkitehtuuri Aikaisem m in tietkannanhallintajärjestelmät livat suuria, tiiviisti integrituja järjestelm iä. Nyky isille TKHJ: lle n t yy pillist ä ns. asiakas- palvelin - arkkit eht uur i. ----> svellushjelmat timivat käyttäjän m alla kneella, itse tietkanta palvelim ella t isaalla. 2.1. Tietmallit, kaavat ja esiintymät 7LHWRPDOOL n kkelm a käsitteitä, jiden avulla pystytään kuvaam aan tietkannan rakennetta ( tiettyypit, rajitukset ja tietjen väliset suhteet ). Tarjaa välineet tiedn abstrahintiin.
Käyttäjän itsensä m äärittelem iä peraatiita tietkannan datalle kuten keskiarvn laskenta jnkin tietkentän arville esiintyy et enkin ROLRNHVNHLVHVVl WLHWRPDOOLVVD, nyky isin m yös ns. bj ekt i- relaatim allissa, jka n relaati- ja litietm allin välimut. Sisältää usein myös perusperaatit tiedn hakua ja päivittäm istä varten. 2.1.1. Tietmallien eri kategriat.runhdqwdvrq eli NlVLWWHHOOLVLVVl WLHWRPDOOHLVVD tietkannan rakennetta kuvataan käsittein, jtka vat käyttäjille luntevia ym märrettäviksi ( entiteetti, attribuutti, liittym ä ). 0DWDODQWDVRQ eli fyysisissä WLHWRPDOOHLVVD kuvaillaan, m iten data n tallennettuna tietkneelle. Ne n tarkitettu lähinnä tietkannan laitteista lähellä leviin m inaisuuksiin erikistuneille asiantuntijille, ei niinkään tavallisille lppukäyttäjille ( tietueiden talletusm ut, järjestys, saantiplut ).
Näiden kahden tasn 'kmprm issina' vidaan nähdä ns. WRWHXWXVPDOOL, jka n vielä lppukäyttäjänkin hahmtettavissa, m uttei sam alla kuitenkaan khtuuttman kaukana matalan tasn t iedn rganisint im allist a ( piilt t aa san rakent eiden yksit yiskhdista, mutta vidaan silti käyttää suraan TKHJ: ssä; useim m at kaupalliset TKHJ: t tukevat ). Käsitteellisissä tietm alleissa HQWLWHHWWL edustaa jtain reaalim aailman khdetta tai käsitettä ( esimerkiksi piskelijaa ). $WWULEXXWWL tarkittaa jtain entiteettiin kuuluvaa m inaisuutta ( esimerkiksi piskelijan nim i ). /LLWW\Pl pulest aan kuvaa kahden t ai useam m an ent it eet in välistä yhteyttä ( esimerkiksi kurssin numer n kurssin perustiedt ja sen luennintikerrat tisiinsa liittävä attribuutti ). Tällä kurssilla käsiteltävän UHODDWLRWLHWRPDOOLQ ja yleistymässä levan ROLRNHVNHLVHQ WLHWRNDQWDPDOOLQ lisäksi tteutusm alleihin luetaan aikaisem m at YHUNNR ja KLHUDUNNLQHQ PDOOL, jtka tällä kurssilla sivuutetaan.
2.1.2. Kaavat, esiintymät ja tietkannan tila Kaikissa tietm alleissa itse tietkanta ja sen kuvaus pidetään erillään t isist aan. Tietkannan kuvausta kutsutaan tietkannan kaavaksi ( database schem a ). Tietkannan kaava määritellään tietkannan suunnitteluvaiheessa, jten kaavaan dteta tehtävän m uutksia kvin usein. Kaavan yksittäistä bjektia ( kuten ylipista kuvaavassa esim erkissä piskelijaa, kurssia jne. ) kutsutaan NDDYDQUDNHQQHRVDNVL ( schem a cnstruct ).
.DDYDGLDJUDPPL selvittää vain san tietkannan kaavan sisällöstä, kuten taulujen nimet ja tietkentät sekä yksinkertaisia rajituksia (esimerkiksi avainattribuutit). Mnim utkaisia rajituksia ei kaavadiagram m illa pystytä esittämään. Tietkannan datasisältöä tietyllä hetkellä kutsutaan WLHWRNDQQDQ WLODNVL. Tietkanta n määrittelyn jälkeen tyhjässä tilassa ( ei vielä sisällä dataa ). Ensim m äisen syöttövaiheen päätyttyä tietkanta n DONXWLODVVDDQ. Tehtäessä päivityksiä tietkantaan sen tila m uuttuu. Jkaisella tietkannan kaavan rakennesalla n tietty nykyinen esiintym ien jukk ( tietyssä taulussa yhtenä ajankhtana esiintyvien tietueiden sisältö ).
TKHJ: n tehtävänä n hulehtia, että jkainen tietkannan tila n laillinen sille asetetut säännöt hum in ttaen. Täten n tietkannan käyttökelpisuuden ja virheettömyyden kannalta hyvin tärkeää, että sen määrittely tehdään hulellisesti. Tietkannan määrittelyvaiheessa ratkeaa melk lailla kannan laadukkuus. Tietkannan kaava vidaan tulkita tietkannan sisäisenä tarkennuksena, tietkannan tila pulestaan kaavan laajennukseksi. 2.2. Tietkannan hallintajärjestelmän arkkitehtuuri 2.2.1. Klmitasarkkitehtuuri 6LVlLQHQWDVR ( kaava ), jka kuvaa tietkannan fyysistä tallennusrakennetta ja saantiplkuja. Sisäisellä taslla käytetään matalan tasn tietmallia..lvlwhwdvr, jssa kuvaillaan kk tietkannan rakenne käyttäjille fyysistä tallennusrakennetta lukuun ttam atta, eli entiteetit, tiettyypit, säännöt, taulujen väliset suhteet ja käyttäjän määrittelem ät peraatit. Tasn kuvaamisessa käytetään jk krkean tai tteutustasn tietm allia.
8ONRLQHQ eli QlN\PlWDVR kuvaa sitä, millaisena kukin käyttäjäryhmä näkee tietkannan. Se sulkee ulkpulelleen kaikki heille tarpeettmat sat, ja sen kuvaamiseksi käytetään krkean tasn tietmallia. Eri tasjen välillä käytetään NXYDXNVLD, jtta esim erkiksi tehdyt tietkantakyselyt ja niihin saadut tulkset vidaan välittää taslta tiselle kullekin taslle minaiseen esitysm utn. Useim m at TKHJ: t eivät lähinnä tehkkuussyistä tue kahden ylim m än tasn erttam ista tisistaan, sillä kuvauksien surittaminen tasjen välillä hidastuttaa tietkantaan khdistuvien peraatiiden tteuttam ista. Varsinainen data sijaitsee aina fyysisellä taslla. 2.2.2. Tietriippumattmuus Klm itasarkkitehtuuri tukee tietriippum attm uutta. Täm ä tarkittaa sitä, että tietkannan kaavan muuts alem malla taslla ei aiheuta m uutksia ylem m älle taslle. Ainastaan tasjen välinen kuvaus m uuttuu.
Lginen tietriippumattmuus tarkittaa m ahdllisuutta tehdä lisäyksiä käsitekaavaan ilm an tarvetta m uuttaa sam alla ulkista kaavaa tai svellushjelmia ( kts. esimerkkiä kirjan kuvista 1.2., 1.4. ja 1.5. ). Mikäli tietkantaa pulestaan supistetaan eli redusidaan, m uuttum attm iin rakenteisiin viittaavissa ulkisissa näkym issä ei tapahdu muutksia. Fyysinen tietriippumattmuus takaa, että fyysisten datatiedstjen uudelleenrganisinti ei aiheuta muutksia ylem m illä tasilla. Täm ä mahdllistaa sen, että dataan vidaan lisätä esim. uusia saantiplkuja ilman, että kyselyitä tai svellushjelm ia juduttaisiin uusimaan. Muuts fyysisellä taslla vaikuttaa vain peraatiiden suritusaikaan. 2.3. Tietkannan kielet ja käyttöliittymät Tietkannissa vidaan käyttää erilaisia kieliä ja käyttöliittym iä eri tarkituksiin.
2.3.1. TKHJ:n kielet Tiednmäärittelykieli DDL ( Data Definitin Language ) n tarkitettu tietkannan kaavan määrittelyä varten. TKHJ: hin sisältyy DDL-kääntäjä, jka m uuntaa tehdyn määrityksen systeem iluetteln käyttäm ään mutn. Sisäisellä taslla käytetään tietvarastn määrittelykieltä eli SDL: ää ( Strage Definitin Language ). Fyysisen ja käsitetasn välinen kuvaus tehdään jm m allakum malla kielistä DDL ja SDL. Täydellisessä klmitasarkkitehtuurissa tarvittaisiin vielä näkym ienm äärittelykieli VDL ( View Definitin Language ) Nrmaalisti käytetään kuitenkin DDL: ää sekä tiedn- että näkym ienm äärittelykielenä. Tiedn syöttöä ja tietkannan ylläpita varten tarvitaan edelleen datan käsittelykieli DML ( Data Manipulatin Language ).
Nykyisissä tietkannan hallintajärjestelm issä kieliä ei sinänsä pidetä erillisinä SDL: ää lukuun ttam atta, vaan sam aa kieltä vidaan käyttää sekä tietkannan että näkymien määrittelyyn ja datan käsittelyyn. Aikaisem m in myös SDL-minaisuus sisältyi tietkannille yleiseen SQL-kieleen, m utta sittem m in SQL: ää käytetään vain kahden ylim män tasn määrittelyyn. Datan käsittelykieli vi lla lunteeltaan krkean tai matalan tasn DML. Krkean tasn eli ei-prseduraalinen DML n lunteeltaan deklaratiivinen, eli se kuvaa, m itä tieta kullinkin tietkannasta käsitellään ( "jukk kerrallaan ). Se n käyttökelpinen sellaisenaan, m utta sitä vidaan käyttää m yös uptettuna yleiseen hjelm intikieleen. Tällöin tarvitaan DML-esikääntäjä avuksi, jtta DML-lauseet käännettäisiin erillään m uusta hjelmasta. Matalan tasn eli prseduraalinen DML vi timia ainastaan uptettuna yleiseen hjelm inti-kieleen. Tisin kuin krkean tasn DML, se kuvaa, miten tiet haetaan tietkannasta. Haku tapahtuu aina tietue kerrallaan, eli avuksi tarvitaan silmukkarakenteita.
Käytettäessä apuna yleistä hjelmintikieltä datan käsittelyä varten siitä käytetään nimitystä LVlQWlNLHOL ja DML: stä pulestaan nimitystä GDWDDOLNLHOL. Käytettäessä krkean tasn DML: ää yksinään sitä kutsutaan usein N\VHO\NLHOHNVL, vaikkakin sitä vidaan käyttää myös päiv it y speraat iihin. 2.3.2. TKHJ:n käyttöliittymät Peruskäyttäjät eivät turvaudu tietkannan erityiskieliin, vaan heitä varten perustetaan erilaisia käyttöliittym iä käyttöä helpttamaan. Erilaisia käyttöliittymätyyppejä: Valikkper ust aiset ƒ lähinnä tietkannan selailua varten
Lm akephj aiset ƒ kyselyjen m udstamiseen ƒ tiedn syöttöön Graafiset ƒ vidaan käyttää hyödyksi hiirtä Lunnlliseen kieleen perust uvat ƒ kmennt muistuttavat lunnllista kieltä ƒ viitataan tietkannassa esiintyviin kenttiin Peruskäyt t äj ille suunnat ut ƒ timintjen 'avauduttava'npeasti ƒ funktinäppäimet, lyhyet kmennt ym s. Tietkannan valvjalle suunnatut ƒ valmiudet luda uusia käyttäjäprfiileja, tietkannan näkyvyyden rajittam iseen ja tiedn fyysiseen uudelleenrganisintiin
2.4. Tietkantajärjestelmäympäristö 2.4.1. TKHJ:n kmpnenttimduulit Tallennetun datan järjestelijä ( stred data manager ) kntrlli, nk viittauksen khteena leva tiet varsinaista dataa vai metadataa käyttää avukseen käyttöjärjestelmän tim intja järjestellessään tiedn siirtämistä levyltä keskusm uistiin huleht ii puskureiden hallinnast a kesk usm uist issa Tiednmäärittelykielen eli DDL-kääntäjä prsessi tietkannan kaavamäärittelyjä ja tallentaa kuvaukset ( m etadatan ) systeem iluetteln Aj naikainen t iet kant aprsessr i käsittelee tietkantaan khdistetut peraatit levyperaatit kulkevat tallennetun datan järjestelijän kautta
Kyselyiden kääntäjä jäsentää, analysi ja kääntää käyttäjän tuttam an kyselyn sekä generi siitä kdin tietkantaprsessrille Esikääntäjä erttelee datan käsittelykielen yleisen hjelm intikielen keskelt ä DML-kääntäjä kääntää DML-suuden, m inkä jälkeen hjelman sat linkitetään valm iiksi svellushjelmaksi 2.4.2. Tietkantajärjestelmän palveluja Tiedn lataam inen tietkantaan lukem inen tekstitiedststa tai knversi jltakin m uulta tiedsttyypiltä nykyisen TKHJ: n ym m ärtämään mutn
Turvak piint i tarkittaa yleensä kk tietkannan tallentam ista nauhalle vidaan t ehdä j k t äydellisenä t ai LQNUHPHQWDDOLVHVWL s.. pelkästään edellisen kpiinnin jälkeen muuttuneiden tietjen salt a Tiedst j en uudelleenrganisint i tehkkuuden lisääm iseksi Surit usk yvyn seurant a tilasttieta tietkannan valvjan käyttöön Muita palveluja m m. m ahdllisuus tiedstjen lajitteluun, tiedn tiivistämiseen, käytettävyys verkn kautta jne. 2.4.3. Työkaluja, svelluskehitysympäristöt ja etäyhteydet Tietkneavusteinen hjelm istsuunnittelu, ns. CASE-välineet ( CASE= Cm puter Aided Sftware Engineering ) hyödyk si t iet kannan suunnit t eluprsessissa
Tiethakem ist pitää sisällään TKHJ: n systeem iluetteln sisältämät tiedt, mutta n käyttötarkitukseltaan laajem pi sisältää tietja m m. tietkannan suunnittelua kskevista päätöksistä, käyttöstandardeista, svellushjelmien kuvauksen ja tieta käyttäjistä palvelee etupäässä käyttäjiä pikem m in kuin TKHJ: n hjelm ista Svelluskehitysympäristöt helpttavat valm iiden svellushjelm ien, graafisten käyttöliittymien ja kyselyiden m udstam ista ( m m. PwerBuilder, JBuilder ) Yhteyshjelmistt tarvitaan, kun tietkanta n tteutettu asiakas-palvelin -arkkitehtuurilla ( tietkanta sijaitsee fyysisesti palvelinkneella ) tai tietkanta n hajautettu ( jaettu usean kneen kesken ) usein er illism duuleina TKHJ: ssä yhdistetystä tietkanta- ja tietliikennesysteemistä käytetään lyhennettä DB/ DC ( Database / Data cm municatins )
2.5. Tietkannanhallintajärjestelmien keskitetty / asiakas-palvelin -arkkitehtuuri 2.5.1. Keskitetty TKHJ:N arkkitehtuuri Varhaisim m issa tietkannanhallintajärjestelm issä käytetty arkkit eht uuri Tietkanta sijitettuna suurtietkneelle, jhn käyttäjät livat yhteydessä tyhmien päätteiden välityksellä Mikrtietkneiden yleistyessäkin useat tietkantasvellukset pyörivät edelleen keskuskneissa, kska mikrtietkneiden laskentavim a li edelleen riittäm ätön tietkantasvelluksille Kneiden tehn kasvaessa alki asiakas-palvelin arkkitehtuuri vähit ellen yleist yä t iet kant asvelluk sissa Tarkastellaan kirjan kuvaa 2.4.
2.5.2. Yleistäasiakas palvelin -arkkitehtuureista Useita mikrtietkneita, työasem ia, tiedstpalvelim ia, kirjittim ia, tietkantapalvelim ia ja verkkpalvelim ia n kytketty tisiinsa verkky ht eyden avulla Palvelinkneiden, kuten tietkanta-, tiedst-, verkk- ja sähköpstipalvelinkneiden n tarkitus hulehtia kyseisten palveluiden tarjnnasta verkkn liitetyille asiakaskneille, jtka n tarkitettu yksittäisille käyttäjille. Asiakaskneille n asennettuna käyttöliittym ät palvelim illa levien svellusten käyttöön saam iseksi. Käyttäjät vivat lisäksi surittaa milla asiakaskneillaan m ia erikissvelluksiaan, jissa em. palvelim ia ei tarvita ja jita ei tarvitse tarjta kaikkien käyttäjien saataville. On tyypillistä, että lähiverkkn kytketty kne tim ii ainastaan asiakkaana tai palvelim ena, m utta kneella vi lla samanaikaisesti myös m lem m at minaisuudet.
2.5.3. Kaksitahinen asiakas palvelin -ratkaisu Asiakkaan kneella vidaan surittaa tietkantaan kuuluvia svellushjelm ia ja esittää kyselyjä, jiden prsessinti t apaht uu palvelinkneella. Tarvitaan yhteyshjelm ist, jnka avulla km munikinti tietkannan datapalvelim en kanssa tapahtuu. Mahdllistaa TKHJ: n hajautuksen: palvelin tim ii puhtaasti datan käsittelijänä, kilpailevien tapahtum ien kntrllijana sekä virhetilanteista tipum isen tteuttajana. Kyselyiden ptim inti, käyttöliittym ät ja tiethakem istjen käsittely tapahtuu pulestaan asiakkaan kneella.
2.5.3. Klmitahinen asiakas palvelin -ratkaisu I nternetin yleistyttyä asiakas-palvelin ratkaisuihin n tullut m ukaan klmas tas Asiakkaalla n käytössään graafinen käyttöliittym ä, jnka kautta hän ttaa yhteyttä svelluspalvelim een tai verkkpalvelim een, jka käsittelee asiakkaan lähettäm än pyynnön tai kyselyn ja lähettää sen eteenpäin varsinaiselle t iet kant apalvelim elle. Tietkantapalvelin palauttaa ainakin sittain käsitellyt tulkset takaisin edelliselle taslle, jssa tulsta m ahdllisesti vielä m ukataan asiakkaan käyttöliittym älle spivaksi. Täten käyttöliittym ä, svelluksen säännöt ja varsinainen datan saanti tapahtuvat klm ella eri tahlla. Tietliikenne asiakkaan ja svelluspalvelim en välillä tapahtuu salatusti tietturvan parantam iseksi.
2.6. Tietkannan hallintajärjestelmien lukittelutavat Tärkein kriteeri n tietm alli ( relaati-, li-, verkk-, hierarkkinen vai li-relaatitietkanta ) Muita kriteerejä: yhden vai mnen käyttäjän järjestelmä? keskitetty vai hajautettu? ƒ js hajautettu, niin nk tietkannan hallintajärjestelmä hm geeninen vai het ergeeninen? käytetäänkö sam aa vai eri TKHJ-hjelmista tietkannan eri sij aint ipist eissä? hajautettu hetergeeninen TKHJ n ainakin jssain määrin paikallisesti autnm inen, jllin puhutaan ns. liittmutisesta TKHJ: stä ( federated DBMS )
TKHJ: n kustannukset datan saantiplkujen tyypit yleiskäyttöinen vai erikiskäyttöön tarkitettu ƒ erikiskäyttöön tarkitettua TKHJ: tä ei vida helpsti muuntaa m uuhun tarkitukseen käytettäväksi ( esim. lentyhtiöiden paikanvarausjärjestelmät ) lyhyt vasteaika tärkeä kriteeri TKHJ: n käyt t ökelpisuuden kannalt a Relaatitietkannat perustuvat kknaisuuksien esittämiseen t aulum udssa Olitietkannat perustuvat bjekteihin, jtka edustavat jtain lukkaa, jnka edustajilla n vimassa tietyt m inaisuudet. Oli-relaatitietkannat vat relaatim allin laajennus, jka hyödyntää litietmallin piirteitä ( m m. bjektien tallentam inen dataan ).
Verkkmallissa data esitetään jukktyyppisenä linkitettyjen t iet ueiden avulla riippuvuussuhde 1: N ( yksi tietue liittyy N: ään tietueeseen ) Hierar kkisessa m allissa dat a esit et ään hierar kkisena puurakent eena. jkainen hierarkiatas kuvaa tisiinsa liittyviä tietueita ei standarditua kyselykieltä käsitellään yleensä tietue kerrallaan