Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tietokannan hallinta, kevät 2006, Jan Lindström

Samankaltaiset esitykset


Esitys aiheesta: "Tietokannan hallinta, kevät 2006, Jan Lindström"— Esityksen transkriptio:

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


Lataa ppt "Tietokannan hallinta, kevät 2006, Jan Lindström"

Samankaltaiset esitykset


Iklan oleh Google