Lokin ylläpito ja puskurinhallinta

Koko: px
Aloita esitys sivulta:

Download "Lokin ylläpito ja puskurinhallinta"

Transkriptio

1 Lokin ylläpito ja puskurinhallinta C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Transactions on Database Systems 17:1 (1992), ; kohdat 1.1 (logging, failures, and recovery methods), 1.2 (latches and locks), 1.4 (buffer management), 2 (goals), 3 (overview of ARIES), 4 (data structures), 5.1 (updates) ja 9 (nested top actions). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut , luvun 11 (storage and file structure) kohdat (buffer manager) ja (buffer-replacement policies); sivut , luvun 17 (recovery system) kohdat 17.2 (storage structure), 17.3 (recovery and atomicity) ja 17.4 (log-based recovery); sivut , kohta 17.6 (buffer management); sivut , kohta (logical undo logging); sivut , kohdan (ARIES) alakohta (data structures). 77

2 Tietokannan loki, s. 79. Fyysinen ja looginen lokikäytäntö, s. 83. Fysiologinen lokikäytäntö, s. 87. Aktiivisten transaktioiden taulu, s. 91. Avainvälimallin operaatioiden lokikirjaukset, s. 94. Rakennemuutosten lokikirjaukset, s Tietosivun päivittäminen, s WAL-käytäntö, s Puskurinhallintakäytännöt, s Levyhakujen vähentäminen, s

3 Tietokannan loki Normaalin transaktionkäsittelyn aikana pidetään yllä lokia (log) seuraavia tarkoituksia varten: (1) Transaktioiden peruutus tai osittaisperuutus: etenemisvaiheen päivitysten käänteisoperaatioiden tuottaminen. (2) Häiriöistä elvytys: tietokannan levyversiosta puuttuvien päivitysten toisto ja transaktioiden peruutus. Lokiin kirjataan transaktioiden tietokantaan tekemät päivitykset, so. avainvälimallissa I-, D-, I 1 - ja D 1 -operaatiot, transaktioiden ohjausoperaatiot B, C, A, S[P], A[P] ja C[P], fyysisen tietokannan rakennemuutokset sekä elvytystä nopeuttavaa tietoa tarkistuspisteistä. 79

4 Jokainen lokikirjaus saa yksikäsitteisen lokijärjestysnumeron (log sequence number, LSN). Keskitetyssä tietokannassa lokijärjestysnumeroiden jono on nouseva: jos transaktion T operaatio o on suoritettu transaktion T operaation o jälkeen, on LSN(o) < LSN(o ). Yhteislevy- tai sivupalvelinjärjestelmässä, jossa pisteet (asiakkaat) tuottavat yhteiseen tietokantaan kohdistamistaan operaatioista lokikirjauksia toisistaan riippumattomasti, ei lokijärjestysnumeroiden jono voi olla globaalisti nouseva. Samalle sivulle kohdistuvien päivitysten LSN-arvojen pitää kuitenkin aina muodostaa ajan suhteen nouseva jono. 80

5 Lokijärjestysnumerot pyritään tuottamaan siten, että ne toimivat myös suorina (tai lähes suorina) osoitteina lokikirjauksiin. Usein käytetään lokitiedoston numeron ja tavusiirtymän muodostamaa paria. Tavusiirtymä ilmoittaa lokikirjauksen ensimmäisen tavun numeron tiedoston alusta lukien; siitä saadaan tietueen sijaintisivu operaatiolla sivunumero = tavusiirtymä div sivun koko. Tavusiirtymän sijasta voitaisiin käyttää myös tietuetunnistetta (p, i), missä p on sivunumero (1,2,3,...) ja i tietueen järjestysnumero sivulla (sivun sisäisen tietuehakemiston indeksi). Silloin (p 1,i 1 ) < (p 2,i 2 ), jos joko p 1 < p 2 tai p 1 = p 2 ja i 1 < i 2. Transaktion T tuottama lokikirjaus varustetaan aina T :n tunnisteella ja T :lle kuuluvat lokikirjaukset linkitetään LSN:ien avulla toisiinsa. 81

6 Transaktion T lokikirjauksen yleinen muoto on n: T,o[ x],n, missä o[ x] esittää kirjattavaa operaatiota ja sen argumentteja, n on kirjauksen LSN ja n on joko T :n edellisen lokikirjauksen LSN (etenemisoperaation kirjauksessa) tai T :n seuraavaksi peruutettavan operaation lokikirjauksen LSN (käänteisoperaation kirjauksessa). Transaktion T etenemisoperaatio o[ x] kirjataan lokitietueeseen siten, että operaatio voidaan tarvittaessa toistaa tai perua. Transaktion T peruutusvaiheessaan tai osittaisperuutuksessa suorittama käänteisoperaatio o 1 [ x] on tarpeen kirjata ainoastaan toistokelpoisesti: operaatio o 1 [ x] on lokikirjauksen perusteella voitava toistaa; peruutuskelpoisuus ei sitä vastoin ole tarpeen, koska käänteisoperaatioita ei koskaan peruta. Lokikirjauskäytännöt voidaan luokitella fyysisiin, loogisiin ja fysiologisiin lokikäytäntöihin. 82

7 Fyysinen ja looginen lokikäytäntö Arvoperustaisessa eli fyysisessä lokikäytännössä (value logging, physical logging) lokitietueeseen kirjataan päivityksen kohteena olevan sivun numero, päivitysoperaation vaikutuksesta muuttuneiden tavujen sijainti sivulla sekä päivityksen alkukuva ja jälkikuva. Alkukuva (before image) ilmoittaa tavujen sisällön ennen päivitystä ja jälkikuva (after image) tavujen sisällön päivityksen jälkeen. Esim. monikon (x,v) lisäyksestä sivulle p tietuepaikkaan i kirjattaisiin tietuepaikan i muuttuneet tavut sivun p tietuealueella sekä myös muuttuneet tavut sivun p tietuehakemistossa (indeksin i kohdalla) ja p:n otsikkotietueessa (tietuehakemiston alkioiden lukumäärän osoittavassa kentässä). 83

8 Muuttuneet tavujonot osoitteineen (tavusiirtymä sivun alusta) ja alku- ja jälkikuvineen voidaan kirjata kaikki yhteen lokikirjaukseen, mikäli tämä mahtuu yhdelle sivulle. Voidaan myös käyttää useampaa lokitietuetta; esim. alkukuva voidaan kirjata yhteen ja jälkikuva toiseen. Lokiin fyysisesti kirjattu päivitysoperaatio voidaan toistaa naulitsemalla ja kirjoitussalpaamalla asianomainen sivu ja kirjoittamalla siihen jälkikuva, ja operaatio voidaan perua kirjoittamalla alkukuva. 84

9 Loogisessa lokikäytännössä (logical logging) lokitietueeseen kirjataan loogisia operaatioita, so. avainvälimallissamme operaatioita I[x,v], D[x,v], I 1 [x,v] ja D 1 [x,v]. Esim. transaktion T etenemisoperaatio I[x,v] kirjattaisiin n: T,I,x,v,n, missä n on T :n edellisen lokikirjauksen LSN. Looginen operaatio toistetaan suorittamalla operaatio uudestaan (loogisesti) ja perutaan suorittamalla operaation käänteisoperaatio (loogisesti). Esim. I[x,v] perutaan suorittamalla D[x,v]. 85

10 Loogisesti kirjatun operaation toisto ja peruutus ovat tehottomia. Esim. toistetaan D[x,v]. Jos tietokannan rakenteena on kasa (järjestämätön peräkkäistiedosto), on siitä etsittävä avainarvolla x varustettu monikko konttaamalla kasan sivut läpi kirjoitussalpoja varaten, kunnes päästään monikon (x,v) sisältävälle sivulle. Jos tietokannan rakenteena on B-puu, on siitä etsittävä avainarvolla x varustettu monikko konttaamalla hakupolku B-puun juurisivulta avainarvon x peittävälle lehtisivulle. 86

11 Fysiologinen lokikäytäntö Nykyisissä tkhj:ssä sovelletaan yleensä fyysis-loogista eli fysiologista lokikäytäntöä (physiological logging), jossa lokikirjaukset ovat sivun osalta fyysisiä ja tietueen osalta loogisia. Esim. transaktion T harvan B-puun lehtisivulle p tietuepaikkaan i suorittama operaatio I[x,v] kirjataan n: T,I, p,i,x,v,n. Esitettävässä elvytysmenetelmässä (ARIES-algoritmissa) operaatioiden toistot suoritetaan aina täsmälleen lokikirjausjärjestyksessä eli operaatioiden alkuperäisessä suoritusjärjestyksessä. Fysiologisesti kirjatun operaation toisto voidaan niin muodoin aina toteuttaa fyysisesti, so. samalle sivulle p ja samaan tietuepaikkaan i, johon se alkujaan tehtiin ja jonka paikan osoite, (p,i), on kirjattu lokitietueeseen. 87

12 Fyysinen toisto on hyvin tehokasta, sillä operaation kohdetta ei tarvitse etsiä, vaan kohteen sijaintisivulle päästään suoraan riippumatta siitä, mikä fyysinen tietokantarakenne on kysymyksessä. Lokiin tietueella T,I, p,i,x,v,n kirjatun operaation I[x,v] toistossa sivu p naulitaan ja kirjoitussalvataan, lisätään monikko (x,v) sivulle p paikkaan i ja vapautetaan p:n salpaus ja naulinta. Lokiin tietueella T,D, p,i,x,v,n kirjatun operaation D[x,v] toistossa sivu p naulitaan ja kirjoitussalvataan, poistetaan sivulta p tietuepaikassa i oleva monikko (joka on (x,v)) ja vapautetaan p:n salpaus ja naulinta. 88

13 Operaation peruutus fyysisesti ei sitä vastoin aina ole mahdollista. Transaktioita tuottavat prosessit vapauttavat päivittämiinsä sivuihin varaamansa kirjoitussalvat heti päivitysoperaation suorituksen jälkeen, siis ennen transaktion sitoutumista, ja voivat peruuttaa operaatioitaan toisista transaktioista riippumatta. Transaktio T suorittaa B-puun lehtisivulle p paikkaan i operaation D[x,v]. Operaatio kirjataan lokiin tietueella n: T,D, p,i,x,v,n. T vapauttaa sivun p kirjoitussalvan ja jatkaa etenemistään suorittaen muita operaatioita. Muiden transaktioiden operaatiot sillä välin täyttävät sivua p niin, ettei sinne enää jää tilaa yhdellekään tietueelle, tai sitten sivu p ylivuotaa ja halkaistaan niin, että varattu uusi sivu p peittää avainarvon x. 89

14 T on vielä aktiivinen ja haluaa nyt peruuttaa operaation D[x,v]. Käänteisoperaation D 1 [x,v] suoritus fyysisesti sivulle p ei onnistu. Kun operaatiota ei voida peruuttaa fyysisesti, turvaudutaan loogiseen peruutukseen. Operaation D[x, v] peruutusta yritetään ensin entiselle sivulle p: sivu p naulitaan ja kirjoitussalvataan ja jos se vielä peittää avainarvon x ja jos sivulla p on tilaa monikolle (x,v), niin lisätään (x,v) sivulle p johonkin paikkaan j. Muutoin operaatio perutaan suorittamalla käänteisoperaatio D 1 [x,v] loogisesti: kuljetaan hakupolku puun juuresta x:n peittävälle lehtisivulle p ja lisätään (x,v) sinne. 90

15 Aktiivisten transaktioiden taulu Transaktionhallinnan ja elvytyksen tarpeisiin pidetään kirjaa transaktioista, jotka parhaillaan ovat aktiivisina. Kustakin aktiivisesta transaktiosta T säilytetään aktiivisten transaktioiden taulussa (activetransaction table) eli lyhyesti transaktiotaulussa (transaction table) seuraavia tietoja: (1) T :n tunniste. (2) T :n tila (state), so. forward-rolling (etenevä) tai backwardrolling (peruuntuva). (3) T :n tuottaman viimeisimmän vielä peruuttamatonta etenemisvaiheen operaatiota esittävän lokikirjauksen järjestysnumero Undo- Next-LSN. Käytännössä myös (4) T :n viimeisimmän lokikirjauksen järjestysnumero Prev-LSN (ei tarvita kurssilla esittävissä algoritmeissa). Transaktiotaulu perustetaan ja alustetaan tyhjäksi järjestelmää käynnistettäessä. 91

16 Kun järjestelmään tulee suoritettavaksi uusi transaktio, sille määrätään tunniste, T, kirjataan lokiin aloituskirjaus T,B ja viedään transaktiotauluun tietue (T, forward-rolling, Undo-Next-LSN = n), missä n on T :n aloituskirjauksen LSN. Kun transaktio sitoutuu tai päättää peruutuksensa, sen tiedot poistetaan transaktiotaulusta. Transaktiotaulu toteutetaan tehokkaana keskusmuistitietorakenteena (hajautus transaktion tunnisteella). 92

17 Transaktioiden peruutuksen ja häiriöistä elvytyksen tarpeisiin olisi transaktiotauluun tarpeen tallentaa tieto ainoastaan niistä aktiivisista transaktioista, jotka ovat suorittaneet vähintään yhden päivitysoperaation. Transaktioiden samanaikaisuuden hallintaa varten on transaktioilla tarpeen olla tunniste siinä vaiheessa, kun transaktio varaa ensimmäisen lukkonsa (joko lukua tai päivitystä varten). Kun sovellusohjelmointikielessä ei ole erityistä transaktionaloituslausetta (begin transaction), tehdäänkin transaktion aloituskirjaus vasta sitten, kun transaktio on suorittamassa ensimmäistä tietokantaoperaatiotaan (lukua tai päivitystä). 93

18 Avainvälimallin operaatioiden lokikirjaukset Fysiologisessa lokikäytännössä kirjattavat operaatiokohtaiset lokitietueet ovat avainvälimallimme tapauksessa seuraavat (n on lokikirjauksen saama LSN): (1) Transaktion T aloitusoperaatio B kirjataan n: T,B. (2) Transaktion T sitoutuminen tai peruutuksen päättyminen C kirjataan n: T,C. (3) Transaktion T keskeytyminen A kirjataan n: T,A. Transaktion T etenemisoperaation (I tai D) lokikirjaus sisältää operaation nimen ja argumentit sekä T :n Undo-Next-LSN-arvon n. (4) Transaktion T sivulle p tietuepaikkaan i toteutettu etenemisoperaatio I[x,v] kirjataan n: T,I, p,i,x,v,n. (5) Transaktion T sivulle p tietuepaikkaan i toteutettu etenemisoperaatio D[x,v] kirjataan n: T,D, p,i,x,v,n. 94

19 (6) Transaktion T peruutuspisteen asetus S[P] kirjataan n: T,S[P],n, missä n on T :n edellisen lokikirjauksen LSN. (7) Transaktion T osittaisperuutuksen aloitus A[P] kirjataan n: T,A[P]. (8) Transaktion T osittaisperuutuksen päättäminen C[P] kirjataan n: T,C[P]. Etenemisoperaatioiden lokikirjaukset 4 ja 5 ovat toisto- ja peruutuskelpoisia kirjauksia (redo-undo log record); niiden avulla operaatio voidaan sekä toistaa (fyysisesti) että perua (fyysisesti, tai jos se ei ole mahdollista, niin loogisesti). 95

20 Peruuntuvan transaktion peruutusvaiheessa tai etenevän transaktion osittaisperuutuksessa suoritetun käänteisoperaation lokikirjaus sisältää operaation nimen ja argumentit (tarvittavin osin) sekä T :n Undo-Next- LSN-arvon, so. T :n seuraavaksi peruutettavan operaation lokikirjauksen LSN:n n. (9) Transaktion T sivulle p tietuepaikkaan i toteutettu käänteisoperaatio I 1 [x,v] kirjataan n: T,I 1, p,i,n, kun T :n vastaavan etenemisoperaation I[x, v] lokikirjaus on T,I, p,i,x,v,n. Huomaa, ettei monikon lisäyksen peruutuksen eli monikon poiston toistoa varten ole tarpeen kirjata itse monikkoa. 96

21 (10) Transaktion T sivulle p tietuepaikkaan i toteutettu käänteisoperaatio D 1 [x,v] kirjataan n: T,D 1, p,i,x,v,n, kun T :n vastaavan etenemisoperaation D[x, v] lokikirjaus on T,D, p,i,x,v,n. Käänteisoperaatioiden lokikirjaukset ovat ainoastaan toistokelpoisia kirjauksia (redo-only log record); niiden avulla lokikirjauksen ilmaisema käänteisoperaatio voidaan toistaa (fyysisesti), mutta käänteisoperaatioita ei koskaan peruta. Käytetään myös nimitystä korvaava lokikirjaus (compensation log record, CLR). 97

22 Esim. sitoutunut transaktio T 1 : BR[x,u]R[y,v]D[z,w]I[z,w ]C tuottaa lokikirjaukset n 1 : T 1,B. n 2 : T 1,D, p,i,z,w,n 1. n 3 : T 1,I, p,i,z,w,n 2. n 4 : T 1,C. Tässä monikko (z, w) on poistettu sivulta p tietuepaikasta i ja monikko (z,w ) lisätty sivulle p paikkaan i. Lokijärjestysnumerot n 1,n 2,n 3,n 4 muodostavat nousevan jonon. Kun suorituksessa on muita samanaikaisia transaktioita, kirjautuu näiden tuottamia lokikirjauksia T 1 :n lokikirjausten väliin. 98

23 Peruuntunut transaktio T 2 : BR[x,u]R[y,v]D[z,w]I[z,w ]AI 1 [z,w ]D 1 [z,w]c tuottaa lokikirjaukset n 1 : T 2,B. n 2 : T 2,D, p 1,i 1,z,w,n 1. n 3 : T 2,I, p 2,i 2,z,w,n 2. n 4 : T 2,A. n 5 : T 2,I 1, p 3,i 3,n 2. n 6 : T 2,D 1, p 4,i 4,z,w,n 1. n 7 : T 2,C. Monikon (z,w ) lisäys sivulle p 2 paikkaan i 2 on peruttu poistamalla monikko sen nykyisestä sijaintipaikasta sivulta p 3 paikasta i 3. Monikon (z,w) poisto sivulta p 1 paikasta i 1 on peruttu lisäämällä monikko (z,w) sivulle p 4 paikkaan i 4. 99

24 Edellä olemme olettaneet, että looginen tietokantamme koostuu yhdestä ainoasta relaatiosta. Mikäli looginen tietokanta koostuu useammasta relaatiosta, on asianomaisen relaation tunniste r sijoitettava lokikirjaukseen: Etenemisoperaatioiden kirjaukset: (4) T,I, p,i,r(x,v),n. (5) T,D, p,i,r(x,v),n. Käänteisoperaatioiden kirjaukset: (9) T,I 1, p,i,n. (10) T,D 1, p,i,r(x,v),n. Kirjauksessa 10 on r tarpeellinen vain jos se kuuluu monikon sisäiseen esitykseen. Mikäli looginen tietokanta jakaantuu useampiin osatietokantoihin, joissa voi olla samannimisiä relaatioita, pitää lokikirjauksiin sijoittaa myös osatietokannan tunniste. 100

25 Rakennemuutosten lokikirjaukset Kuten edellä on jo todettu, fyysisen tietokannan rakennemuutos on oma atominen kokonaisuutensa, joka sitoutuu rakennemuutoksen aiheuttaneesta transaktiosta riippumattomasti. Jotta tietokannan levyversiosta puuttuvat rakennemuutokset olisi mahdollista toistaa häiriöstä elvyttäessä, on nekin kirjattava lokiin. Uuden sivun q varaus kasarakenteeseen voitaisiin kirjata lokiin esimerkiksi seuraavasti: n 1 : S,B. n 2 : S, allocate-page-for-heap, s, f, p,q. n 3 : S,C. Tässä S on järjestelmän generoima uusi transaktiotunniste. Kun rakennemuutos on kirjattu sitoutuneeksi, on se peruuttamaton, kuten mikä tahansa sitoutunut transaktio. 101

26 Tehokkuussyistä emme kuitenkaan vaadi rakennemuutoksilta aivan täyttä transaktion semantiikkaa. Transaktion täydellinen sitoutumiskäytäntö edellyttäisi lokin pakotusta levylle, mitä haluamme välttää. Kun rakennemuutoksen kaikki varsinaiset fyysisen tietokannan rakenteeseen vaikuttavat operaatiot voidaan kirjata yhteen lokitietueeseen, ei ole tarpeen tuottaa erityistä transaktiotunnistetta eikä myöskään kirjata erikseen rakennemuutoksen alkamista ja päättymistä. Rakennemuutoksesta, joka varaa uuden sivun kasarakenteeseen, kirjataan siis lokiin ainoastaan tietue allocate-page-for-heap, s, f, p,q. 102

27 Oletetaan, että transaktioiden T 1 = BI[x,v]AI 1 [x,v]c ja T 2 = BI[y,w]C operaatiot suoritetaan järjestyksessä B 1 I 1 [x,v]b 2 I 2 [y,w]c 2 A 1 I 1 1 [x,v]c 1 ja että operaatio I 1 [x,v] aiheuttaa uuden sivun varauksen. Lokiin kirjautuu: n 1 : T 1,B. n 2 : allocate-page-for-heap, s, f, p,q. n 3 : T 1,I,q,i,x,v,n 1. n 4 : T 2,B. n 5 : T 2,I,q, j,y,w,n 4. n 6 : T 2,C. n 7 : T 1,A. n 8 : T 1,I 1,q,i,n 1. n 9 : T 1,C. Kirjaus n 2 ei kuulu millekään transaktiolle. T 1 :n kirjauksen n 3 Undo- Next-LSN-arvo osoittaa n 2 :n yli T 1 :n edelliseen kirjaukseen n

28 Tietosivun päivittäminen Oletetaan, että lokikirjaus... viedään lokiin kutsulla log(n,... ). Kutsu kirjoitussalpaa lokitiedoston viimeisen sivun, määrää LSNn n, vie lokikirjauksen lokitiedoston viimeiselle sivulle, vapauttaa sivun salpauksen ja palauttaa n:n. Tarkastellaan seuraavassa lyhyesti transaktion T etenemisoperaatioiden I[x,v] ja D[x,v] toteutusta. Tarkastelun ulkopuolelle jätetään vielä transaktioiden samanaikaisuuden hallinta (lukitus). Operaation I[x, v] toteutuksessa paikannetaan ja kirjoitussalvataan ensin tietokantarakenteesta se tietosivu p, jolle monikko (x, v) kuuluu lisätä. Esim. harvan B-puun tapauksessa on paikannettava se lehtisivu p, joka peittää avaimen x. 104

29 Oletetaan vielä, että sivun p paikantaminen sisältää myös ne rakennemuutokset (sivujen halkaisut), jotka on tehtävä riittävän tilan järjestämiseksi lisättävälle monikolle. Kun transaktiota T tuottava palvelinprosessin säie on paikantanut, naulinnut ja kirjoitussalvannut tietosivun p, monikko (x,v) lisätään sivulle p seuraavalla kutsulla: Insert-into-page(T, p, x, v) { lisää (x,v) sivulle p vapaaseen tietuepaikkaan i; log(n, T,I, p,i,x,v,n ), missä n = Undo-Next-LSN(T ); Undo-Next-LSN(T ) := n; Page-LSN(p) := n; }. Kutsun päätteeksi sivun p salpaus ja naulinta vapautetaan: ul(p). 105

30 Operaation D[x, v] toteutuksessa paikannetaan ja kirjoitussalvataan ensin tietokantarakenteesta se tietosivu p, joka sisältää avaimella x varustetun monikon. Oletetaan vielä, että sivun p paikantaminen sisältää myös ne rakennemuutokset, jotka on tehtävä, jottei sivu p jäisi monikon (x, v) poiston takia liian vajaaksi. Kun transaktiota T tuottava palvelinprosessin säie on paikantanut, naulinnut ja kirjoitussalvannut tietosivun p, monikko (x, v) poistetaan sivulta p seuraavalla kutsulla: Delete-from-page(T, p, x) { olkoon (x,v) sivun p tietuepaikassa i; poista (x,v) sivun p tietuepaikasta i; log(n, T,D, p,i,x,v,n ), missä n = Undo-Next-LSN(T ); Undo-Next-LSN(T ) := n; Page-LSN(p) := n; }. Kutsun päätteeksi sivun p salpaus ja naulinta vapautetaan: ul(p). 106

31 WAL-käytäntö Lokia säilytetään vakaassa muistissa (stable storage), so. mahdollisimman varmassa pysyvässä muistissa. Käytännössä vakaata muistia joudutaan approksimoimaan eri levyasemille sijoitetuilla kahdennetuilla levytiedostoilla. Lokikirjauksia pakataan puskurisivuille, joita tarvittaessa viedään levylle. Jotta loki osoittaisi mahdollisimman tarkasti transaktioiden ja tietokannan tilan, tulisi lokitiedoston sivu periaatteessa viedä puskurista levylle heti, kun siihen on lisätty uusi lokikirjaus. Tämä aiheuttaisi levyhaun jokaista päivitystä kohti, mikä on hyvin tehotonta. Todellisuudessa loki pakotetaan levylle vasta, kun transaktio sitoutuu tai päättää peruutuksensa tai kun puskurointikäytäntö sitä vaatii. Transaktion sitoutumiskäytäntöön (commit protocol), so. operaation C suoritukseen, sisältyy lokin vienti levylle (force-log-at-commit). 107

32 Aina kun transaktio päivittää (I, D, I 1 tai D 1 ) puskurissa olevaa tietokantasivua p, leimataan tästä päivityksestä tuotetun lokikirjauksen LSN sivun p otsikkotietueen Page-LSN-kenttään. Samoin leimataan rakennemuutoksen lokikirjauksen LSN kaikkien niiden sivujen Page-LSN-kenttään, joiden sisältöä rakennemuutos muuttaa. Esim. lokikirjauksen n 2 : allocate-page-for-heap, s, f, p,q LSN n 2 leimataan sivujen s, f, p ja q Page-LSN-kenttään. Kun sivu p on tarkoitus viedä puskurista levylle, on lokin hallitsimen ensin vietävä levylle kaikki lokitietueet, joiden LSN on p:n Page- LSN:ää pienempi tai yhtäsuuri. Tätä käytäntöä kutsutaan nimellä WAL-käytäntö (write-ahead logging protocol). 108

33 Häiriötilanteessa keskusmuistin sisältö katoaa, jolloin siis menetetään päivitettyjen tietokantasivujen puskuriversiot samoin kuin lokipuskurissa vielä olevat, levylle viemättömät lokikirjaukset. WAL-käytäntöä noudatettaessa levylle kertyy lokikirjauksia aina vähintään yhtä pitkälle kuin tietokantasivujen levyversioihin vastaavia päivityksiä. Häiriöstä elvyttäessä on lokin perusteella siis mahdollista toistaa ne päivitykset, jotka eivät olleet ehtineet levylle asti, ja peruuttaa levylle ehtineet aktiivisten transaktioiden päivitykset. Aktiiviseksi katsotaan transaktio, jolle ei löydy lokista C-tietuetta. 109

34 Puskurinhallintakäytännöt Palvelimen puskurinhallitsimen (buffer manager) tehtävänä on palvella tietokantaa käsittelevien prosessien naulinta- ja salpauspyyntöjä (rl, wl, ul) sekä yleisesti huolehtia siitä, että tietokantasivut ovat mahdollisimman hyvin saatavilla. Puskurissa on kerrallaan tilaa vain pienelle määrälle tietokantasivuja; puskurin kokoa voidaan varioida, mutta se on harvoin muutamaa tuhatta sivua suurempi. Sivujen naulinta puskuriin sekä lokitietueiden kirjoitussäännöt rajoittavat puskurinhallitsimen vapautta poistaa sivuja puskurista puskuritilan loputtua. 110

35 Sivua, joka on parhaillaan naulittuna jollekin prosessille tai säikeelle, ei puskurinhallitsimen ole lupa poistaa puskurista. WAL-käytännön mukaisesti päivitetyn tietokantasivun saa viedä puskurista levylle vasta, kun sivun päivitysten lokikirjaukset on viety levylle. Transaktion sitoutumiskäytäntö (samoin kuin peruutuksen päättämiskäytäntö) taas sisältää lokin pakotuksen levylle. Näiden lisäksi järjestelmä ei yleensä aseta puskurinhallinnalle muita rajoituksia. Joissakin järjestelmissä puskurinhallitsin saattaa soveltaa rajoitetumpaa käytäntöä. 111

36 Loogisen tietokannan tietoalkio (monikko tai relaatio) on likainen (dirty), jos sitä viimeksi päivittänyt transaktio on vielä aktiivinen, ja puhdas (clean), jos sitä viimeksi päivittänyt transaktio on sitoutunut tai peruuntunut. Päivitetty tietokantasivu on likainen, jos se sisältää likaisia tietoalkioita, ja puhdas muutoin. Puskurista levylle vietävää naulitsematonta sivua valitessaan puskurinhallitsin voi tehdä eron likaisten ja puhtaiden sivujen välillä tai sitten jättää sivun päivitystilan huomiotta. Jälkimmäisessä tapauksessa puskurinhallitsin soveltaa varastakäytäntöä (steal policy): sivu on lupa varastaa puskurista ja viedä levylle, vaikka sivun monikoita päivittäneistä transaktioista jotkin ovat vielä aktiivisia. 112

37 Toinen vaihtoehto on älä varasta -käytäntö (no-steal policy), jonka mukaan kaikki likaiset sivut pidetään puskurissa siihen asti, kun sivuja päivittäneet transaktiot ovat kaikki sitoutuneet tai peruuntuneet. Älä varasta -käytännöllä saavutetaan etua eräiden sellaisten elvytyskäytäntöjen yhteydessä, joissa häiriön vuoksi keskeytyneiden transaktioiden päivityksiä ei toisteta (vaan ne unohdetaan ). Tällä kurssilla esitettävän ARIES-elvytysalgoritmin tapauksessa älä varasta -käytännöstä ei sitä vastoin ole mitään etua (vaan pelkästään haittaa). Älä varasta -käytäntöä sovellettaessa puskurialtaan täytyy sitä paitsi olla niin iso, että sinne mahtuvat kaikkien aktiivisten transaktioiden päivittämät sivut samalla kertaa. Jo tästä syystä useimmissa järjestelmissä sovelletaankin varastakäytäntöä. 113

38 Entä milloin sitoutuvan transaktion päivittämät sivut pitäisi kirjoittaa levylle? On kaksi eri käytäntöä: Pakota-käytäntö (force policy). Transaktion pyytäessä sitoutumista tai päästyä peruutusvaiheensa loppuun (operaatio commit tai rollbackcompleted) puskurinhallitsin paikantaa kaikki transaktion päivittämät sivut, joita ei vielä ole viety levylle, ja vie ne levylle (WAL-käytäntöä noudattaen). Vasta tämän jälkeen transaktio sitoutuu tai päättää peruutuksensa, ts. transaktion päättyminen kirjataan lokiin ja loki pakotetaan levylle. Älä pakota -käytäntö (no-force policy). Sekä likaiset että puhtaat tietokantasivut saavat olla puskurissa niin kauan kuin sivujen viemää puskuritilaa ei tarvita muuhun käyttöön. 114

39 Pakota-käytäntö nopeuttaa häiriöstä elvytyksen toistovaihetta. Pakota-käytäntö hidastaa kuitenkin transaktion sitoutumista: päivitetyt sivut viedään levylle osana transaktion sitoutumiskäytäntöä. Vielä merkittävämpi haitta on, että sivu, jota useat transaktiot päivittävät peräjälkeen, tulee tarpeettomasti kirjoitetuksi levylle erikseen kunkin transaktion sitoutumisen yhteydessä. Älä pakota -käytännössä tällainen usein käytetty sivu ( hotspot - sivu) varmaankin pysyisi puskurissa transaktioiden välillä eikä sitä tarvitsisi kirjoittaa levylle kertaakaan. Useimmissa järjestelmissä sovelletaan älä pakota -käytäntöä. Tällä kurssilla esitettävissä menetelmissä oletetaan aina sovellettavan varasta ja älä pakota -käytäntöjä ( steal-and-no-force ), so. mahdollisimman vapaata puskurointikäytäntöä. 115

40 Levyhakujen vähentäminen Puskurinhallitsimen tulisi osaltaan yrittää minimoida tarvittavien levyhakujen määrää. Puskurin täyttyessä puskurista poistettava sivu tulisi valita järkevästi. Näennäismuistin (virtuaalimuistin) hallinnassa sovelletaan yleensä ns. LRU (least recently used) -strategiaa: kun kaikki kehykset ovat varattuja, viedään levylle se sivu, joka on pisimpään ollut käyttämättä (so. viittaamatta). LRU on riittävä strategia näennäismuistin hallintaan: kaikenlaisten ohjelmien käyttäytymistä on vaikea ennustaa. Tietokantasivujen hallintaan strategiaa voidaan parantaa. Tietokannan hallintajärjestelmä pystyy usein kyselyn muodosta ennustamaan, mitä sivuja tullaan tarvitsemaan kyselyn toteuttamisessa. Käyttöjärjestelmä sitä vastoin joutuu nojautumaan menneisyyteen tulevaisuuden ennustamisessa, kun taas tkhj:llä voi olla tietoa ainakin lähitulevaisuudesta. 116

41 Relaatioiden r(ab) ja s(bc) luonnollisen liitoksen r s laskenta, kun liitosattribuutti B ei ole kummankaan relaation avain, relaatiot ovat eri tiedostoissa ja hakemistoja ei ole (lukitusoperaatiot puuttuvat algoritmista): for (jokainen r:n sivu p) { rl(p); for (jokainen s:n sivu q) { rl(q); for (jokainen p:n r-monikko t ja jokainen q:n s-monikko u) if (t(b) = u(b)) tulosta liitosmonikko tu; ul(q) }; ul(p) }. 117

42 Kun r:n sivu p on käsitelty, sitä ei enää tarvita uudelleen. Sopiva puskurointistrategia r:n sivuille on: poista heti puskurista (toss immediate). Jokaista r:n sivua p kohti täytyy käsitellä kaikki s:n sivut q. Kun q on käsitelty, sitä tarvitaan uudelleen vasta kun kaikki muut s:n sivut on käsitelty. Sopiva puskurointistrategia s:n sivuille on MRU (most recently used), siis LRU-strategian vastakohta. Käsittelyvuorossa oleva r:n sivu naulitaan s:n käsittelyn ajaksi, minkä jälkeen siitä tehdään MRU-sivu. Siis MRU on optimaalinen strategia sekä r:n että s:n sivuille. 118

Transaktioiden peruutus ja tietokannan elvytys häiriöstä

Transaktioiden peruutus ja tietokannan elvytys häiriöstä Transaktioiden peruutus ja tietokannan elvytys häiriöstä C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial

Lisätiedot

Tietokantarakenteet ja -algoritmit 3. harjoitus

Tietokantarakenteet ja -algoritmit 3. harjoitus Tietokantarakenteet ja -algoritmit 3. harjoitus Malliratkaisut 1. Analyysivaiheen alussa alustetaan aktiivisten transaktioiden taulu (tyhjä) ja päivitettyjen sivujen taulu (samoin tyhjä) tarkistuspisteestä.

Lisätiedot

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

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1 Elvytys R & G Chapter 18 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Motivaatio Atomisuus: Transaktiot voivat päättyä peruutukseen ( Rollback ). Pysyvyys: Entä jos TKHJ kaatuu? (Syyt?) Halutut ominaisuudet

Lisätiedot

Sivupalvelin- ja yhteislevyjärjestelmät

Sivupalvelin- ja yhteislevyjärjestelmät Sivupalvelin- ja yhteislevyjärjestelmät C. Mohan & I. Narang 1994: ARIES/CSA: a method for database recovery in client-server architectures. Proc. of the 1994 ACM SIG- MOD Internat. Conf. on Management

Lisätiedot

Tietokantarakenteet ja -algoritmit Harjoitukset 1-12

Tietokantarakenteet ja -algoritmit Harjoitukset 1-12 Tietokantarakenteet ja -algoritmit Harjoitukset 1-12 Malliratkaisut 1 Harjoitus 1 1. Kukin DEPARTMENT-monikko d sijoitetaan omalle sivulleen. Sen seuraksi samalle sivulle sijoitetaan tähän liittyviä EMPLOYEE-monikoita

Lisätiedot

Transaktiopalvelimen rakenne, s. 43. Levyjaksot, sivut ja tiedostot, s. 46. Tietokantasivujen puskurointi, s. 53. Tietokannan tila, s. 57.

Transaktiopalvelimen rakenne, s. 43. Levyjaksot, sivut ja tiedostot, s. 46. Tietokantasivujen puskurointi, s. 53. Tietokannan tila, s. 57. Fyysinen tietokanta A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut 24 26, luvun 1 (introduction) kohta 1.11 (database architecture); sivut

Lisätiedot

Tietokantarakenteet ja -algoritmit 6. harjoitus

Tietokantarakenteet ja -algoritmit 6. harjoitus Tietokantarakenteet ja -algoritmit 6. harjoitus Malliratkaisut 1.. a) T1 = B I[b, r 2, 0, 0] IX-lukitaan järjestelmä s, tietokanta b ja relaatio (b, r 2 ) (tässä järjestyksessä), X-lukitaan (b, r 2, 0)

Lisätiedot

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

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo. Tietokantarakenteet ja -algoritmit 5. harjoitus Malliratkaisut 1. B 1 : T 1 alkaa. I 1 [1]: T 1 :lle pitkäkestoinen X-lukko avaimeen 1 ja lyhytkestoinen X-lukko avaimen 1 seuraajaan. B 2 : T 2 alkaa. I

Lisätiedot

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

Lisätään avainarvo 6, joka mahtuu lehtitasolle: 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

Lisätiedot

Looginen tietokanta ja transaktiot

Looginen tietokanta ja transaktiot Looginen tietokanta ja transaktiot A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut 22 23, luvun 1 (introduction) kohta kohta 1.9 (transaction

Lisätiedot

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

Lisätään avainarvo 1, joka mahtuu lehtitasolle: 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

Lisätiedot

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

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely HAAGA-HELIA Heti-09 1 (14) Transaktionkäsittely Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen...

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11

Lisätiedot

T-106.5220 Transaktionhallinta tietokantajärjestelmissä

T-106.5220 Transaktionhallinta tietokantajärjestelmissä Opetusmoniste T-106.5220 Transaktionhallinta tietokantajärjestelmissä Kevät 2009 (periodi III) Osa 1: Looginen tietokanta ja transaktiot Osa 2: Fyysinen tietokanta Osa 3: Lokin ylläpito ja puskurinhallinta

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

Lisätiedot

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

Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta. Transaktionhallinta. Transaktionhallinta (transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi

Lisätiedot

[c] What is the difference between a modified page and a dirty page? Mitä eroa on päivitetyllä sivulla ja likaisella sivulla?

[c] What is the difference between a modified page and a dirty page? Mitä eroa on päivitetyllä sivulla ja likaisella sivulla? CS-E4230 Transaction Management in DB Early Spring 2017 Tutorial No 2 (1/5) [0] [a] Why is it a good idea to keep the DB log on a separate disk? Miksi on hyvä pitää tietokannan loki omalla levyllään? [b]writing

Lisätiedot

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

Transaktioiden samanaikaisuuden hallinta

Transaktioiden samanaikaisuuden hallinta Transaktioiden samanaikaisuuden hallinta C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using

Lisätiedot

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

Lisätiedot

Hajautettujen transaktioiden hallinta

Hajautettujen transaktioiden hallinta Hajautettujen transaktioiden hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut 1005 1028, luvun 24

Lisätiedot

Muita transaktioiden hallintamenetelmiä

Muita transaktioiden hallintamenetelmiä Muita transaktioiden hallintamenetelmiä H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

D B. Tietokannan hallinta kertaus

D B. Tietokannan hallinta kertaus TKHJ:n pääkomponentit metadata TKHJ:ssä Tiedostojen käsittely puskurien rooli tiedostokäsittelyssä levymuistin rakenne ja käsittely mistä tekijöistä hakuaika muodostuu jonotus jos useita samanaikaisia

Lisätiedot

D B. Tiedostojen käsittely

D B. Tiedostojen käsittely Tietokantojen tietoja säilytetään yleensä apumuistissa, lähinnä levymuisteissa Apumuistiin tallentamisen merkittäviä etuja keskusmuistiin nähden ovat tiedon säilyvyys (virtakatkon yli) säilytyskapasiteetin

Lisätiedot

D B. Transaktionhallinta

D B. Transaktionhallinta (transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi

Lisätiedot

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

5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2: Tietokannan hallinta 1 5. Tapahtumien hallinta Tietokannan hallinta 2 5. Tapahtumien hallinta 5. Tapahtumien hallinta = transaction management (yleistä: E&N, Ch. 19) kaikkien tietokantajärjestelmien keskeinen

Lisätiedot

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

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet R&G Chapter 9 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet Tiedostojen tehokkuutta yhtä kyselyä kohti arvioidaan usein tarvittavien levyhakujen määrällä. kuten levykäsittelyn

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti

Lisätiedot

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

Levymuisti. R&G Chapter 8 & Tietokannan hallinta, kevät 2006, Jan 1 Levymuisti R&G Chapter 8 & 9 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Tiedon talletuspaikkoja Levy: Pystytään noutamaan satunnainen sivu kiinteällä kustannuksella Useiden sivujen noutaminen halvempaa

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 26.3.2019 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti 26.3.2019 2/34 B-puu B-puut ovat tasapainoisia

Lisätiedot

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu HELIA 1 (16) Luento 3.2 Suorituskyvyn optimointi jatkuu...... 2 Tietojen tallennusratkaisut... 2 Tiedon tallennuksen yksiköitä... 3 Loogiset... 3 Fyysiset... 3 Tallennusmäärittelyt Oraclessa... 5 Loogiset

Lisätiedot

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

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Hakemistorakenteet R & G Chapter 10 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hakemistotyypeistä Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta

Lisätiedot

Tiedon talletuspaikkoja. Levymuisti. Vaihtoehtoisia talletusrakenteita. Tietokantojen säilytys. R&G Chapter 8 & 9. Useita vaihtoehtoja:

Tiedon talletuspaikkoja. Levymuisti. Vaihtoehtoisia talletusrakenteita. Tietokantojen säilytys. R&G Chapter 8 & 9. Useita vaihtoehtoja: Tiedon talletuspaikkoja Levymuisti R&G Chapter 8 & 9 Levy: Pystytään noutamaan satunnainen sivu kiinteällä kustannuksella Useiden sivujen noutaminen halvempaa kuin satunnaisen sivun Nauha: Sivuja käsiteltävä

Lisätiedot

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan

Lisätiedot

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta Hakemistotyypeistä Hakemistorakenteet R & G Chapter 10 Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta tai tietuejoukosta tuotettu tunnus yleensä

Lisätiedot

D B. Harvat hakemistot. Harvat hakemistot

D B. Harvat hakemistot. Harvat hakemistot Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut) kohti Harvan hakemiston

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Transaktioiden eristyvyys

Transaktioiden eristyvyys Transaktioiden eristyvyys H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on Management of

Lisätiedot

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet 3. Tietokannan hakemistorakenteet Tiedoston tietueiden haku voi perustua johonkin monesta saantipolusta (access path): - perustiedoston tiedostorakenne - hakemistot, joita voidaan tehdä käsittelytarpeiden

Lisätiedot

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet 3. Tietokannan hakemistorakenteet Tiedoston tietueiden haku voi perustua johonkin monesta saantipolusta (access path): - perustiedoston tiedostorakenne - hakemistot, joita voidaan tehdä käsittelytarpeiden

Lisätiedot

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

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu

Lisätiedot

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 1. Luento 5 Ti Timo Männikkö Algoritmit 1 Luento 5 Ti 24.1.2017 Timo Männikkö Luento 5 Järjestetty lista Järjestetyn listan operaatiot Listan toteutus taulukolla Binäärihaku Binäärihaun vaativuus Algoritmit 1 Kevät 2017 Luento 5 Ti

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

Tietohakemisto ja Transaktionkäsittely

Tietohakemisto ja Transaktionkäsittely HELIA TIKO-05 1 (18) Tietohakemisto ja Transaktionkäsittely Tietohakemisto...2 Oraclen tietohakemistonäkymät (osa)...3 Yleiset...3 Taulut...3 Säännöt...3 Näkymät...3 Synonyymit...4 Indeksit...4 Sekvenssit...4

Lisätiedot

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

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

Lisätiedot

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012)

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) TEHTÄVIÄ/KYSYMYKSIÄ Määrittele tapahtuma (transaction) tapahtumien hallinta Mitä ovat tapahtuman ACIDominaisuudet?

Lisätiedot

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

Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa. Tietokannan hallinta 35 3. Tietokannan 3.3 Dynaamiset Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa. Ajan mittaan epätasapainoa:

Lisätiedot

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa Sisältö Transaktionaaliset työnkulut Samanaikaisuuden ongelmat Optiot idea käyttökohteet WorkMan Optioiden toteutus Arviointi Transaktionaaliset

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

B-puu. 3.3 Dynaamiset hakemistorakenteet

B-puu. 3.3 Dynaamiset hakemistorakenteet Tietokannan hallinta 2 3. Tietokannan hakemistorakenteet 3.3 Dynaamiset hakemistorakenteet Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen

Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen Yksitasoiset talletusrakenteet Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen järjestämätön peräkkäisrakenne (kasa, heap) järjestetty peräkkäisrakenne (sequential file) hajautusrakenne

Lisätiedot

Helsingin yliopisto/tktl Tietokannan hallinta kevät Harri Laine 1 D B. Yksitasoiset talletusrakenteet

Helsingin yliopisto/tktl Tietokannan hallinta kevät Harri Laine 1 D B. Yksitasoiset talletusrakenteet Yksitasoiset talletusrakenteet Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen järjestämätön peräkkäisrakenne (kasa, heap) järjestetty peräkkäisrakenne (sequential file) hajautusrakenne

Lisätiedot

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

D B. Levytiedostojen käsittely. Levytiedostojen käsittely Tietokantojen tietoja säilytetään yleensä apumuistissa, lähinnä levymuisteissa Apumuistiin tallentamisen merkittäviä etuja keskusmuistiin nähden ovat tiedon säilyvyys (virtakatkon yli) säilytyskapasiteetin

Lisätiedot

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten

Lisätiedot

Helsingin yliopisto/tktl Kyselykielet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1. Tiedostorakenteet.

Helsingin yliopisto/tktl Kyselykielet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1. Tiedostorakenteet. Tiedostorakenteet Tiedostorakenne määrittelee miten tietueet tallennetaan tiedostoon miten tietoja haetaan Tiedostorakenne on yksitasoinen (flat), jos se muodostuu pelkästään datatietueista. Tiedostorakenne

Lisätiedot

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta. Tieto - data Digitaalisesti tallennettua informaatiota jostakin kohteesta Vapaamuotoinen tieto (unformatted) Esim. teksti, puhe, kuvat, Sisältö jäsentämätöntä Koneellinen käsittely vaikeaa paitsi kokonaisuutena

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 11.4.2019 Timo Männikkö Luento 10 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutusmenetelmä Osajoukon summa Algoritmit 2 Kevät 2019 Luento 10 To

Lisätiedot

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

Helsingin yliopisto /TKTL Tietokannan hallinta Harri Laine 1 D B. Harvat hakemistot. Harvat hakemistot Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut) kohti Harvan hakemiston

Lisätiedot

Algoritmit 1. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 4 Ke Timo Männikkö Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 15.4.2019 CS-A1150 Tietokannat 15.4.2019 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta Tietokannan hallinta - kurssin tavoite Kurssilla opitaan periaatteet fyysisen tietokannan tallennuksesta ja käsittelystä tietokantakyselyiden muuntamisesta fyysisen tietokannan käsittelyoperaatioiksi kyselyn

Lisätiedot

D B. Harvat hakemistot

D B. Harvat hakemistot Harvat hakemistot Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut)

Lisätiedot

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tiedonhallintajärjestelmän rakenne ja Suorituskyky HELIA TIKO-05 1 (20) Tiedonhallintajärjestelmän rakenne ja Suorituskyky Tiedonhallintajärjestelmän rakenne... 2 SQL-käsittelijä... 3 Parsinta (Parser)... 3 Optimointi (Optimizer)... 3 Tilan käsittelijä...

Lisätiedot

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Merkintöjen tulkintoja *++Pstack->top = item *Pstack->top++ = item (*Pstack->top)++ *(Pstack++)->top = item *(++Pstack)->top = item Lisää pinon toteutuksia Dynaaminen taulukko

Lisätiedot

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

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Hajautusrakenteet R&G Chapter 11 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hajautukseen perustuvat tiedostorakenteet Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot

Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet

Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet Hajautusrakenteet R&G Chapter Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen nopea haku. Tähän pyritään siten, että tietueen sijoituspaikan eli solun (cell, bucket) osoite

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu HELIA 1 (21) Luento 3.1 Suorituskyvyn optimointi... 2 Suunnittele... 3 Tiedonhallintajärjestelmän rakenne... 4 SQL-käsittelijä... 5 Parsinta... 5 Optimointi... 5 Tilan käsittelijä... 5 Puskurin käsittelijä

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A

Lisätiedot

Fyysinen suunnittelu

Fyysinen suunnittelu Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Fyysinen suunnittelu kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luvusta 9 Jouni

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty

Lisätiedot

FYYSINEN SUUNNITTELU

FYYSINEN SUUNNITTELU IIO30120 DATABASE DESIGN / TIETOKANTOJEN SUUNNITTELU JA IIO30220 DATABASE MANAGEMENT / TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI,

Lisätiedot

2. Tietokannan tallennusrakenteet

2. Tietokannan tallennusrakenteet 2. Tietokannan tallennusrakenteet - tallennusrakenne = säilytysrakenne 2.1 Levymuisti ja sen käyttö 2.2 Puskurointi 2.3 Tietokannan tiedostorakenne 2.4 Järjestämätön peräkkäistiedosto (kasa) 2.5 Järjestetty

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 12.4.2016 CSE-A1200 Tietokannat 12.4.2016 1 / 42 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

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

D B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa Poistot Alkuperäisen B+ -puun idean mukaisesti tasapainotusta tehdään myös poistossa 50 Jos datasivun täyttösuhde laskee alle puoleen ja sivun ja sen velisivun (sibling, saman isäsivun alla oleva vierussivu)

Lisätiedot

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

FYYSINEN SUUNNITTELU

FYYSINEN SUUNNITTELU IIO30100 TIETOKANTOJEN SUUNNITTELU JA IIO30200 TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI, DOCENDO (2003, 2005), LUKU 9 JOUNI HUOTARI,

Lisätiedot

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen) TKT0001 Tietorakenteet ja algoritmit Erilliskoe 5.1.01, malliratkaisut (Jyrki Kivinen) 1. [1 pistettä] (a) Esitä algoritmi, joka poistaa kahteen suuntaan linkitetystä järjestämättömästä tunnussolmullisesta

Lisätiedot

2. Tietokannan tallennusrakenteet

2. Tietokannan tallennusrakenteet Tietokannan hallinta 1 2. Tietokannan tallennusrakenteet 2. Tietokannan tallennusrakenteet 2.1 Levymuisti ja sen käyttö Muistilaitteiden hierarkia: ainakin keskusmuisti levymuisti (+ muita tukimuisteja,

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

Lisätiedot