Lisätään avainarvo 1, joka mahtuu lehtitasolle:

Samankaltaiset tiedostot
Lisätään avainarvo 6, joka mahtuu lehtitasolle:

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo.

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

Algoritmit 2. Luento 5 Ti Timo Männikkö

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1

Tietorakenteet, laskuharjoitus 7, ratkaisuja

D B. Tietokannan hallinta kertaus

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Algoritmit 2. Luento 2 To Timo Männikkö

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

Algoritmit 2. Luento 3 Ti Timo Männikkö

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Algoritmit 1. Luento 7 Ti Timo Männikkö

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Algoritmit 2. Luento 2 Ke Timo Männikkö

B + -puut. Kerttu Pollari-Malmi

Algoritmit 2. Luento 3 Ti Timo Männikkö

B-puu. 3.3 Dynaamiset hakemistorakenteet

Algoritmit 1. Luento 12 Ti Timo Männikkö

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Algoritmit 1. Luento 12 Ke Timo Männikkö

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Algoritmit 2. Luento 5 Ti Timo Männikkö

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Tietokantarakenteet ja -algoritmit 3. harjoitus

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö

Miten käydä läpi puun alkiot (traversal)?

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

D B. Harvat hakemistot. Harvat hakemistot

Transaktioiden eristyvyys

A TIETORAKENTEET JA ALGORITMIT

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

CSE-A1200 Tietokannat

Algoritmit 2. Luento 6 Ke Timo Männikkö

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

D B. Harvat hakemistot

7. Tasapainoitetut hakupuut

HELIA 1 (14) Outi Virkki Tiedonhallinta

Algoritmit 2. Luento 4 To Timo Männikkö

Tarkennamme geneeristä painamiskorotusalgoritmia

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2:

Algoritmit 1. Luento 8 Ke Timo Männikkö

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

2. Perustietorakenteet

D B. Kyselypuut ja ekvivalenssi

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

811120P Diskreetit rakenteet

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

D B. Transaktionhallinta - samanaikaisuus

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

5.2 Samanaikaisuuden hallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

HELIA 1 (17) Outi Virkki Tiedonhallinta

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta - samanaikaisuus

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.

D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus

Datatähti 2019 loppu

Tietokantarakenteet ja -algoritmit Harjoitukset 1-12

Transaktiot - kertausta

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

Luku 8. Aluekyselyt. 8.1 Summataulukko

Yhdiste, leikkaus, erotus ym.

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

58131 Tietorakenteet (kevät 2008) 1. kurssikoe, ratkaisuja

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

D B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa

CSE-A1200 Tietokannat

Helsingin yliopisto /TKTL Tietokannan hallinta Harri Laine 1 D B. Harvat hakemistot. Harvat hakemistot

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Dynaaminen ohjelmointi ja vaikutuskaaviot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Transkriptio:

Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle ja lehtisivulle mahtuu (2..4) avainta. (a) Piirrä näkyviin kuinka puuta muokataan kun puuhun lisätään avaimet 6,, 9,, 51, 1, 16, 22, 3, 2, 4, 7, 5, 10, 14, 44, 11, ja 8. Piirrä välivaiheita näkyviin ainakin kun sivuja halkaistaan tai puun korkeus kasvaa. 8p. Lisätään avainarvot 6,, 9 ja, jotka kaikki mahtuvat juuritasolle: 6 9 Lisätään avainarvo 51, joka aiheuttaa juuritason (= lehtitaso) halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden solmun pienen arvo hakemistotasolle viitaksi (avainarvo ): 6 9 51 Lisätään avainarvo 1, joka mahtuu lehtitasolle: 1 6 9 51 Lisätään avainarvo 16, joka aiheuttaa lehtitason halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden lehtisolmun pienin arvo ylemmälle tasolle viitaksi (avainarvo ): 1 6 9 16 51 1

Lisätään avainarvot 22 ja 3, jotka molemmat mahtuvat lehtitasojen sivuille: 1 3 6 9 16 22 51 Lisätään avainarvo 2, joka aiheuttaa lehtitason halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden lehtisolmun pienin arvo ylemmälle tasolle viitaksi (avainarvo 6): 6 1 2 3 6 9 16 22 51 Lisätään avainarvot 4 ja 7 jotka mahtuvat lehtitasolle: 6 1 2 3 4 6 7 9 16 22 51 Lisätään avainarvo 5, joka aiheuttaa lehtitason halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden lehtisolmun pienin arvo ylemmälle tasolle viitaksi (avainarvo 4): 4 6 1 2 3 4 5 6 7 9 16 22 51 Lisätään avainarvot 10, 14 ja 44 jotka mahtuvat lehtitasolle: 4 6 1 2 3 4 5 6 7 9 10 22 44 51 Lisätään avainarvo 11, joka aiheuttaa lehtitason halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden lehtisolmun pienin arvo 2

ylemmälle tasolle viitaksi (avainarvo 10), mutta huomataan ettei se mahdu ylemmälle hakemistotasolle (tässä tapauksessa juuritaso): 4 6 1 2 3 4 5 6 7 9 10 11 14 16 22 44 51 Joten halkaistaan myös hakemistotaso. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Koska jaettavana oli juuritaso, luodaan uusi juuri. Siirretään uuden hakemistosivun pienin arvo juuritasolle (huomaa ettei kopioida!): 10 4 6 1 2 3 4 5 6 7 9 10 11 22 44 51 Lisätään avainarvo 8, joka mahtuu lehtitasolle ja puu on valmis: 10 4 6 1 2 3 4 5 6 7 8 9 10 11 22 44 51 (b) Miten näin saadusta puusta haettaisiin avainarvoa 9? 2p. Verrataan hakuavainta 9 juuritason ensimmäiseen avaimeen. Koska 9 < 10 seurataan vasemmanpuolista osoitinta puun vasemmalle puolelle. Verrataan hakuavainta 9 hakemistotason viittaan 4. Koska 9 > 4 jatketaan hakemistotason viittojen vertailua. Verrataan hakuavainta 9 hakemistotason viittaan 6. Koska 9 > 4 jatketaan hakemistotason viittojen vertailua. Havaitaan ettei hakemistotasolla ole enempää avaimia, joten seurataan viimeistä osoitinta alaspäin (oikealle). Päädytään lehtitasolle. Verrataan hakuavainta 9 ensin avainarvoon 6. Koska 6 9, jatketaan vertailua seuraavasta arvosta. Koska 7 9, jatketaan vertailua seuraavasta arvosta. Koska 9 = 9 avain on puussa. Palautetaan avain ja siihen liittyvä osoitin. (c) Piirrä näkyviin kuinka puuta muokataan kun (a)-kohdasta saadusta puusta poistetaan avaimet: 3, 2, 1, 6, 5, 8, 7 ja 4. Piirrä välivaiheita näkyviin ainakin kun sivuja yhdistellään tai puun korkeus laskee. 5p. Poistetaan avainarvo 3, poisto ei aiheuta lehtitason alivuotoa: 3

10 4 6 1 2 4 5 6 7 8 9 10 11 22 44 51 Poistetaan avainarvo 2, joka aiheuttaa lehtitason alivuodon. Koska vasemmanpuolisen veljen ja käsittelyssä olevan solmun avainten lukumäärä on vähemmän tai yhtäsuuri kuin solmun avainten maksimimäärä, yhdistetään solmut. Tyhjäksi jäänyt solmu poistetaan puusta, jolloin myös hakemistotasolla oleva viitta poistetaan (avainarvo 4): 10 6 1 4 5 6 7 8 9 10 11 22 44 51 Havaitaan että hakemistosivukin alivuotaa. Vasemmanpuolisesta veljestä ei voida lainata, koska sekin alivuotaisi lainauksen yhteydessä. Joten pitää yhdistää. Koska yhdistys poistaisi yhden viitan juuritasolta, juuritasokin alivuotaisi. Joten hakemistotaso ja juuritaso pitää yhdistää ja puun korkeus laskee: 6 10 1 4 5 6 7 8 9 10 11 22 44 51 Poistetaan avainarvo 6, joka ei aiheuta lehtitason alivuotoa (huomaa ettei viittaa tarvitse korjata): 6 10 1 4 5 7 8 9 10 11 22 44 51 Poistetaan avainarvot 5, jotka ei aiheuta lehtitason alivuotoa: 4

6 10 1 4 7 8 9 10 11 22 44 51 Poistetaan avainarvo 8, joka ei aiheuta lehtitason alivuotoa: 6 10 1 4 7 9 10 11 22 44 51 Poistetaan avainaro 7, joka aiheuttaa lehtitason alivuodon. Koska vasemmanpuolisen veljen ja käsittelyssä olevan solmun avainten lukumäärä on vähemmän tai yhtäsuuri kuin solmun avainten maksimimäärä, yhdistetään solmut. Tyhjäksi jäänyt solmu poistetaan puusta, jolloin myös hakemistotasolla oleva viitta poistetaan (avainarvo 6). Huomaa että hakemistotason viitta 10 pitää korjata: 9 1 4 9 10 11 22 44 51 Poistetaan avainarvo 4, joka aiheuttaa lehtitason alivuodon. Koska vasemmanpuolisen veljen ja käsittelyssä olevan solmun avainten lukumäärä on vähemmän tai yhtäsuuri kuin solmun avainten maksimimäärä, yhdistetään solmut. Tyhjäksi jäänyt solmu poistetaan puusta, jolloin myös hakemistotasolla oleva viitta poistetaan (avainarvo 9): 1 9 10 11 22 44 51 Puu on valmis! 5

2. Elvytys, 15p. Oletetaan että lokin sisältö romahduspisteessä on seuraava: 108: < start, T 3 > 109: < start, T 4 > 110: < write, T 3, B, 11, 33 > 111: < write, T 4, A, 30, 35 > 1: < write, T 4, C, 15, 25 > 113: < write, T 3, A, 35, 40 > 114: < commit, T 3 > 115: < write, T 4, C, 25, 35 > Mitä operaatioita sisältyy tästä tilanteesta alkavaan elvytykseen? Kuvaa elvytyksen eri vaiheet ja listaa konkreettisesti tehtävät operaatiot perustellen miksi ne operaatiot tehtiin ja miksi joitain operaatioita jätettiin tekemättä. Oletetaan, että tietoalkion A sisältävän sivun P agelsn = 111, tietoalkion B sisältävän sivun P agelsn = 110 ja tietoalkion C sisältävän sivun P agelsn = 1. Oletetaan että lokimerkinnät ovat muotoa < operaatio, transaktio, tietoalkio, alkukuva, loppukuva > Toipuminen aloitetaan lukemalla lokia alusta loppuun ja muodostetaan kaksi transaktiolistaan. Keskeytyneet-listaan kerätään ne transaktiot joille lokissa on start merkintä mutta ei commit merkintää eika abort merkinää ennen viimeistä checkpoint merkintää. Sioutuneetlistaan kerätään ne transaktiot joille lokissa on commit merkintä viimeisen checkpoint merkinnän jälkeen. Tehtävässä viimeinen chekpoint on ennen kaikkia operaatioita. Eli tehtävässä keskeytyneet = {T 4 } ja sitoutuneet = {T 3 }. Tämän jälkeen aloitetaan undo-vaihe, jossa keskeneräisten transaktioiden suorittamat muutokset perutaan lukemalla lokia lopusta alkuun. Tässä pitää huomioida PageLSN:t. Rivillä 115 olevaa kirjoitusta ei tarvitse perua, sillä C:n sisältävän sivun P agelsn = 1 < 115, eli rivillä 115 tehtyä muutosta ei vielä oltu kirjoitettu levylle asti. Rivin 1 kirjoutus joudutaan peruuttamaan eli suoritetaan operaatio < write, C, 15 > ja tehdään lokikirjaus 116 :< write, T 4, C, 25, 15 >. Rivin 111 kirjoitus joudutaan peruuttamaan eli suoritetaan operaatio < write, A, 30 > ja tehdään lokikirjaus 117 :< write, T 4, A, 35, 30 >. Lopuksi merkitään lokiin transaktion peruutus 118 :< abort, T 4 >. Tämän jälkeen aloitetaan redo-vaihe, jossa sitoutuneiden transaktioiden tekemät muutokset suoritetaan uudestaan käymällä lokia alusta loppuun. Huomioidaan taas PageLSN:t. Rivin 110 kirjoitusta ei uusita sillä B:n sisältävän sivun P agelsn = 110 = 110. Rivin 113 kirjoitus joudutaan uusimaan sillä A:n sisältävän sivun P agelsn = 111 < 113. Joten suoritetaan kirjoitus < write, A, 40 > ja tehdään lokikirjaus 119 :< write, A, 35, 40 >. Lopuksi otetaan vielä checkpoint ja tehdään lokikirjaus 0 :< checkpoint >. 3. Kyselynkäsittely, 15p. Olkoon annettuna seuraava relaatiokaavio ja SQL-kysely. Rengastus(rengasnro: integer,laji: char(6), paiva: date); - avaimena rengasnro 6

Havainnot(id: integer, trengasnro: integer, tarkkapaikka: char(80),tkuntaid: integer,tpaiva: date); - avaimena id, trengasnro on viiteavain tauluun Rengastus ja tkuntaid viiteavain tauluun Kunta. Kunta(kuntaid: integer,kunta nimi: char(40)); - avaimena kuntaid. SELECT R.paiva, R.laji, T.tpaiva, T.tarkkapaikka, K.kunta nimi FROM Rengastus R, Havainnot T, Kunta K WHERE R.laji = SLOKKI AND T.trengasnro = R.rengasnro AND K.kuntaid = T.tkuntaid; (a) Anna kyselyä vastaava optimoimaton projektio-valinta-tulomuotoinen relaatioalbegran lauseke ja piirrä sitä vastaava kyselypuu. 4p. σ R.laji= SLOKKI T.trengasnro=R.rengasnro K.kuntaid=T.kuntaid ( R T K)) Kyselypuu olisi: projektio R.paiva, R.laji, T.tpaiva, T.tarkkapaikka, K.kunta_nimi valinta R.laji = "SLOKKI" AND T.trengasnro = R.rengasnro AND K.kuntaid = T.tkuntaid; X X R T K 7

(b) Optimoi kyselyä heuristisilla säännöillä kirjoittaen näkyviin sekä miten kyselyä olet muokannut että mihin sääntöön muokkaus perustuu ja piirrä näkyviin optimoitua kyselyä vastaava kyselypuu. 7p. σ R.laji= SLOKKI T.trengasnro=R.rengasnro K.kuntaid=T.kuntaid ( R T K)) (2) σ R.laji= SLOKKI (σ T.trengasnro=R.rengasnro (σ K.kuntaid=T.kuntaid ( R T K)))) (3) σ R.laji= SLOKKI (σ T.trengasnro=R.rengasnro ( (R) (σ K.kuntaid=T.kuntaid (T K))))) (5) σ R.laji= SLOKKI (σ T.trengasnro=R.rengasnro ( (R) (T K.kuntaid=T.kuntaid K)))) (3) σ T.trengasnro=R.rengasnro (σ R.laji= SLOKKI (R) (T K.kuntaid=T.kuntaid K))) (5) (σ R.laji= SLOKKI (R) T.trengasnro=R.rengasnro (T K.kuntaid=T.kuntaid K))) Kyselypuu olisi: 8

projektio R.paiva, R.laji, T.tpaiva, T.tarkkapaikka, K.kunta_nimi liitos K.kuntaid = T.tkuntaid; liitos T.trengasnro = R.rengasnro T K valinta R.laji = "SLOKKI" R (c) Kerro kuinka suorittaisit kyselyn, jos jokaisesta relaatiosta tiedetään että se talletettu järjestämättömään kasarakenteeseen peräkkäistalletuksella. Mitkä hakemistot nopeuttaisivat kyselyn suoritusta? 3p for all r in R if r.laji = "SLOKKI" then for all t in T if t.trengasnro = r.rengasnro then for all k in K if K.kuntaid = T.kuntaid then output r.paiva, r.laji, t.tpaiva, t.tarkkapaiva, k.kuntanimi; end if end for end if end for end if end for Kyselyä nopeuttaisivat hakemistot kenttiin R.laji, T.trengasnro ja K.kuntaid. (d) Kuinka monta riviä kysely palauttaisi tuloksenaan, jos tiedetään että Rengastustaulussa on 5000 riviä, Havainnot-taulussa 30000 riviä ja Kunta-taulussa 250 riviä. Eri lajeja on 10. Voit olettaa arvojen jakautuvan tasaisesti. 1p. 9

Yhteen rengastus riviin on keskimäärin 30000 = 6 havainto riviä. Rengastustaulussa lajien jakautuessa tasaisesti on 5000 = 500 riviä, joiden lajina on SLOKKI. 5000 10 Lajien jakautuessa tasaisesti kysely palauttaisi siis 6 500 = 3000 riviä. 4. Tapahtumankäsittely, 15p. (a) Anna esimerkki historiasta, joka on sarjallistuva mutta jota ei voi suorittaa täsmälleen samassa järjestyksessä tiukalla 2PL menetelmällä. 4p. H = r 1 [x]w 2 [x]r 1 [y]c 1 c 2 (b) Olkoon historia H = r 1 [x]r 2 [y]w 1 [y]w 2 [y]r 1 [z]w 1 [x]w 2 [z]c 1 c 2. Mitä eristyneisyysanomalioita historiassa esiintyy? Piirrä näkyviin historiaa vastaava sarjallistuvuusverkko ja perustele sen avulla onko historia konfliktisarjallistuva? 5p. Historia sisältää toistokelvottoman luvun r 1 [z] (koska w 2 [z]) ja häviävän kirjoituksen w 1 [y] (koska w 2 [y]). Historiaa vastaava sarjallistuvuusverkko olisi: r2[y] w1[y] T1 T2 w1[y] w2[y] r1[z] w2[z] Koska sarjallistuvuusverkko on syklinen historia ei ole sarjallistuva ja siis ei voi olla konfliktisarjallistuva. (c) Anna esimerkki historiasta, jossa esiintyy likainen luku. 2p. (Huom: kirjoita esimerkkiin näkyviin vain välttämättömät operaatiot ja perustele mikä operaatio aiheuttaa likaisen luvun). H = w 1 [x]r 2 [x], tässä r 2 [x] on likainen luku, koska transaktio lukee sitoutumattoman tietoalkion x. (d) Anna esimerkki historiasta, jossa käytetään tiukkaa 2PL-menetelmää ja jossa esiintyy lukkiutuma. Piirrä näkyviin odotusverkko (wait-for graph). 4p. 10

H = r 1 [x]r 2 [y]w 1 [y]w 2 [x]. Odotusverkko olisi: r1[x] w2[x] T1 T2 r2[y] w1[y] 11