Lataa esitys
Esittely latautuu. Ole hyvä ja odota
1
Tietokannan hallinta, kevät 2006, Jan Lindström
Hakemistorakenteet R & G Chapter 10 Tietokannan hallinta, kevät 2006, Jan Lindström
2
Tietokannan hallinta, kevät 2006, Jan Lindström
Hakemistotyypeistä Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta tai tietuejoukosta tuotettu tunnus – yleensä suoraan kentän arvo tietueen osoitteen, joka voi olla joko sivuosoite tai tietueen siirtely sivun sisällä helppoa riviosoite (sivuosoite + rivin (tietueen) järjestysnumero) tietueen siirtely edellyttää tietueeseen viittavien hakemistomerkintöjen muuttamista, tietue löytyy nopeammin Tietokannan hallinta, kevät 2006, Jan Lindström
3
Hakemiston toteutuksesta
Teknisesti hakemistokin on tiedosto muodostuu sivuista (hakemistosivu) hakemistomerkinnät ovat tietueita tarvitsee käsittelyä varten puskureita koska useat tietokantahaut saattavat edellyttää hakemiston käyttöä pyrkivät tkhj:ien puskurienhallintarutiinit suosimaan hakemistosivujen säilymistä puskureissa Tietokannan hallinta, kevät 2006, Jan Lindström
4
Hakemiston toteutuksesta
Hakemisto voitaisiin toteuttaa aiemmin käsiteltyjen tiedostorakenteiden avulla kasa, järjestetty peräkkäistiedosto, hajautusrakenne Hakemistoja varten on kehitetty myös erityisiä hakemistokäyttöön tarkoitettuja rakenteita (esim. B+-puu, tarkastellaan myöhemmin) Tietokannan hallinta, kevät 2006, Jan Lindström
5
Tietokannan hallinta, kevät 2006, Jan Lindström
Hakemiston käyttö Haku hakemistoa käyttäen on kaksivaiheista ensin etsitään hakemistomerkintä hakemistosivuilta ja hakemistomerkinnän perusteella haetaan tietueen sisältävä sivu Tietueen hakua varten tarvitaan siis vähintään kaksi levyhakua (elleivät sivut ole puskurissa). Hakemistotietuetta voidaan joutua etsimään usealta hakemistosivulta. Koska hakemistomerkinnät ovat yleensä lyhyempiä kuin varsinaiset tietueet, niitä mahtuu sivulle useampia ja sivuja on vähemmän. Seuraus: hakemiston kautta on nopeampi etsiä tietuetta Tietokannan hallinta, kevät 2006, Jan Lindström
6
Tietokannan hallinta, kevät 2006, Jan Lindström
Arvovälihaut ‘Hae työntekijät, joiden palkka > 3000’’ Jos tiedosto lajiteltu voidaan binäärihaulla hakea ensimmäinen ehdon täyttävä monikko. Binäärihaunkin kustannus voi olla korkea. Yksinkertainen idea: luodaan hakemisto. Hakemistotiedosto k1 k2 kN Datatiedosto Page 1 Page 2 Page 3 Page N Voidaan käyttää binäärihakua pieneen hakemistoon ! Tietokannan hallinta, kevät 2006, Jan Lindström
7
Harvat hakemistot - ISAM
ISAM (indexed sequential access method) indeksoitu peräkkäisrakenne harva monitasoinen staattinen hakemisto staattinen: hakemisto pysyy luontinsa jälkeen muuttumattomana kunnes tiedosto organisoidaan uudelleen ja sille luodaan uusi hakemisto tiedosto jakautuu perussivuihin ja ylivuotosivuihin ylivuotosivuille viedään lisäykset, jotka eivät mahdu perussivuille, ylivuotosivut ketjutetaan Tietokannan hallinta, kevät 2006, Jan Lindström
8
Harvat hakemistot - ISAM
Tiedosto luodaan järjestetyn aineiston pohjalta Tietueita lisätään tiedoston loppuun (järjestyksessä) Sivuille jätetään tilaa lisäyksille, esim. 30 % - 50%. Hakemistomerkinnässä avainarvo ja sivuosoite Viedään merkintä hakemistosivulle aina kun aloitetaan uusi datasivu ensimmäisen hakemistosivun kohdalla viedään hakemisto-avaimeksi low-value = pienin mahdollinen, muille sivun ensimmäisen tietueen avain Hakemistosivut voidaan laittaa täyteen, sillä niitä ei päivitetä. Tietokannan hallinta, kevät 2006, Jan Lindström
9
Harvat hakemistot - ISAM
Rakenne sopii hyvin tiedostoille, joihin tulee vain vähän lisäyksiä. Jos lisäyksiä tulee runsaasti tarvitaan ajoittaisia uudelleenorganisointeja. Ylivuotoketjut hidastavat läpilukuaikaa samoin kuin järjestetyssä peräkkäisrakenteessa. Koska hakemistosivut eivät muutu, ei niitä myöskään tarvitse lukita rinnakkaisessa käsittelyssä prosessin ei tarvitse jonottaa hakemistosivua Tietokannan hallinta, kevät 2006, Jan Lindström
10
Harvat hakemistot - ISAM
Poistot kun ylivuotosivu tyhjenee poiston seurauksena sivu irrotetaan ketjusta ja voidaan ottaa uudelleen käyttöön kun datasivu tyhjenee poiston seurauksena se jätetään tyhjäksi. Sivu tarjoaa tällöin lisäyspaikan, jos sen avainalueelle sattuisi tulemaan lisäyksiä. Tietokannan hallinta, kevät 2006, Jan Lindström
11
Harvat hakemistot - ISAM
Alkuperä: IBM.n ISAM rakenteessa oli alunperin kaksi hakemistotasoa alimpana urahakemisto (uran suurin avain), ja seuraavalla tasolla sylinterihakemisto (sylinterin suurin avain) Muunnelmia ISAM rakennetta voidaan käyttää hakemistorakenteena, siten että ’datatietueina’ eivät olekaan oikeat datatietueet vaan tiheän hakemiston hakemistomerkinnät. Tietokannan hallinta, kevät 2006, Jan Lindström
12
Harvat hakemistot - ISAM
ISAM on keskimäärin hyvin tehokas rakenne hakemistoavaimen avulla tehtävissä hakuoperaatioissa (yhtäsuuruus , alkuosa, arvoväli) Rakenne ei kykene takaamaan kasvavalle tiedostolle kovin pientä ylärajaa levyhakujen määrälle pahimmassa tapauksessa, pahin tapaus levyhakuja luokkaa: lisäysten määrä/sivukoko Tietokannan hallinta, kevät 2006, Jan Lindström
13
Tietokannan hallinta, kevät 2006, Jan Lindström
ISAM hakemistotietue P K P K P K P 1 1 2 m m 2 Hakemistotietue voi silti olla iso, mutta ideaa voidaan toistaa! Hakemistosivut Lehti sivut Ylivuoto sivut Pääsivut Lehtisivut sisältävät tietosivuja. Tietokannan hallinta, kevät 2006, Jan Lindström 4
14
Tietokannan hallinta, kevät 2006, Jan Lindström
Esimerkki ISAM puusta 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 20 33 51 63 40 Juuri Tietokannan hallinta, kevät 2006, Jan Lindström 6
15
Tietokannan hallinta, kevät 2006, Jan Lindström
Lisätään 23*, 48*, 41*, 42* ... Juuri Hakemisto 40 sivut 20 33 51 63 Päälehtisivut 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* Ylivuoto 23* 48* 41* sivut 42* Tietokannan hallinta, kevät 2006, Jan Lindström 7
16
Tietokannan hallinta, kevät 2006, Jan Lindström
... Poistetaan 42*, 51*, 97* Juuri 40 20 33 51 63 10* 15* 20* 27* 33* 37* 40* 46* 55* 63* 23* 48* 41* Huomaa että 51* on hakemistotasolla mutta ei lehtitasolla! Tietokannan hallinta, kevät 2006, Jan Lindström 8
17
Dynaamiset hakemistorakenteet B+ -puu
B+ -puut ovat laajalti tietokantojen yhteydessä käytetty tiedostorakenne Rakenne on oikeastaan ISAM rakenteen dynaaminen muunnelma Rakenteen alimmalla tasolla ovat datatietueet järjestettynä rakenteena kuten ISAM:ssa, Datasivut eivät kuitenkaan ole välttämättä fyysisesti peräkkäisiä vaan ne on usein kytketty kaksisuuntaiseksi linkitetyksi listaksi. Erillisiä ylivuotosivuja ei ole, vaan listarakennetta ylläpidetään dynaamisesti. Datasivujen ’päällä’ on monitasoinen harva hakemisto, joka ISAM:ista poiketen on dynaaminen Tietokannan hallinta, kevät 2006, Jan Lindström
18
Tietokannan hallinta, kevät 2006, Jan Lindström
Esimerkki B+ -puusta Haku alkaa juuresta ja etenee kohti lehtisivuja Haetaan 5*, 15*, kaikki sivut >= 24* ... Juuri 13 17 24 30 2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* Haettaessa 15*, tiedetään ettei sitä ole puussa! Tietokannan hallinta, kevät 2006, Jan Lindström 10
19
Tietokannan hallinta, kevät 2006, Jan Lindström
B+ -puuhun lisäys Lisäykset: Lisättäessä tietuetta B+ -puuhun sille haetaan sijoituspaikka edellä kuvatulla hakuoperaatiolla Jos sivulla on tilaa, tietue lisätään järjestyksessä oikealle paikalleen sivulla Jos tietue ei mahdu sivulle se sijoitetaan loogisesti oikealle paikalleen ja jaetaan ylivuotanut sivu: Otetaan käyttöön uusi sivu ja kytketään se linkitettyyn listaan Siirretään puolet alkuperäisen sivun tietueista uudelle sivulle Muodostetaan hakemistomerkintä (Knew,Pnew) uuden sivun ensimmäisen tietueen avaimesta ja sivun osoiteesta ja lisätään tämä siihen hakemistotietueeseen, jonka alaisuuteen jaettu sivu kuului Tietokannan hallinta, kevät 2006, Jan Lindström
20
Lisätään 8* esimerkin B+ -puuhun
Lisäys aiheuttaa lehtitason täyttymisen ja tarvitaan halkaisu Arvo joka lisätään ylemmälle tasolle 5 (Huomaa että 5 kopioidaan ja Esiintyy edelleen lehtitasolla) 2* 3* 5* 7* 8* Lisäys aiheuttaa myös hakemistotason täyttymisen ja tarvitaan halkaisu Huomaa että arvo siirretään ylemmälle hakemistotasolle 5 24 30 17 13 Tietokannan hallinta, kevät 2006, Jan Lindström 12
21
Esimerkin puu arvon 8 lisäyksen jälkeen
Juuri 17 5 13 24 30 2* 3* 5* 7* 8* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* Huomaa että juuri on halkaistu ja puun korkeus kasvoi. Esimerkissä halkaisu voidaan välttää siirtelemällä arvoja , mutta sitä ei yleensä tehdä. Tietokannan hallinta, kevät 2006, Jan Lindström 13
22
Tasapainotus lisäyksessä
lisättävä ei mahdu sivulle 30 60 60 30 40 50 35 Tietokannan hallinta, kevät 2006, Jan Lindström
23
Tasapainotus lisäyksessä
otetaan käyttöön uusi datasivu 30 60 60 30 40 50 35 Tietokannan hallinta, kevät 2006, Jan Lindström
24
Tasapainotus lisäyksessä
kytketään uusi datasivu sivuketjuun 30 60 60 30 40 50 35 Tietokannan hallinta, kevät 2006, Jan Lindström
25
Tasapainotus lisäyksessä
Siirretään puolet ylivuotavan sivun sisällöstä uudelle sivulle 30 60 60 30 35 40 50 Tietokannan hallinta, kevät 2006, Jan Lindström
26
Tasapainotus lisäyksessä
tehdään uudelle sivulle hakemistotietue ja lisätään se hakemistosivulle, jonka alaisuuteen tietue lisättiin 30 60 40 60 30 35 40 50 Tietokannan hallinta, kevät 2006, Jan Lindström
27
Tasapainotus lisäyksessä
Hakemistotietue mahtui sivulle – lisäys on valmis 30 40 60 60 30 35 40 50 Tietokannan hallinta, kevät 2006, Jan Lindström
28
Tasapainotus lisäyksessä
Rakenne on nyt hieman kasvanut, kyseessä kertaluvun 2 B+- puu 30 40 60 100 100 60 30 35 36 40 50 lisätään 38 Tietokannan hallinta, kevät 2006, Jan Lindström
29
Tasapainotus lisäyksessä
’nouseva’ hakemistotietue ei mahdu hakemistosivulle 30 40 60 100 100 36 60 30 35 40 50 36 38 Tietokannan hallinta, kevät 2006, Jan Lindström
30
Tasapainotus lisäyksessä
keskimmäinen avain nousee ylöspäin uusi sivu, jonne puolet 30 36 40 60 100 100 60 30 35 40 50 36 38 Tietokannan hallinta, kevät 2006, Jan Lindström
31
Tasapainotus lisäyksessä
keskimmäinen 40 osoitin uuteen sivuun nousee seuraavalle tasolle 60 100 30 36 100 60 30 35 40 50 36 38 Tietokannan hallinta, kevät 2006, Jan Lindström
32
Tasapainotus lisäyksessä
Jos jaettiin juuri, niin lisätään uuteen juureen vanhan osoite 40 60 100 30 36 100 60 30 35 40 50 36 38 Tietokannan hallinta, kevät 2006, Jan Lindström
33
B+ -puun tasapainotus poistossa
Poistot Alkuperäisen B+ -puun idean mukaisesti tasapainotusta tehdään myös poistossa Jos datasivun täyttösuhde laskee alle puoleen ja sivun ja sen velisivun (sibling, saman isäsivun alla oleva vierussivu) yhteenlaskettu tietomäärä ylittää ylittää sivukoon, järjestetään sivuparin tietueet uudelleen siirtämällä täydemmältä sivulta tietue vajaalle sivulle. Tietokannan hallinta, kevät 2006, Jan Lindström
34
B+ -puun tasapainotus poistossa
30 50 30 40 50 60 70 80 kohdesivu velisivu poistetaan Tietokannan hallinta, kevät 2006, Jan Lindström
35
B+ -puun tasapainotus poistossa
tätä ei tarvitse vaihtaa vaikka tietue katosikin 30 50 40 50 60 70 80 kohdesivu velisivu Täyttösuhde liian pieni siirretään vajaalle Tietokannan hallinta, kevät 2006, Jan Lindström
36
B+ -puun tasapainotus poistossa
korvataan erotin sivun pienimmällä tunnuksella 50 30 40 50 60 70 80 Siirretty datatietue Tietokannan hallinta, kevät 2006, Jan Lindström
37
B+ -puun tasapainotus poistossa
30 60 40 50 60 70 80 rakenne tasauksen jälkeen Tietokannan hallinta, kevät 2006, Jan Lindström
38
B+ -puun tasapainotus poistossa
Jos poiston kohteena olevan sivun ja sen velisivun yhteenlaskettu tietomäärä jää alle sivun kapasiteetin yhdistetään sivut ja poistetaan niiden välinen erotin hakemistosta. y 60 30 40 50 60 70 80 poistetaan Tietokannan hallinta, kevät 2006, Jan Lindström
39
B+ -puun tasapainotus poistossa
60 y 30 40 60 70 80 siirretään kaikki velisivun tietueet kohdesivulle, vapautetaan tyhjentynyt sivu, poistetaan erotin hakemistosivulta Tietokannan hallinta, kevät 2006, Jan Lindström
40
B+ -puun tasapainotus poistossa
30 y 40 60 70 80 Tietokannan hallinta, kevät 2006, Jan Lindström
41
Hakemistosivujen tasapainotus
Hakemistomerkinnän poiston takia hakemistosolmu voi jäädä vajaatäyttöiseksi Sivun täyttösuhdetta korjataan samalla periaatteella kuin datasivujenkin eli siirtämällä velisolmusta täydennystietue, siirto tehdään isäsolmun kautta vyöryttämällä Vyörytys: Olkoon kyseessä oikeanpuoleinen veli eli velisolmussa on isompia avaimia. Vyörytys tapahtuu tällöin seuraavasti Lisätään isäsolmusta kopioitu kohdesolmun ja velisolmun välinen avain kohdesolmun avainlistan loppuun Lisätään velisolmun osoitin p0 kohdesolmun osoitinlistan loppuun Korvataan isäsolmussa ollut kohdesolmun ja velisolmun välinen avain velisolmun avainlistan pienimmällä avaimella Poistetaan velisolmun avain- ja osoitinlistojen alkupäästä ensimmäinen avain ja osoitin Sivuja yhdistettäessä vyörytetään kaikki velisolmun tietueet kohdesolmuun ja poistetaan isäsolmusta avain sekä osoitin velisolmuun Puun korkeus alenee, jos poistettavana on juurisolmun ainoa erotin. Tietokannan hallinta, kevät 2006, Jan Lindström
42
Tietokannan hallinta, kevät 2006, Jan Lindström
Vyörytys 96 kohde sen veli …45 120 kohde sen veli …45 300 96 Tietokannan hallinta, kevät 2006, Jan Lindström
43
B+ -puun tasapainotus poistossa
Kaikki toteutukset eivät käytä tasapainotusta poistojen yhteydessä, vaan antavat täyttöasteen laskea. B+ puun hakemistosivujen keskimääräiseksi täyttöasteeksi muodostuu lisäys- ja poistotasapainotusta käytettäessä noin 67% Tietokannan hallinta, kevät 2006, Jan Lindström
44
B+ -puun ominaisuuksia
Olkoon B+ -puun korkeus h haettaessa indeksointiavaimen perusteella joudutaan tutkimaan h sivua ( h levyhakua) lisättäessä joudutaan lukemaan h sivua ja kirjoittamaan vähintään 1 ja enintään h+2 sivua poistettaessa joudutaan lukemaan vähintään h ja enintään 2h-1 ja kirjoittamaan vähintään 1 ja enintään 2h-1 sivua Indeksointiavaimen arvon muuttaminen täytyy B+ -puun yhteydessä hoitaa poisto ja lisäys operaatioina. Tietokannan hallinta, kevät 2006, Jan Lindström
45
Tietokannan hallinta, kevät 2006, Jan Lindström
B+ -puu ennen poistoja Juuri 17 5 13 24 30 2* 3* 5* 7* 8* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* Tietokannan hallinta, kevät 2006, Jan Lindström
46
Tietokannan hallinta, kevät 2006, Jan Lindström
Poistetaan 19* ja 20* ... Juuri 17 5 13 27 30 2* 3* 5* 7* 8* 14* 16* 22* 24* 27* 29* 33* 34* 38* 39* 19* poisto on helppoa. 20* poisto tehdään uudelleen järjestelemällä lehtisivut. Huomaa kuinka keskimmäinen arvo kopioidaan. Tietokannan hallinta, kevät 2006, Jan Lindström 15
47
Tietokannan hallinta, kevät 2006, Jan Lindström
... Poistetaan 24* Vaatii yhdistämistä. Huomaa hakemistoarvon siirto ja siirto alaspäin. 30 22* 27* 29* 33* 34* 38* 39* Juuri 5 13 17 30 2* 3* 5* 7* 8* 14* 16* 22* 27* 29* 33* 34* 38* 39* Tietokannan hallinta, kevät 2006, Jan Lindström 16
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.