2. Füüsiline disain
2. Füüsiline disain
2. Füüsiline disain
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TTÜ: Andmebaasi füüsiline <strong>disain</strong> (2012)<br />
© Erki Eessaar<br />
<strong>2.</strong><strong>2.</strong>3.12 Kahendpuu<br />
Kahendpuu (binary-tree) on puu, mille igal sõlmel on null kuni kaks alluvat.<br />
Tegemist on B-puu struktuuri erijuhtumiga. Igas indeksipuu sõlmes on kaks<br />
viidet. Üks viide viitab sõlmele, mis viitab väärtustele, mis on antud sõlme<br />
väärtusest väiksemad ning teine viitab sõlmele, mis viitab väärtustele, mis on<br />
antud sõlme väärtusest suuremad.<br />
Kõige kõrgema taseme indeksiplokis (puu juures) asub selline väärtus, millest<br />
suuremaid ja väiksemaid väärtusi on võrdselt 50%. Kõige esimene plokk<br />
jagab väärtuste hulga kaheks alamhulgaks. Puu juureks olev plokk sisaldab<br />
viiteid kahele järgmisele plokile, mis omakorda sisaldavad järgmisi viiteid,<br />
jagades selliste viidetega tekkivaid väärtuste alamhulki järjest väiksemaks,<br />
kuni viimasel tasemel jõutakse rea aadressideni.<br />
21<br />
10 22<br />
5 14 19 30<br />
17<br />
Joonis 8Kahendpuu näide.<br />
Jõudmaks sõlmeni, mis sisaldab väärtust "17" tuleb käia läbi tee<br />
21=>22=>19=>17. Viimasena loetav sõlm, mis on ka puu leheks, sisaldab<br />
omakorda viidet ridade asukohale, mille indekseeritud veerule vastavas väljas<br />
oli väärtus 17.<br />
Veergude väärtused paigutatakse indeksiplokkidesse selliselt, et säiliks<br />
indeksiplokkide puu tasakaal – st. tuleb tagada, et kui indeksiplokk sisaldab<br />
endas kahte viidet alam-indeksiplokkidele, siis kummaski alamharus oleks<br />
võrdne arv kirjeid (veeru väärtusi.).<br />
See tähendab, et ridade lisamisel ja eemaldamisel tabelist tuleb indeksid<br />
andmebaasisüsteemi poolt uuesti arvutada ja indeksipuu struktuuri vastavalt<br />
saadud indeksi väärtustele muuta, et vältida indeksipuu tasakaalust välja<br />
viimist. Kui indeksipuu struktuuri ridade lisamisel mitte muuta, läheks<br />
indeksipuu tasakaalust välja näiteks siis, kui alfabeedi lõputähtedega nimesid<br />
lisataks rohkem kui algustähtedega algavaid nimesid.<br />
32