Oleh
Desty Rodiah ( 09071002034 )
IF-6B
o
Primary Indeks
Pada file indeks yang menggunakan primary indeks, semua file master telah diurutkan
berdasarkan primary key. File indeks juga telah diurutkan berdasarkan primary key
semua file yang ada di atas disebut file indeks sekuential.
Record indeks terdiri dari search key dan pointer yang menunjuk pada satu atau lebih
record. Pointer terdiri dari identifier dari blok tempat record berada dalam disk
Ada 2 tipe penguurutan indeks yang digunakan
1. Dense index
Semua nilai dari search key muncul pada file index
Kelebihan Desense Indeks
• Mencari lokasi record lebih
cepat dibanding sparse
index
Kekurangan Desense Indeks
• Membutuhkan tempat
indeks lebih besar
dibanding sparse index
• Jika file master berubah,
maka file index juga harus dirubah (maintenace lebih sulit dibanding dengan
sparse index))
2. Sparse index
Hanya sebagian dari nilai search key yang muncul pada file index
Kelebihan Sparse Indeks
• Membutuhkan tempat
indeks lebih kecil
dibanding dense index
• Maintenace lebih
mudah dibanding dengan
dense index
Kekurangan Spares Indeks
• Mencari lokasi record lebih lambat dibanding dense index
Secondary Indeks
Secondary indeks harus berupa
dense indeks
MULTILEVEL INDEKS
o Meskipun menggunakan sparse index, file
index dapat menjadi besar sehingga proses
pencarian tidak efisien.
o Misal, jika file master mempunyai record
100.000, dengan tiap blok menyimpan 10
record. Jika 1 record pada file index
menyimpan 1 blok. Maka file index
mempunyai 10.000 record. File index yang
terbentuk masih sangat besar untuk disimpan
dalam sebuah disk.
o Jika file index tersebut tidak cukup dimuat
di dalam main memory, maka pencarian data akan lambat.
o Untuk mengatasi masalah ini, maka dibuatlah sparse index pada primary index
( multilevel index)
juga records atau keys) dalam suatu database. Algoritma b-tree meminimalkan jumlah
dari media yang harus dilalui untuk mencapai suatu record database yang diinginkan
harddisk bukan RAM (Random Access Memory). Dibutuhkan waktu seribu kali lebih
lambat untuk mengakses elemen data dari harddisk dibanding RAM, karena struktur
harddisk yang memiliki bagian-bagian mekanik yang bergerak. Metode b-tree sangat
menghemat waktu dimana setiap nodes bisa mempunyai beberapa cabang (disebut
dengan children) jika dibanding dengan binary-tree yang hanya mempunyai dua children.
Ketika terdapat beberapa children dalam suatu nodes, maka suatu record dapat ditemukan
dengan hanya melewati beberapa nodes saja dibandingkan dengan node yang hanya
Dalam sebuah tree (pohon), record disimpan dalam suatu lokasi yang disebut
leaves (cabang). Suatu record dalam b-tree selalu berada pada titik akhir. Jumlah
maksimal dari children setiap node disebut order. Jumlah dari disk access yang
dibutuhkan disebut depth. Pada gambar diatas (kanan) menunjukkan sebuah b-tree
dengan 3 buah order untuk menuju suatu record yang ada dalam 8 leaves. Pada gambar
kiri adalah binary-tree dengan depth 4 dan b-tree dengan depth 3. Jelas terlihat bahwa
metode b-tree memungkinkan pengaksesan record lebih cepat dengan asumsi semua
semua leaves memiliki suatu record, namun paling tidak adalah separuhnya harus
memiliki. Perbedaan depth antara skema b-tree dan binary-tree adalah dalam penggunaan
di sebuah sistem database dimana b-tree bisa memiliki order yang lebih tinggi, misalnya
32,64,128 atau lebih. Penambahan sejumlah record dalam database akan menambah
depth, begitu juga sebaliknya. Struktur tree mendukung berbagai operasi dasar termasuk
search, predecessor, successor, minimu, maximum, insert dan delete dalam sebuah tree.
• Division Remainder
• Mid Square
• Folding
Bucket Addressing
Pendekatan lain dalam mengatasi collision
adalah hash ke dalam block atau bucket yang
dapat memberikan tempat sejumlah record.
Contoh :
Sebuah berkas relative mempunyai relative
address space dari 0 sampai M dan sebuah
bucket berukuran B record, address space
akan terdiri dari B(M+1) record.
Jika file terdiri dari N record, maka :
N__
Factor Muat = B(M + 1)
B record dapat semuanya di hash kedalam
relitf address yang sama tanpa menyebabkan collision.
Pada saat sebuah bucket penuh, beberapa tempat baru harus ditemukan untuk
record tersebut. Pendekatan dari masalah bucket penuh pada dasarnya sama dengan
pendekatan untuk mengatasi collision dengan record addressing.
Jika open addressing dipakai, space dicari untuk bucket berikutnya (misal dengan linear
probing) atau dalam bucket lainnya (misalnya dengan double hashing).
Jika teknik separate overflow yang dipakai, record baru ditempatkan dalam suatu
himpunan bucket yang dirancang khusu untuk tempat record yang tak dapat ditampung
pada bucket primer.Bucket ini disebut bucket overflow.
Record-record yang disimpan dalam sebuah bucket dapat dikelola dalam :
• Dapat disipkan dalam urutan berdasarkan penempatannya di bucket
• Dapat dipertahankan urutan nilai key-nya.
Bucket addressing ini umum dipakai. Ukuran dari sebuah bucket dapat ditentukan oleh
ukuran track atau sector dalam DASD. Ukuran bucket umumnya sama dengan ukuran
block untuk file. Satu keuntungan penting dari penggunaan bucket yang dapat
menampung banyak record ini adalah record dengan panjang yang berbeda dapat dipakai.