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)