15.09.2013 Views

2007:02 - Karlstads universitet

2007:02 - Karlstads universitet

2007:02 - Karlstads universitet

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

eräkningar visar att storleken p˚a de distribuerade filerna inte bör överstiga 30 Kb om den<br />

sekventiella sökningen, som m˚aste ske, inte ska ta för l˚ang tid (l˚ang tid = mer än 500 ms).<br />

Detta leder till att antalet filer, b, beror p˚a storleken s (beräknat i Kb) enligt sambandet:<br />

b = s<br />

filer (3.17)<br />

30<br />

Vi har en databasfil p˚a c:a s = 3MB = 3072Kb vilket, enligt ekvation 3.17, allts˚a leder till<br />

att antalet filer b = 3072/30 ≈ 103.<br />

3.4 Indexera data<br />

För att kunna hitta den fil som inneh˚aller det token man söker s˚a krävs att filerna är<br />

indexerade p˚a n˚agot sätt. Det finns flera tekniker att indexera data för sökning; Binära<br />

sökträd [1, 20, 13], multilevel träd som B-träd och B+träd [6, 22, 13], hash funktioner<br />

[13, 1, 6, 22, 20], trie [13, 15, 18] och PATRICIA-träd [13] bara för att nämna n˚agra. Vi<br />

är i synnerhet intresserade av att söka p˚a strängar t.ex. förnamn eller efternamn. Detta<br />

ställer speciella krav p˚a indexeringen jämfört med indexering av heltal. De tekniker vi har<br />

tittat närmare p˚a är trie hashing [15, 18] och simple prefix B-tree [2, 22] vilka är de av<br />

litteraturen föredragna indexeringsmetoderna för strängar.<br />

För att kunna söka p˚a telefonnummer s˚a m˚aste vi, förutom att söka p˚a strängar, ocks˚a<br />

kunna söka p˚a heltal. Vi har valt att göra detta genom att använda ett vanligt binärt<br />

sökträd (BST), av den anledningen att det är ett enkelt och mycket snabbt sätt att indexera<br />

p˚a. Alternativen hade bl.a. varit att använda en hashfunktion eller t.ex. ett B+träd.<br />

3.4.1 Trie hashing<br />

Översikt För att söka p˚a stora mängder av l˚anga alfanumeriska strängar föreslog Litwin<br />

en metod kallad trie hashing [15, 18]. Det är en hashstruktur som, i motsats till traditionella<br />

hash-algoritmer där data lagras osorterad baserat p˚a algoritmen, lagrar data sorterad och<br />

29

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!