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

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

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

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

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.

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

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

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 2. Luento 5 Ti Timo Männikkö

Tietokantarakenteet ja -algoritmit 3. harjoitus

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Tietokantarakenteet ja -algoritmit 6. harjoitus

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

D B. Tietokannan hallinta kertaus

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

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

B-puu. 3.3 Dynaamiset hakemistorakenteet

B + -puut. Kerttu Pollari-Malmi

Algoritmit 2. Luento 3 Ti Timo Männikkö

HELIA 1 (14) Outi Virkki Tiedonhallinta

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö

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

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

Algoritmit 1. Luento 12 Ti Timo Männikkö

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

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

Algoritmit 1. Luento 12 Ke Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö

7. Tasapainoitetut hakupuut

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

Algoritmit 2. Luento 6 To Timo Männikkö

Transaktioiden eristyvyys

Algoritmit 2. Luento 2 Ke Timo Männikkö

Tietokantarakenteet ja -algoritmit Harjoitukset 1-12

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

CSE-A1200 Tietokannat

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

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Algoritmit 2. Luento 4 Ke Timo Männikkö

CSE-A1200 Tietokannat

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

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

Algoritmit 2. Luento 6 Ke Timo Männikkö

A TIETORAKENTEET JA ALGORITMIT

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

Algoritmit 1. Luento 5 Ti Timo Männikkö

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

Algoritmit 1. Luento 8 Ke Timo Männikkö

5.2 Samanaikaisuuden hallinta

D B. Harvat hakemistot. Harvat hakemistot

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

D B. Transaktionhallinta - samanaikaisuus

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

D B. Transaktionhallinta

Datatähti 2019 loppu

D B. Harvat hakemistot

Sisältö. Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat. Abstrakti tietokantamalli. Tietoalkio ACID. Transaktion tilat. Abstrakti tietokantamalli

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

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

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

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

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

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

811120P Diskreetit rakenteet

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

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

18. Abstraktit tietotyypit 18.1

Transaktiot - kertausta

Algoritmit 2. Luento 4 To Timo Männikkö

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

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

Sivupalvelin- ja yhteislevyjärjestelmät

Yhdiste, leikkaus, erotus ym.

Algoritmit 1. Luento 6 Ke Timo Männikkö

2. Perustietorakenteet

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi

Lokin ylläpito ja puskurinhallinta

Versionhallinta MIKSI?

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

Muita transaktioiden hallintamenetelmiä

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

Algoritmit 1. Luento 4 Ke Timo Männikkö

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

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

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

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

(a) Kyllä. Jokainen lähtöjoukon alkio kuvautuu täsmälleen yhteen maalijoukon alkioon.

SELECT-lauseen perusmuoto

Luku 8. Aluekyselyt. 8.1 Summataulukko

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Transkriptio:

Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 11.6.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, 23,,, 51, 6,, 27, 13, 7, 9, 17,, 15, 24, 49,, and 13. Piirrä välivaiheita näkyviin ainakin kun sivuja halkaistaan tai puun korkeus kasvaa. 8p. Lisätään avainarvot, 23, ja, jotka kaikki mahtuvat juuritasolle: 23 Lisätään avainarvo 61, joka aiheuttaa juuritason (= lehtitaso) halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden solmun pienen arvo hakemistotasolle viitaksi (avainarvo ): 23 61 Lisätään avainarvo 6, joka mahtuu lehtitasolle: 6 23 61 Lisätään avainarvo, joka aiheuttaa lehtitason halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden lehtisolmun pienin arvo ylemmälle tasolle viitaksi (avainarvo ): 6 23 61 1

Lisätään avainarvot 27 ja 13, jotka molemmat mahtuvat lehtitasojen sivuille: 6 13 23 27 61 Lisätään avainarvo 7, joka aiheuttaa lehtitason halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden lehtisolmun pienin arvo ylemmälle tasolle viitaksi (avainarvo ): 6 7 13 23 27 61 Lisätään avainarvot 9 ja 17 jotka mahtuvat lehtitasolle: 6 7 9 13 17 23 27 61 Lisätään avainarvo, joka aiheuttaa lehtitason halkeamisen. Luodaan uusi solmu ja jaetaan avainarvot solmujen kesken. Kopioidaan uuden lehtisolmun pienin arvo ylemmälle tasolle viitaksi (avainarvo ): 6 7 9 13 17 23 27 61 Lisätään avainarvot 15, 24, 49, ja 13 jotka mahtuvat lehtitasolle: 6 7 9 15 13 13 17 24 23 27 49 61 Valmista! 2

(b) Miten näin saadusta puusta haettaisiin avainarvoa 14? 2p. Verrataan hakuavainta 14 juuritason ensimmäiseen avaimeen. Koska 14 > jatketaan vertailua juuritasolla. Koska 14 < seuraataan avaimen viittaa alas. Tullaan lehtitasolle. Verrataan hakuavainta 14 ensin avainarvoon. Koska 14, jatketaan vertailua seuraavasta arvosta. Koska 13 14, jatketaan vertailua seuraavasta arvosta. Koska 13 14, jatketaan vertailua seuraavasta arvosta. Koska 15 > 14, tiedetään ettei hakuavainta voi olla puussa ja voidaan palauttaa virheilmoitus. (c) Piirrä näkyviin kuinka puuta muokataan kun (a)-kohdasta saadusta puusta poistetaan avaimet: 13, 7, 6,,, 13, 17 ja 9. Piirrä välivaiheita näkyviin ainakin kun sivuja yhdistellään tai puun korkeus laskee. 5p. Poistetaan avainarvot 13 ja 7, poistot ei aiheuta lehtitason alivuotoa. Sen sijaan avainarvon 6 poisto aiheuttaa alivuodon: 9 15 13 17 24 23 27 49 61 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 15 13 17 24 23 27 49 61 Poistetaan avainarvot,, 13 ja 17 jotka ei aiheuta lehtitason alivuotoa: 9 15 24 23 27 49 61 Poistetaan avainaro 9, 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 ). 3

15 24 23 27 49 61 Puu on valmis! 2. Elvytys, 15p. Oletetaan että lokin sisältö romahduspisteessä on seuraava: 99: < checkpoint > 0: < start, T 1 > 1: < write, T 1, P 5, 0 > 2: < start, T 2 > 3: < write, T 2, P 5, 0 > 4: < commit, T 2 > 5: < end, T 2 > 6: < start, T 3 > 7: < write, T 3, P 3, 1 > 6: < abort, T 1 > 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 P 5 sisältävän sivun P agelsn = 1, tietoalkion P 3 sisältävän sivun P agelsn = 7. Oletetaan että lokimerkinnät ovat muotoa < operaatio, transaktio, tietoalkio, alkukuva >. Lisäksi oletetaan että viimeisen lokikirjauksen LSN on 8 (virhe tehtävänannossa). 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 1, T 3 } ja sitoutuneet = {T 2 }. 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ä 7 olevaa kirjoitus pitää perua koska P agelsn = 7 7. Eli suoritetaan operaatio < write, P 3, 1 > ja tehdään lokikirjaus 9 :< write, T 3, P 3, 1 >. Rivillä 1 oleva kirjoitus pitää perua koska P agelsn = 1 1. Perutaan transaktio T 3 eli tehdään lokikirjaukset, 1 :< abort, T 3 > ja 111 :< end, T 3 >. Eli suoritetaan operaatio < write, P 5, 0 > ja tehdään lokikirjaus 112 :< write, T 1, P 5, 0 >. Perutaan vielä transaktio T 1 eli tehdään lokikirjaukset 113 :< abort, T 1 > ja 114 :< end, T 1 >. Muita operaatioita ei olekkaan. 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 3 kirjoitusta pitää uusia silla P agelsn = 7 3. Joten suoritetaan kirjoitus < write, P 3, 0 > ja tehdään lokikirjaus 114 :< write, T 2, P 3, 0 >. Lopuksi otetaan vielä checkpoint ja tehdään lokikirjaus 120 :< checkpoint >. 3. Kyselynkäsittely, 15p. Olkoon annettuna seuraava relaatiokaavio ja SQL-kysely. Suppliers(sid: integer, sname: char(80), city: char(80)); Supply(sid: integer, pid: integer); Parts(pid: integer, pname: char(80), price: real); SELECT S.sname, P.pname FROM Suppliers S, Parts P, Supply Y WHERE S.sid = Y.sid AND Y.pid = P.pid AND S.city = Madison AND P.price 1,000; (a) Anna kyselyä vastaava relaatioalgebramuotoinen lauseke ja piirrä lauseketta vastaava kyselypuu. (b) Optimoi kyselyä heuristisilla säänöillä kirjoittaen näkyviin sekä miten kyselyä olet muokannut että mihin sääntöön muokkaus perustuu ja piirä näkyviin optimoitu lauseketta vastaava kyselypuu. (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 Katso vastaukset kevään 2006, harjoitus 4 ratkaisuista! 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 = w 1 [x]r 2 [y]w 1 [y]w 2 [y]r 1 [z]w 1 [x]r 2 [y]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 [y] (koska w 2 [y]) ja häviävän kirjoituksen (lost update) w 1 [y] (koska w 2 [y]). Historiaa vastaava sarjallistuvuusverkko olisi: 5

r2[y] w1[y] T1 T2 w1[y] w2[y] Koska sarjallistuvuusverkko on syklinen historia ei ole sarjallistuva ja siis ei voi olla konfliktisarjallistuva. (c) Anna esimerkki historiasta, jossa esiintyy ketjuperuutus. 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]w 2 [x]a 1 a 2, tässä T 2 pitää peruuttaa koska se on lukenut tietoalkion x arvon, joka perutaan. Siis syntyy ketjuperuutus. (d) Anna esimerkki historiasta, jossa käytetään tiukkaa 2PL-menetelmää ja jossa esiintyy lukkiutuma. Piirrä näkyviin odotusverkko (wait-for graph). 4p. 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] 6