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

Samankaltaiset tiedostot
Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet

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

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

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

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

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö

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

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

Algoritmit 2. Luento 4 Ke Timo Männikkö

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

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

Luento 2: Tiedostot ja tiedon varastointi

D B. Harvat hakemistot. Harvat hakemistot

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö

Hajautus. operaatiot insert ja search pyritään tekemään erittäin nopeiksi

B-puu. 3.3 Dynaamiset hakemistorakenteet

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

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 2. Luento 6 To Timo Männikkö

5. Hajautus. Tarkastellaan edelleen sivulla 161 esitellyn joukkotietotyypin toteuttamista

D B. Tiedostojen käsittely

Tietorakenteet, laskuharjoitus 7, ratkaisuja

D B. Tietokannan hallinta kertaus

Algoritmit 2. Luento 5 Ti Timo Männikkö

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

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö

D B. Harvat hakemistot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Tietorakenteet ja algoritmit. Hajautus. Ari Korhonen Tietorakenteet ja algoritmit - syksy

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

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

A TIETORAKENTEET JA ALGORITMIT

Tietorakenteet ja algoritmit - syksy

2. Tietokannan tallennusrakenteet

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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 7 Ti Timo Männikkö

4. Hajautus. Hajautus (hashing) on vaihtoehto tasapainoisille puille dynaamisen joukon toteuttamisessa:

2. Tietokannan tallennusrakenteet

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

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

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

A TIETORAKENTEET JA ALGORITMIT

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

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

Algoritmit 1. Luento 8 Ke Timo Männikkö

Tietokannan indeksointi: B puun ja hajautusindeksin tehokkuus

Ohjelmoinnin peruskurssi Y1

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Algoritmit 1. Luento 11 Ti Timo Männikkö

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

811120P Diskreetit rakenteet

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 12 Ti Timo Männikkö

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Algoritmit 2. Demot Timo Männikkö

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

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

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

Tietokanta (database)

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

Ohjelmoinnin perusteet Y Python

Algoritmit 2. Luento 14 Ke Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö

Lineaarinen optimointitehtävä

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

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

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Algoritmit 1. Luento 12 Ke Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

7.4 Sormenjälkitekniikka

Esimerkki A1. Jaetaan ryhmä G = Z 17 H = 4 = {1, 4, 4 2 = 16 = 1, 4 3 = 4 = 13, 4 4 = 16 = 1}.

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Datatähti 2019 loppu

Tietorakenteet, laskuharjoitus 8, malliratkaisut

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

7.lk matematiikka. Murtoluvut. Hatanpään koulu Syksy 2017 Janne Koponen

7.lk matematiikka. Murtoluvut. Hatanpään koulu Syksy 2017 Janne Koponen

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

Algoritmit 1. Demot Timo Männikkö

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

A TIETORAKENTEET JA ALGORITMIT

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin

Transkriptio:

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 nopea haku. Tähän pyritään siten, että tietueen sijoituspaikan eli solun (cell, bucket) osoite lasketaan jonkin tietueessa olevan tiedon eli hajautusavaimen (hash key) perusteella. Parhaassa tapauksessa solu olisi tietty tiedoston lohko. Yleensä solu kuitenkin muodostuu useasta lohkosta. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 2

Hajautukseen perustuvat tiedostorakenteet Solun osoitteena on joko kotilohkon osoite (tällöin ei käytetä soluhakemistoa) tai soluhakemiston indeksi soluhakemisto on taulukko, jonka alkioina on kotilohkojen osoitteita Mahdolliset soluosoitteet muodostavat osoiteavaruuden (address space) soluhakemistoa käytettäessä saadaan pienellä lisätilalla kasvatettua osoiteavaruutta moninkertaiseksi. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 3

Hajautukseen perustuvat tiedostorakenteet Osoitteen laskentaan käytetään hajautusfunktiota (hajautinta) (hash function, randomizing function). Olkoon h(x) hajautus funktio ja R K tietue, jonka hajautusavain on K. Tällöin R K :n sijoitussolun osoite = h(k). Solujen sisällä tietueet sijoitetaan kasarakenteen tapaan eli lisäykset loppuun. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 4

Hajautukseen perustuvat tiedostorakenteet Optimitapauksessa tietue löytyy yhdellä levyhaulla eli solun kotilohkosta*. Tämä edellyttää, että hajautusfunktio jakaa tietueet tasaisesti osoiteavaruuden osoitteisiin osoiteavaruus on määritelty riittävän isoksi niin, että kaikki tietueet voidaan sijoittaa solujen kotilohkoihin * soluhakemistoa käytettäessä joudutaan satunnaisesti hakemaan myös soluhakemiston sivuja 16.02.06 Tietokannan hallinta, kevät 2006, Jan 5

Hajautukseen perustuvat tiedostorakenteet Haku avaimella K: lasketaan hajautusfuktiolla solun osoite s=h(k) jos käytössä on soluhakemisto haetaan kotilohkon osoite sieltä p=h[s] muuten käytetään kotilohkon osoitteena solun osoitetta p=s. haetaan sivu lohkosta s ellei tietuetta löydy käydään läpi solun muut lohkot Jos hajautusavain ei ole tietueen avain on haussa käytävä läpi kaikki solun sivut. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 6

Hajautukseen perustuvat tiedostorakenteet Hajautusfunktio on tyypillisesti muotoa h(k) = int(k) mod B missä int(k) muuntaa hajautusavaimen kokonaisluvuksi Hyvältä hajautusfunktiolta edellytetään, että se jakaa hajautusavaimen arvot tasaisesti osoiteavaruuteen laskennan nopeus ei ole yhtä oleellista kuin keskusmuistihajautuksessa Hajautukseen perustuvat rakenteet nopeuttavat hakua vain kyselyissä, joissa tietueita haetaan hajautusavaimeen perustuvan yhtäsuuruusehdon avulla. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 7

Hajautukseen perustuvat tiedostorakenteet Oletetaan, että tiedosto mahtuisi kasarakenteena N sivulle ja hajautusavaimella olisi k erilaista arvoa. Olkoon osoiteavaruus 0,..B 1 Tällöin tulisi valita B<=k (muuten varataan tilaa soluille, jotka välttämättä jäävät tyhjiksi), Vain, jos B>=N, voidaan päästä yhteen levyhakuun tietuetta haettaessa B:n kokoon vaikuttavat mm. hajautusfunktio hajautusavaimen rakenne käytetäänkö soluhakemistoa, jolloin osoiteavaruuden koon kasvattaminen on kevyempää 16.02.06 Tietokannan hallinta, kevät 2006, Jan 8

Hajautukseen perustuvat A) Solun osoite on soluhakemiston indeksi tiedostorakenteet (11) (19) soluhakemiston sivu lohko x solu 11 solu 19 Tyhjille soluille varataan tilaa vain soluhakemiston alkion verran Soluhakemisto on haettava erikseen Yleisimmin käytetty ratkaisu 16.02.06 Tietokannan hallinta, kevät 2006, Jan 9 Lohkot käyttävissä koti tai ylivuotolohkoiksi

Hajautukseen perustuvat tiedostorakenteet B) Solun osoitteena on kotilohkon osoite (11) Talletukseen varattu perustila kotilohkot Tyhjätkin solut varaavat tilaa yhden lohkon verran Ylivuotolohkoille oma alueensa 16.02.06 Tietokannan hallinta, kevät 2006, Jan 10

Staattinen hajautus Perussolmujen lukumäärä kiinteä, varataan peräkkäin, soluja ei vapauteta; ylivuotosoluja tarpeen mukaan. h(k) mod M = solu mihin avaimen k omaava tietue kuuluu. (M = solujen lkm). h(k) mod M avain h 0 2 Pääsolut M 1 Ylivuotosivut 16.02.06 Tietokannan hallinta, kevät 2006, Jan 11

Dynaamiset hajautusratkaisut Aiemmin käsitelty hajautusrakenne perustui siihen, että tietueelle laskettiin soluosoite hajautusavaimen perusteella. Hajautusfunktio oli kiinteä ja sen arvoalue (osoiteavaruus) piti kiinnittää funktiota määriteltäessä. Tällöin ei välttämättä ole riittävää tietoa siitä, miten hajautusfunktio jakaa tietueet todellisessa käyttötilanteessa eikä välttämättä edes tietoa siitä, miten nopeasti tietueiden määrä kasvaa. Solua laajentavan ylivuotoketjun pituutta ei voida hallita ja ainakin alussa täytyy varata tilaa paljon yli todellisen tarpeen. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 12

Dynaamiset hajautusratkaisut B+ puussa hakupolun pituus pidetään hallinnassa puolittamalla sivu ja pitämällä kummatkin puolikkaat samanmittaisen hakupolun päässä. Sivun puolituksen ideaa sovelletaan myös dynaamisissa hajautusrakenteissa. Tunnetuimpia näistä ovat laajeneva hajautus (extendible hashing) ja lineaarinen hajautus (linear hashing) 16.02.06 Tietokannan hallinta, kevät 2006, Jan 13

Laajeneva hajautus Soluille varattu tila tulee täyteen. Miksi ei organisoida tiedostoa siten että tila tuplaantuu? Kaikkien sivujen lukeminen ja kirjoittaminen kallista! Ajatus: Käytetään osoitinhakemistoa soluihin. Tuplataan solujen määrä tuplaamalla hakemiston koko jakamalla täyteen tullut solu. Hakemisto on paljon pienempi kuin tiedosto joten sen lukeminen ja kirjoittaminen on edullisempaa. Vain yksi tietosolu joudutaan jakamaan. Ongelmana kuinka hajautusfunktiota muutetaan. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 14

Laajeneva hajautus Soluhakemiston koko on siis 2, 4, 8,. solua Olkoon rakenteen globaali syvyys d. Tällöin avaimen k solu (siis soluhakemiston indeksi) saadaan eristämällä hajautusfunktion antaman osoitteen lopusta d bitin pituinen osa tail_bits(h(k),d). Jos d=1 otetaan viimeinen bitti => {0,1} Jos d=2 otetaan 2 viimeistä bittiä => {00,01,10,11} 16.02.06 Tietokannan hallinta, kevät 2006, Jan 15

Laajeneva hajautus Lisäysten käsittely Jos soluhakemistosta löytyvässä kotilohkossa on tilaa tietue lisätään sinne kuten aiemmin käsitellyssä hajautuksessa Jos kotilohko (olkoon sen solutunnus binäärisenä {b}) on täynnä, otetaan käyttöön uusi lohko ja jaetaan ylivuotavan kotilohkon tietueet kotilohkon ja uuden lohkon välillä kotilohkolla on paikallinen syvyys (local depth) p (monenko bitin perusteella tietueet on sijoitettu lohkoon) 16.02.06 Tietokannan hallinta, kevät 2006, Jan 16

Laajeneva hajautus Lisäyksen käsittely jatkuu tietueille tehdään uusi sijoittelu ottamalla käyttöön hajauttimen tuottaman osoitteen lopusta päin p+1:s bitti ne tietueet, joilla tämä bitti on 0, jäävät kotilohkoon ja muut siirtyvät (oletetaan, että kaikki eivät menneet samaan lohkoon, näinkin voisi käydä ) kotilohkon ja uuden lohkon paikalliseksi syvyydeksi asetetaan p+1 soluhakemiston alkiot, joiden indeksin p+1 viimeistä bittiä ovat 1{b} asetetaan osoittamaan uuteen lohkoon 16.02.06 Tietokannan hallinta, kevät 2006, Jan 17

Esimerkki Soluhakemiston koko 4. Solun r löytämiseen, eristä globaalin syvyyden lukumäärä bittejä. Merkitään tätä h(r). Jos h(r) = 5 = binäärisenä 101, oikean solun osoite löytyy siis solusta 01. Paikallinen syvyys Globaali syvyys 00 01 10 11 2 Soluhakemisto 2 4* 12* 32* 16* 2 1* 5* 21* 13* 2 10* 2 15* 7* 19* tietohakemisto Solu A Solu B Solu C Solu D Lisäys: Jos solu on täynnä, halkaise se (varaa uusi sivu ja sijoita arvot uudestaan). 16.02.06 Tietokannan hallinta, kevät 2006, Jan 18

Lisätään h(r)=20 Paikallinen syvyys 2 Globaali syvyys 32*16* Solu A Paikallinen syvyys Globaali syvyys 3 32* 16* Solu A 00 01 10 11 2 2 Hakemisto 1* 5* 21*13* 2 10* 2 15* 7* 19* Solu B Solu C Solu D 111 2 3 4* 12* 20* Solu A2 Hakemisto (`uusi sivu ja puolet 4* 12* 20* Solu A2 solusta A) 16.02.06 Tietokannan hallinta, kevät 2006, Jan 19 000 001 010 011 100 101 110 3 2 1* 5* 21* 13* 2 10* 2 15* 7* 19* Solu B Solu C Solu D

Huomioita 20 = binäärisenä 10100. Viimeiset 2 bittiä (00) kertoo että r kuuluu soluun A tai A2. Viimeiset 3 bittiä kertoo kumpaan. Hakemiston globaali syvyys: Kuinka monta bittiä tarvitaan oikean solun etsimiseen. Solun paikallinen syvyys: kuinka monta bittiä tarvitaan selvittämään kuuluuko arvo tähän soluun. Milloin solun halkaisu aiheuttaa hakemiston kasvatuksen? Ennen lisäystä solun paikallinen syvyys = globaali syvyys ja lisäys aiheuttaa tilanteen, jossa solun paikallinen syvyys > globaali syvyys. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 20

Hakemiston kasvatus Miksi käytää vähiten merkitseviä bittejä? Sallii kasvatuksen kopioinnilla! 6 = 110 000 3 6 = 110 000 3 0 1 1 6* 00 01 10 11 001 2 010 011 1 00 100 0 10 6* 101 110 111 6* Vähiten merkitsevät vs. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 21 1 6* 01 11 100 2 010 110 001 6* 101 011 111 6* Eniten merkitsevät

Esimerkki 2: 1/4 000 001 010 011 100 101 110 111 3 globaali syvyys lisätään: 0010 1000 1001 0101 0011 0010 0001 0101 1110 1 3 3 2 täynnä 16.02.06 Tietokannan hallinta, kevät 2006, Jan 22

Esimerkki 2: 2/4 000 001 010 011 100 101 110 111 3 globaali syvyys lisätään: 0010 1000 1001 0101 0011 0010 0001 0101 1110 1 3 3 2 siirretään ne, joilla 2. viimeinen bitti on 1 16.02.06 Tietokannan hallinta, kevät 2006, Jan 23

Esimerkki 2: 3/4 000 001 010 011 100 101 110 111 3 globaali syvyys 1000 1001 0101 0011 0001 0101 2 3 3 2 0010 0010 1110 2 siirretään ne, joilla 2. viimeinen bitti on 1 vanhan ja uuden paikallinen syvyys 2 vaihdetaan ne soluosoittimet, joiden indeksi loppuu..10 osittamaan uuteen 16.02.06 Tietokannan hallinta, kevät 2006, Jan 24

Esimerkki 2: 4/4 000 001 010 011 100 101 110 111 3 globaali syvyys 1000 1001 0101 0011 0001 0101 2 3 3 2 0010 0010 1110 2 siirretään ne, joilla 2. viimeinen bitti on 1 vaihdetaan ne soluosoittimet, joiden indeksi loppuu..10 osittamaan uuteen 16.02.06 Tietokannan hallinta, kevät 2006, Jan 25

Laajeneva hajautus Rakenne laajenee sykäyksittäin Jos jakokohtaan osuvissa avaimissa on yhtenäinen bittisekvenssi, voidaan joutua tekemään monta jakoa ennen kuin tietueet saadaan jaettua Jos soluhakemisto kasvaa isoksi eikä sitä voida pitää keskusmuistissa voidaan hakuun tarvita 2 levyhakua Jako ja tuplaus voivat edellyttää useita hakuja. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 26

Lineaarinen hajautus Lineaarisessa hajautuksessa (kotimaista alkuperää Per Larsson) ei välttämättä tarvita soluhakemistoa. Hajautusaluetta laajennetaan solu kerrallaan jakamalla jakovuorossa olevan solun sisältö solun itsensä ja uuden solun kesken. Solut saavat jakovuoronsa järjestyksessä, eikä jaettava solu ole suinkaan välttämättä se jonka kohdalla ylivuoto tapahtuu soluihin voidaan ylivuotavia tietueita varten liittää ylivuotolista. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 27

Lineaarinen hajautus Solun osoitteen määräämiseksi käytössä on sarja hajauttimia h 0,h 1,h 2,... Nämä ovat muotoa h i = h(k) mod (2 i N). h i N voidaan valita kakkosen potenssiksi 2 d, tällöin h i eristäisi d+i bittiä perushajauttimen tuottaman arvon lopusta. jos d=5, niin h 0 eristää 5 bittiä, h 1 6 bittiä jne tietueen haussa tarvitaan perushajauttimen lisäksi kahta hajautinta h taso ja h taso+1 16.02.06 Tietokannan hallinta, kevät 2006, Jan 28

Lineaarinen hajautus Haku laske osoite h taso (h(k)), eli ota d+taso bittiä lopusta jos kyseessä on jakamaton solu, etsi tietuetta solusta. jos kyseessä on jaettu solu muodosta uusi osoite h taso+1 (h(k)), eli ota d+1+taso bittiä lopusta etsi tietuetta saadusta solusta Solu on jakamaton, jos sen indeksi on suurempi tai yhtä suuri kuin jakovuorossa olevan solun indeksi. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 29

Lineaarinen hajautus Olkoon d=1, taso=2, eli h 2 antaa osoitteet 0..7 ja h 3 osoitteet 0..15 jaettuja jakovuorossa jaon tuloksena syntyneitä seuraavan tason soluja 16.02.06 Tietokannan hallinta, kevät 2006, Jan 30

Lineaarinen hajautus Lisäyksessä, solmu lisätään haun määräämään lohkoon Jos solmu ei mahdu kotilohkoon, se lisätään ylivuotoketjuun. Ylivuoto käynnistää jako operaation. Olkoon jakovuorossa olevan solun taso+d bitistä muodostuva osoite {b}. Otetaan käyttöön uusi solu jonka osoite on 1{b}. jakovuorossa olevan solun tietueet jaetaan alkuperäisen soluun ja uuden solun kesken käyttäen hajautinta h taso+1. Jos jakovuorossa oli tason viimeinen solu siirtyy jakovuoro soluun 0 ja tasoa kasvatetaan yhdellä, muuten jakovuoro siirtyy seuraavaan soluun. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 31

Lineaarinen hajautus Olkoon d=1, taso=2, eli h 2 antaa osoitteet 0..7 ja h 3 osoitteet 0..15 jakovuorossa jaettuja jaon vastaanottajat 16.02.06 Tietokannan hallinta, kevät 2006, Jan 32

Lineaarinen hajautus Kullakin tasolla jaetaan vuorollaan jokainen tason solu. Kun kaikki on jaettu, on hajautusalue tuplautunut ja siirrytään seuraavalle tasolle. Rakenteessa voi olla pitkiäkin ylivuotoketjuja, mutta ne lyhenevät kun taso kasvaa. 16.02.06 Tietokannan hallinta, kevät 2006, Jan 33