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

Samankaltaiset tiedostot
D B. Harvat hakemistot. Harvat hakemistot

D B. Harvat hakemistot

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tietokantaoperaatioiden toteutuksesta 3. Harri Laine 1

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

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

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

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

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

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

Algoritmit 2. Luento 5 Ti Timo Männikkö

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

D B. Tietokannan hallinta kertaus

B-puu. 3.3 Dynaamiset hakemistorakenteet

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

Algoritmit 2. Luento 6 Ke Timo Männikkö

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

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

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 5 Ti Timo Männikkö

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

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

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö

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

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

B + -puut. Kerttu Pollari-Malmi

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö

D B. Tiedostojen käsittely

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

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

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö

Ohjelmoinnin perusteet Y Python

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

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

Ohjelmoinnin perusteet Y Python

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

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

Algoritmit 1. Luento 8 Ke Timo Männikkö

A TIETORAKENTEET JA ALGORITMIT

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

Binäärihaun vertailujärjestys

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

4 Tehokkuus ja algoritmien suunnittelu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Luento 2: Tiedostot ja tiedon varastointi

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Algoritmit 1. Luento 12 Ti Timo Männikkö

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

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

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

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

Tietorakenteet, laskuharjoitus 6,

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Algoritmit 1. Luento 12 Ke Timo Männikkö

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Ohjelmoinnin perusteet Y Python

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, , vastauksia

811312A Tietorakenteet ja algoritmit V Hash-taulukot ja binääriset etsintäpuut

Ohjelmoinnin perusteet Y Python

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

Algoritmit 1. Luento 9 Ti Timo Männikkö

Luku 8. Aluekyselyt. 8.1 Summataulukko

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

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

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

Algoritmit 2. Luento 10 To Timo Männikkö

Ohjelmoinnin perusteet Y Python

18. Abstraktit tietotyypit 18.1

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

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

Tietorakenteet ja algoritmit Hakurakenteet Ari Korhonen

Tietorakenteet ja algoritmit

Tarkennamme geneeristä painamiskorotusalgoritmia

4. Joukkojen käsittely

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Algoritmit 1. Demot Timo Männikkö

Tietokannan indeksointi: B puun ja hajautusindeksin tehokkuus

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

A TIETORAKENTEET JA ALGORITMIT

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

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

Tietorakenteet, laskuharjoitus 3, ratkaisuja

2. Perustietorakenteet

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

Transkriptio:

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 käyttö edellyttää, että tietueet on järjestetty pienin mahdollinen 00 70 110 hakemistossa alarajat sivulle kuuluville avaimille ja osoitteet sivuille kaikki tietueet, joissa 70 avain < 110 kuuluvat sivulle 2 20 70 90 110 110 120 1 1 2 3 perustietueet järjestettynä peräkkäisrakenteena 1 2 pienin mahdollinen 00 70 110 1 2 3 hakemistossa alarajat sivulle kuuluville avaimille (Voidaan toteuttaa myös ilman osoitteita, hakemistomerkinnän indeksi vastaa sivunumeroa) kaikki tietueet, joissa 70 avain < 110 kuuluvat sivulle 2 20 70 90 110 110 120 1 1 2 3 perustietueet järjestettynä peräkkäistiedostona hakemistoon alarajat (tai ylärajat) sivulle kuuluvien tietueiden avaimille (+osoitteet sivuille) kaksi peräkkäistä hakemistoavainta määrää sivulle i kuuluvat avaimet h(i) sivulle i kuuluva avain < h(i+1) hakemisto voi olla monitasoinen jos alin hakemistotaso tulee liian isoksi, tehdään sille samoin harva hakemisto perustietueet järjestettynä peräkkäisrakenteena 3 4 ylempi hakemistotaso alin hakemistotaso hakemistotasoja voisi olla useitakin, mutta yleensä 2 tai 3 riittää siihen, että ylimmän tason hakemisto on niin pieni, että se voidaan pitää jatkuvasti keskusmuistissa.... Haku: etsi hakemistosivulta suurin hakemistoavain, joka on pienempi tai yhtä suuri kuin etsittävän avain, jos ollaan hakemistosivulla, siirry löydetyn alkion indeksin osoittamalle sivulle seuraavalla tasolla (jos hakemistomerkintöihin liittyy sivuosoite käytetään sitä indeksin tilalla) tässä joudutaan suorittamaan levyhaku (ellei sivu ole puskurissa) jos ollaan datasivulla, etsi tietue sivulta 5 6 Harri Laine 1

Jos datasivuille mahtuu useita tietueita tulee harva hakemisto tiheää pienemmäksi, joten haku on nopeampaa Esimerkki työntekijätietueen keskipituus oli 0, joten yhdelle datasivulle voitaisiin sijoittaa vaikkapa 10 tietuetta (jätetty hieman tilaa lisäyksille) Tiedosto mahtuu 0 sivulle Kunkin sivun pienin avain viedään hakemistoon, jolloin hakemistosivulle menee keskimäärin 0 avainta (tässä muunnelmassa ei käytetä osoitteita) Tarvitaan 2 hakemistosivua alimmalla tasolla, Koko hakemisto (yht. 8K) voidaan pitää keskusmuistissa, joten tietueen hakuun työntekijänumeron perusteella tarvitaan noin 1 levyhaku 7 Etuja pieni hakemisto - tehokas haku jos tietueita on N ja hakemistosivulle mahtuu X merkintää, tarvitaan hakemistoon roof(log X N) tasoa tukee myös arvovälihakuja hakuja avaimen alkuosalla (osoite like Helsingin% ) 8 - ISAM Ongelmia tiedostolla voi olla vain yksi harva hakemisto sillä perustietueet voidaan järjestää vain yhteen järjestykseen lisäykset voivat aiheuttaa ongelmia jos lisäykset hoidetaan sivukohtaisilla ketjutetuilla ylivuotosivuilla, voi ketjusta tulla pitkä, jos lisäykset kasautuvat usein jätetään sivuille tilaa lisäyksille täyttösuhde huononee eikä tämä välttämättä hidasta kovin paljon rakenteen degeneroitumista tietueiden lisääminen satunnaisessa järjestyksessä on erityisen ongelmallista 9 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 10 - ISAM - ISAM Tiedosto luodaan järjestetyn aineiston pohjalta Tietueita lisätään tiedoston loppuun (järjestyksessä) Sivuille jätetään tilaa lisäyksille, esim. % - %. 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 arvo, muille sivuille sivun ensimmäisen tietueen avain Hakemistosivut voidaan laittaa täyteen, sillä niitä ei päivitetä. 11 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 12 Harri Laine 2

- ISAM - 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ä. 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ää tiheän hakemiston toteutusrakenteena, siten että datatietueina eivät olekaan oikeat datatietueet vaan tiheän hakemiston hakemistomerkinnät. 13 14 - 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, jolloin levyhakuja olisi luokkaa: lisäysten määrä/sivukoko 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 15 16 hakemisto voi laajeta ja kutistua harva hakemisto B+ -puun hakemisto on rakenteeltaan ISAM:in kaltainen, mutta Datasivujen täyttöaste -% samoin hakemistosivujen ylintä sivua lukuun ottamatta. hakemiston alaisuuteen kuuluvan ensimmäisen sivun pienin avainarvo jää pois (osoitteet ja erottimet) 10 200 0 Datasivut (sequence set) datasivujen joukko voi laajeta ja kutistua 17 10 200 0 18 Harri Laine 3

hakemistosivut eivät ole staattisia, niihin voi tulla uusia hakemistomerkintöjä, merkintöjä voidaan poistaa, sivuja voidaan jakaa ja yhdistää. B+ -puun tasapainovaatimuksena on, että jokainen hakupolku on yhtä pitkä, eli jokaisen tietueen hakemiseen tarvitaan yhtä monta levyhakua (elleivät sivut ole puskureissa) lisäys- ja poisto-operaatiot säilyttävät hakurakenteen tasapainon Tarkastellaan kertaluokan (order) d B+ -puuta Tällaisen puun jokaisessa hakemistosolmussa paitsi juuressa (ylin taso) on d m 2d erotinta ja m+1 osoitetta hakemistosivulla ovat siis osoitteet p 0,...,p m ja etrottimet K 1,...,K m Kuten ISAM:ssa tietue kuuluu osoitteessa p i (i=1,...m) olevan sivun alaisuuteen, jos sen avaimelle pätee K i avain < K i+1 Tietue kuuluu osoitteessa p 0 olevan sivun alaisuuteen, jos sen avain < K 1 19 20 Haku (oletetaan, että avaimet yksikäsitteisiä) function search(node, key) { if (node is leaf) return node; else if (key<k[1]) return search(p[0],key); else if (key>=k[m]) return search(p[m],key); else { find i such that K[i]<=key<K[i+1]; return search(p[i],key]; } } Palauttaa datasivun osoitteen 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ä (K new,p new ) uuden sivun ensimmäisen tietueen avaimesta ja sivun osoitteesta ja lisätään tämä siihen hakemistotietueeseen, jonka alaisuuteen jaettu sivu kuului 21 22 lisättävä ei mahdu sivulle otetaan käyttöön uusi datasivu 23 24 Harri Laine 4

kytketään uusi datasivu sivuketjuun Siirretään puolet ylivuotavan sivun sisällöstä uudelle sivulle 25 26 tehdään uudelle sivulle hakemistotietue ja lisätään se hakemistosivulle, jonka alaisuuteen tietue lisättiin Hakemistotietue mahtui sivulle lisäys on valmis 27 28 Hakemistomerkinnän lisääminen hakemistosivulle voi aiheuttaa ylivuodon hakemistosivulla. Lisätään aluksi hakemistomerkintä oikealle kohdalleen. Sivulla olisi nyt 2d+1 erotinta ja 2d+2 osoitetta Otetaan käyttöön uusi hakemistosivu X. Siirretään sinne erottimet K d+2...k 2d+1 ja osoitteet p d+1... p 2d+2 Muodostetaan nouseva hakemistotietue keskimmäisestä erottimesta K d+1 ja uuden sivun osoitteesta X. Tämä lisätään siihen hakemistosivuun, jonka alaisuuteen jaettu hakemistosivu kuului. Jos jaettu sivu oli juuri, lisätään sen osoitteeksi p 0 edellisen juuren osoite. Rakenne on nyt hieman kasvanut, kyseessä kertaluvun 2 B+- puu 36 29 lisätään 38 Harri Laine 5

nouseva hakemistotietue ei mahdu hakemistosivulle keskimmäinen avain nousee ylöspäin 36 uusi sivu, jonne puolet 36 36 38 31 36 38 32 keskimmäinen nousee seuraavalle tasolle osoitin uuteen sivuun Jos jaettiin juuri, niin lisätään uuteen juureen vanhan osoite 36 36 36 38 33 36 38 34 Erottimet lyhyempiä kuin arvot Edellä kuvatulla tasapainotuksella hakemistosivuilla on aina vähintään d hakemistotietuetta (ei juuressa). Käytännössä erottimet voivat olla vaihtuvapituisia ja jakokriteeri voisi olla puolet käytettävissä olevasta tilasta erotinten lukumäärän sijasta. Mitä leveämpi hakupuu on, sitä matalampi se on ja sitä vähemmän levyhakuja tarvitaan sivun löytämiseksi. Puun leveyteen vaikuttaa se montako hakemistomerkintää mahtuu hakemistosivulle. Useissa järjestelmissä ei tallennetakaan hakemistoon täydellisiä hakuperustakentän arvoja vaan pelkästään riittävän pitkiä osia arvojen alusta ohjaamaan hakuja Alkuosa erottelu - Prefix key compression K Anttila Asko Autoliike Bil KansaMarket Kyläkauppa vain riittävästi alusta, jotta haku voidaan ohjata oikealle sivulle lisätään Bookstore 36 Harri Laine 6

Erottimet lyhyempiä kuin arvot Alkuosa erottelu - Prefix key compression Au K Poistot Alkuperäisen B+ -puun idean mukaisesti tasapainotusta tehdään myös poistossa Anttila Asko Autoliike Bil Bookstore 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. KansaMarket Kyläkauppa 37 38 tätä ei tarvitse vaihtaa vaikka tietue katosikin 70 70 poistetaan kohdesivu velisivu kohdesivu Täyttösuhde liian pieni velisivu siirretään vajaalle korvataan erotin sivun pienimmällä tunnuksella 70 70 Siirretty datatietue rakenne tasauksen jälkeen 41 42 Harri Laine 7

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 y 70 70 siirretään kaikki velisivun tietueet kohdesivulle, vapautetaan tyhjentynyt sivu, poistetaan erotin hakemistosivulta poistetaan 43 44 70 y 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 erotin kohdesolmun erotintaulukon loppuun Lisätään velisolmun ensimmäinen osoitin p 0 kohdesolmun osoitintaulukon loppuun Korvataan isäsolmussa ollut kohdesolmun ja velisolmun välinen erotin velisolmun erotintaulukon pienimmällä avaimella Poistetaan velisolmun avain- ja osoitintaulukkojen ensimmäinen erotin ja osoitin Sivuja yhdistettäessä vyörytetään kaikki velisolmun tietueet kohdesolmuun ja poistetaan isäsolmusta erotin sekä osoitin velisolmuun Puun korkeus alenee, jos poistettavana on juurisolmun ainoa erotin. 45 46 Vyörytys kohde 96 sen veli Kaikki toteutukset eivät käytä tasapainotusta poistojen yhteydessä, vaan antavat täyttöasteen laskea. 45 120 0 B+ puun hakemistosivujen keskimääräiseksi täyttöasteeksi muodostuu lisäys- ja poistotasapainotusta käytettäessä noin 67% 120 kohde sen veli 45 96 0 47 48 Harri Laine 8

B+ -puun ominaisuuksia B+ -puut tietokantatoteutuksessa 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. 49 Useimmat tietokannan hallintajärjestelmät mahdollistavat B+ -puun käytön joko taulun toteutusrakenteena datasivuilla on taulun rivejä vastaavia tietueita ratkaisun huono puoli on se, että rivit voivat vaihtaa sivua, mikä tekee oheishakemistojen käytön työlääksi, kaikki osoitteet sivua vaihtaneeseen tietueeseen on vaihdon yhteydessä päivitettävä Oraclessa tämä on ratkaistu siten, että B+ -puu -rakenteisen tiedoston oheishakemisto ei käytäkään osoittamiseen tietueen osoitetta vaan tietueen pääavainta (haku hidastuu) tiheän hakemiston toteutusrakenteena datasivuilla on tiheän hakemiston hakemistomerkintöjä tämä on yleisin B+ -puun käyttötilanne. taulun rivit ovat tällöin yleensä kasarakenteena Harri Laine 9