Pendekatan utama ketiga dari organisasi data pada penyimpanan sekunder adalah organisasi berkas index sequential. Dua teknik pendekatan untuk mengimplementasikan konsep organisasi index sequential akan dibahas
DEFINISI DAN APLIKASI BERKAS INDEX SEQUENTIAL
Salah satu cara yang efektif untuk mengorganisasi kumpulan record-record yang membutuhkan akses record secara sequential maupun akses secara individu berdasarkan nilai key adalah organisasi berkas index sequential. Sebuah berkas index sequential memberikan kombinasi dari jenis akses yg didukung baik oleh berkas sequential maupun berkas relatif.
IMPLEMENTASI ORGANISASI BERKAS INDEKS SEQUENTIAL
Ada dua pendekatan dasar untuk mengimplementasikan konsep dari organisasi berkas index sequential :
1.Blok indek dan data (dinamik).
2.Prime dan overflow data area (statik).
Kedua pendekatan menggunakan sebuah bagian dari indek dan sebuah bagian data, masing-masing menempati berkas yg terpisah.
Salah satu alasan untuk memisahkan indek dan data dalam dua berkas yg terpisah, karena mereka diimplementasikan pada organisasi internal yg berbeda. Masing-masing berkas tersebut harus menempati pada alat penyimpanan yg bersifat Direct Access Storage Device (DASD).
BLOK INDEK DAN DATA
Pada pendekatan ini berkas dan berkas data diorganisasikan dalam blok. Berkas index mempunyai struktur sequential dengan ruang bebas yg didistribusikan antar populasi record. Setiap
tingkat dari blok index menunjuk seluruh blok, kecuali blok index pada tingkat terendah yg menunjuk ke blok data.
Jika sebuah permintaan untuk mengakses record tertentu, misal kita ingin mengakses dengan nilai key BAT, index dengan tingkat tertinggi (Dalam hal ini blok 3-1) yg pertama yg akan dicari pada contoh ini, pointer dari AARDVARK menunjuk index 2-1. Pointer yg ditunjuk pada box tersebut adalah pointer yg berisikan AARDVARK, yg akan menunjuk ke blok indek 1-1. Pointer berikutnya yg akan ditunjuk adalah pointer yg berisi BABOON, yg selanjutnya akan menunjuk blok data 2. Blok data ini akan mencari untuk record dengan key tujuan, yaitu BAT, dimana pada blok ini record tersebut ditemukan.
Permintaan untuk akses data dalam urutan sequential dilayani dengan mengakses blok data dalam urutan sequential. Sebagai catatan blok data merupakan consecutive secara logik dan bukan consecutive secara fisik. Dalam hal ini, blok data harus dihubungkan secara bersama dalam urutan secara logika
rangkaian dari permintaan untuk menginsert record animal baru pada berkas index sequential. Misal setiap blok data mempunyai ruang yg cukup untuk menampung 5 record dan setiap blok indek mempunyai ruang yg cukup untuk menyimpan 4 pasang (nilai key, pointer). Parameter ini biasanya sudah dilengkapi dengan rutin dukungan sistem manajemen data, pada saat berkas animal ini dibentuk. Jika kita menginginkan penyisipan maupun penghapusan terhadap isi berkas, maka blok indek dan blok data akan dibuat dengan sejumlah ruang bebas, yg biasanya disebut sebagai padding.
PRIME DAN OVERFLOW DATA AREA
Pendekatan lain untuk mengimplementasikan berkas index sequential adalah berdasarkan struktur index dimana struktur ini lebih ditekankan pada karakteristik fisik dari penyimpanan, dibanding dengan distribusi secara logik dari nilai key. Indexnya ada beberapa tingkat cylinder index dari tingkat track indek. Berkas datanya secara umum diimplementasikan sebagai dua berkas, yakni prime area dan overflow area.
Misal setiap cylinder dari alat penyimpanan mempunyai 4 track. Pada berkas data animal omo ada 6 cylinder dialokasikan pada prime data area. Track pertama (nomor 0) dari setiap cylinder berisi sebuah index pada record key dalam cylinder tersebut. Entri pada index ini adalah dalam bentuk : nilai key terendah, nomor track.
Dalam sebuah track data, tracknya disimpan secara urut berdasarkan nilai key. Tingkat pertama dari index dalam berkas index dinamakan index master : nilai key tertinggi, pointer
Tingkat kedua dari index dinamakan index cylinder. Index ini berisi pointer pada berkas data prime dan entrinya dalam bentuk : nilai key tertinggi, nomor cylinder
Jika sebuah permintaan untuk mengakses record tertentu, misal kita akan mengakses dengan nilai key BAT. Pertama akan dicari index master. Karena BAT ada di depan LYNX, maka pointer dari LYNX akan menunjuk ke cylinder index. Karena BAT ada di depan ELEPHANT, maka pointer dari ELEPHANT akan menunjuk ke track 0 dari cylinder 1. karena BAT ada di belakang BABOON dan di depan COW maka pointer dari BABOON akan menunjuk ke track 2, yg mencari secara sequential, sampai BAT ditemukan.
Permintaan untuk mengakses data secara sequential akan dilayani dengan mengakses cylinder dan track dari berkas data prime secara urut.
Tidak ada komentar:
Posting Komentar