581334 Tietokannan hallinta Erilliskoe 1.10.2002 1.Relaatiot pyritään yleensä tallentamaan siten, että muistitilaa kuluu niin vähän kuin mahdollista. Eräissä tapauksissa tästä pääperiaatteesta tingitään kuitenkin selvästi: ISAM-rakenne, B+-puu ja hajautusrakenne sisältävät tyypillisesti jaksoja, jotka eivät ole täynnä. Selitä jokainen mainittu rakenne siten, että niiden tilankäyttö ja erityisesti 'ylimääräisen' tilan (mainittua minimiperiaatetta rikkova) käyttö selviää. 12 p Ratkaisusta: ISAM: perustiedoston jaksoissa jopa 50 % tyhjää tietueiden lisäyksiä varten (ylivuotojaksojen välttämiseksi) B+ -puu: kaikki solmut täytetään 50-100%:sti (puun perusominaisuus); tasapainotilassa täyttöaste 69% hajautus: soluun kuuluvat tietueet jaksoissa, joissa vaihteleva määrä tietueita (1..max); väljyys seuraa hajautuksen periaatteesta: tasainen hajautus tuhlaa vähiten tilaa (Rakenteiden perusteet: ks. luennot.) Arvostelu suunnilleen 3*4p. 2.Olkoon relaatiot hesalainen(sukunimi, etunimi, hetu, katuosoite, postinumero, puhelinnumero) ja posti(pnumero, ptoimipaikka, katuosoite). Selitä kyselyä select etunimi, sukunimi, katuosoite, postinumero, ptoimipaikka from hesalainen, posti where postinumero=pnumero and hetu='250302-123X'; esimerkkinä käyttäen lyhyesti liitosoperaation erilaiset toteutusperiaatteet ja mainitse myös, millä edellytyksillä kutakin niistä voidaan käyttää. 12 p Ratkaisusta: neljä periaatetta: - sisäkkäiset silmukat: ulompana pienempi relaatio (tässä posti); jokaista puskuriin mahtuvaa erää (tässä ehkä vain yksi erä) kohti käydään läpi koko toinen relaatio (tässä hesalainen) ei vaadita hakemistoja eikä järjestystä - hakemistoliitos: edelliseen verrattuna relaation hesalainen läpikäynti voidaan välttää, jos sille on postinumero-hakemisto (suoraan hakemistoliitoksen periaatteen mukaan) Käytännössä valintaehdolla voidaan rajata toinen relaatio vain yhdeksi monikoksi, kun hetu yksikäsitteinen. Jos lisäksi posti- relaatiolle on pnumero-hakemisto, ei tarvita mitään läpikäyntejä. - järjestämisliitos: vaatii molempien relaatioiden olevan liitosattribuutin mukaisessa järjestyksessä,mikä on tässä epätodennäköistä; relaation hesalainen järjestämine liitosta varten postinumero-järjestykseen on raskas operaatio (valintaehdon käyttöön perustuva optimointi on varmaan tehokkampaa) - hajautusliitos: hajautetaan kumpikin relaatio liitosattribuuttiin perustuen (ei mitään erityistä esimerkkiin liittyen) Liitosperiaatteet tarkemmin: ks. luennot. Kun liitosperiaatteita kysyttiin, pelkällä (esim. valintaehtoon liittyvällä) pohdiskelulla ei saanut paljon pisteitä. Arvostelu suunnilleen 4*3p. 3.a) Tietokannan tietojen levylle kirjoittamisessa on erilaisia periaatteita. Mikä on aikaisin ja mikä myöhäisin mahdollinen ajankohta seuraavan lokitiedoston sisältämien operaatioiden tulosten levylle kirjoittamisessa? Esitä vastaus muodossa 'operaatio 1xx: 1yy-1zz' ja perustele vastauksesi. Merkintä '1xx' on tarkasteltavan operaation järjestysnumero lokissa, '1yy' sen aikaisin levyllekirjoitusaika (kirjoitetaan operaation '1yy' yhteydessä) ja '1zz' myöhäisin levyllekirjoitusaika. 100: (start, T1) 101: (write, T1, A, 10, 20) 102: (start, T2) 103: (write, T2, B, 11, 22) 104: (commit, T2) 105: (start, T3) 106: (checkpoint) 107: (write, T3, B, 22, 33) 108: (commit, T1) 109: (abort, T3) b) Mitä tarkoitetaan WAL (Write Ahead Logging) -käytännöllä? 12 p Ratkaisusta: a)Levylle kirjoitettavia tuloksia tulee kolmesta operaatiosta: 101: 101-106 (mahdollisesti heti, viimeistään tarkistuspisteessä) 103: 103-106 107: 107-108 (kun on abort tulossa, tiedot eivät ehdi levylle välttämättä ollenkaan) (9 p) b) Ks. luennot. (Loki viedään levylle aina ennen dataa.) (3 p) 4.a) Selitä pientä esimerkkiä käyttäen lyhytaikaisten ja pitkäaikaisten lukkojen merkityksen ero kolmen eristyneisyysanomalian kannalta. Oletetaan, että järjestelmässä kaikki transaktiot käyttävät lyhytaikaisia tai (kaikki) pitkäaikaisia lukkoja. b) Mitä hyviä ja mitä huonoja puolia on ankaran kaksivaiheisen lukituksen käytöllä? 12 p Ratkaisusta: a) Esimerkit luennoissa anomalioiden (likainen kirjoitus, likainen luku, toistokelvoton luku) määrittelyn yhteydessä. (9 p) b) + estää anomaliat eli takaa sarjallistuvuuden (ja on selkeä periaate) - rajoittaa rinnakkaisuutta (enemmän kuin 'tuntuu' tarpeelliselta) - voi johtaa lukkiutumaan (3 p) 5.Selitä lyhyesti seuraavat asiat: a) kyselyn optimointi kustannuslaskentaan perustuen, b) levytiedoston jaksonpituuden kaksinkertaistamisen vaikutus tiedoston saantiaikoihin, c) oheishakemistojen käytön edut ja haitat. 12 p Ratkaisusta: a) lasketaan tietokannasta tiedossa olevien tilastotietojen perusteella vaihtoehtoisten kyselysuunnitelmien kustannukset ja valitaan paras (siis eri asia kuin heuristinen optimointi!) (4 p) b) Yksittäisen tietueen saantiaika kasvaa vähän (siirtoaika on yleensä kohdistusaikaa ja pyörähdysviivettä pienempi komponentti). Peräkkäiskäsittelyssä (erityisesti koko tiedoston läpiluvussa) jaksojen määrän puolittuminen vaikuttaa paljon, jos jaksot ovat hajallaan levyllä, mutta hyvin vähän, jos ne ovat peräkkäin urilla. (4 p) c) + haut nopeutuvat - hakemistot vievät tilaa - hakemistot täytyy esim. lisäysten yhteydessä päivittää (4 p)