2007:02 - Karlstads universitet
2007:02 - Karlstads universitet
2007:02 - Karlstads universitet
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