04 - Btree
04 - Btree
04 - Btree
2
Struktur Index File
Format record dapat berupa name-value pair atau
dapat berupa structured record
Index bersifat multiple index, dinamis, record
anchored
Entri index terdiri dari atribut dan TID
Entri index terurut berdasarkan nilai atributnya
3
Struktur Index File
Next record diakses berdasarkan keterurutan entri
pada index-nya
Tiap index dapat bersifat multilevel
TID pada indeks berisi alamat block dan posisi
record
Exhaustive vs partial index
4
Struktur File Index : BTree
Perubahan pada main file berimplikasi terhadap
indeks-nya
Struktur indeks menggunakan BTree
Blok-Blok BTree harus dijaga agar memuat
setengah dari fanout ratio-nya effective fanout
CS2323 / 7- File Index / RIE
antara y/2 – y
Order Capacity d = y/2
5
BTree Insertion Algorithm
1. Cari posisi yang sesuai bagi rekord baru, mulai
dari root BTree.
2. Jika tersedia space, insert new record sesuai
urutan, jika tidak terjadi overflow
3. Jika terjadi overflow :
- split menjadi dua node
- Pilih node tengah untuk naik ke level
berikutnya
- set pointer dari parent node ke child node
6
Contoh Insert Pada BTree
Diketahui BTree dengan kapasitas
order d = 1
Gambarkan hasil Insert data :
cat, ant, dog, cow, rat, pig dan gnu
pada BTree tersebut.
7
Insert cat
^ cat ^ ^
Insert ant
^ ant ^ cat ^
cat ^
^ ant ^ ^ ^ dog ^ ^
8
Insert cow
cat ^
cat dog
9
Insert pig
cat dog
cat ^ pig ^
^ ant ^ ^ ^ gnu ^ ^
^ cow ^ ^ ^ rat ^ ^
CS2323 / 7- File Index / RIE
10
BTree Deletion Algorithm
1. Menghapus node daun (leaf node), tidak
melanggar kapasitas minimum
2. Menghapus non leaf node, ganti dengan
satu rekord dari daun, tidak melanggar
kapasitas minimum
3. Menghapus leaf node, melanggar
kapasitas, perbaiki dengan redistribusi
rekord
4. Menghapus leaf node, melanggar
11
CS2323 / 7- File Index / RIE
Contoh Delete Node Pada BTree
51 ^ ^ ^
11 30 ^ ^ 66 78 ^ ^
^ 2 ^ 7 ^ ^ ^ ^ 33 ^ 41 ^ ^ ^ ^ 53 ^ 54 ^ 63 ^ ^ ^ 79 ^ 84 ^ 93 ^ ^
^ 12 ^ 15 ^ 22 ^ ^ ^ 68 ^ 69 ^ 71 ^ 76 ^
11 30 ^ ^ 66 78 ^ ^
^ 2 ^ 7 ^ ^ ^ ^ 33 ^ 41 ^ ^ ^ ^ 53 ^ 54 ^ 63 ^ ^ ^ 79 ^ 84 ^ 93 ^ ^
^ 12 ^ 15 ^ 22 ^ ^ ^ 69 ^ 71 ^ 76 ^ ^
13
Kasus 2 : Menghapus non leaf node,
ganti dengan satu rekord dari daun,
tidak melanggar kapasitas minimum.
Misal hapus node 51
53 ^ ^ ^
11 30 ^ ^ 66 78 ^ ^
^ 2 ^ 7 ^ ^ ^ ^ 33 ^ 41 ^ ^ ^ ^ 54 ^ 63 ^ ^ ^ ^ 79 ^ 84 ^ 93 ^ ^
^ 12 ^ 15 ^ 22 ^ ^ ^ 69 ^ 71 ^ 76 ^ ^
14
Kasus 3 : Menghapus leaf node,
melanggar kapasitas, perbaiki dengan
redistribusi rekord
Misal hapus node 63
53 ^ ^ ^
11 30 ^ ^ 69 78 ^ ^
^ 2 ^ 7 ^ ^ ^ ^ 33 ^ 41 ^ ^ ^ ^ 54 ^ 66 ^ ^ ^ ^ 79 ^ 84 ^ 93 ^ ^
^ 12 ^ 15 ^ 22 ^ ^ ^ 71 ^ 76 ^ ^ ^
15
Kasus 4 : Menghapus leaf node,
melanggar kapasitas, perbaiki dengan
coalescing node
Misal hapus node 53
Node melanggar
54 ^ ^ ^ kapasitas minimum
11 30 ^ ^ 78 ^ ^ ^
^ 2 ^ 7 ^ ^ ^ ^ 33 ^ 41 ^ ^ ^ ^ 66 ^ 69 ^ 71 ^ 76 ^ ^ 79 ^ 84 ^ 93 ^ ^
^ 12 ^ 15 ^ 22 ^ ^
Pada BTree tsb, dilakukan coalescing node sehingga
akan dihasilkan BTree sbb :
CS2323 / 7- File Index / RIE
16
11 30 54 73
^ 2 ^ 7 ^ ^ ^ ^ 33 ^ 41 ^ ^ ^ ^ 79 ^ 84 ^ 93 ^ ^
^ 66 ^ 69 ^ 71 ^ 76 ^
^ 12 ^ 15 ^ 22 ^ ^
Perhatikan bahwa pada kasus delete ini telah
menyebabkan penurunan level Btree
18
THANK YOU