• Tidak ada hasil yang ditemukan

Organisasi File Multi Key y( (Index)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Organisasi File Multi Key y( (Index)"

Copied!
18
0
0

Teks penuh

(1)

Organisasi File

Multi Key (Index)

y (

)

Pengertian

Organisasi berkas yang memperbolehkan

d di k

l h l bih d i

t

k

record diakses oleh lebih dari satu key

field disebut organisasi berkas dengan

banyak key. Ada banyak teknik yang

dipakai untuk organisasi berkas dengan

banyak key ini. Hampir semua pendekatan

bergantung pada pembentukan indeks

yang

dapat

memberi

akses

langsung

dengan nilai key.

(2)

Ada banyak cara untuk mengorganisasi berkas semacam ini, yaitu dengan cara:

(1) Inversion

Yaitu dengan cara yang mirip dengan organisasi relative yang satu tabel index-nya berisi key field yang terurut dan sebuah pointer yang menunjuk ke alamat di mana data disimpan. B d k di i i dib t hk b k k i k di t b l Bedanya, karena di sini dibutuhkan banyak kunci, maka di tabel tersebut disimpan pula kunci-kunci atribut lainnya yang dibutuhkan.

(2) Multi-list

Yaitu dengan cara yang hampir sama dengan cara pertama, yaitu dibuat tabel index yang terurut key field-nya dan penunjuk ke nomor record (pertama) datanya, hanya di setiap record ditambahkan pointer (penunjuk) ke record record berikutnya ditambahkan pointer (penunjuk) ke record-record berikutnya sesuai urutan key field yang ditentukannya. Tentu penunjuk itu akan berubah datanya bila akses dilakukan dengan key field lainnya.

(3)

APLIKASI BERKAS DENGAN

BANYAK KEY

Banyak sistem informasi interaktif memerlukan dukungan dari berkas banyak key.

dari berkas banyak key. Contoh:

Sebuah sistem perbankan yang mempunyai beberapa pemakai (user), seperti kasir, pegawai kredit, manajer cabang, pegawai bank, nasabah, dll. Semuanya memerlukan akses data yang sama dengan format record:

(4)

Satu pendekatan yang dapat mendukung semua jenis akses adalah dimilikinya banyak berkas yang berbeda. Setiap berkas di organisasi untuk melayani satu jenis keperluan. Maka untuk contoh sistem perbankan di atas harus ada:

File account yang organisasinya indeks sekuensial dengan nilai key:

ID untuk melayani kasir, pegawai bank & nasabah. File account yang organisasinya sekuensial dengan record di urut menurut:

di urut menurut:

OVERDRAW LIMIT untuk melayani pegawai kredit.

File account yang organisasinya relatif dengan nilai key: SOCNO untuk melayani pegawai kredit. File account yang organisasinya sekuensial dengan record di urut menurut:

urut menurut:

GROUP-CODE untuk melayani manajer cabang.

File account yang organisasinya relatif dengan nilai key:

NAME, SOCNO dan TYPE untuk melayani nasabah NAME, SOCNO dan TYPE untuk melayani nasabah

(5)

Jadi kita mempunyai 5 file, semuanya mempunyai record yang sama. Kelima file itu hanya berbeda dalam organisasi dan cara aksesnya. Pengulangan data dari beberapa file bukan merupakan cara yang baik untuk mengakses record dengan berbagai cara. Dan cara ini memerlukan ruang (space) yang

b di t d k lit d kt d t

besar di storage dan kesulitan pada waktu peng-update-an record secara serentak.

Untuk mengatasi masalah di atas, maka digunakan organisasi berkas banyak key yang umumnya diimplementasikan dengan pembentukan banyak indeks untuk memberikan akses yang berbeda terhadap record data. Mungkin juga cara ini memakai banyak link-list terhadap record. Dan sebuah indeks dapat dibentuk dengan beberapa cara, misal sebagai tabel binary search tree atau B-tree.

ORGANISASI INVERTER FILE

Satu pendekatan dasar untuk memberikan hubungan antara sebuah indeks dan data record dari file adalah antara sebuah indeks dan data record dari file adalah inversi.

Sebuah key pada indeks inversi mempunyai semua nilai key dimana masing-masing nilai key mempunyai penunjuk ke record

yang bersangkutan. File yang demikian disebut inverted file Indeks inversi yang sederhana dibentuk sebagai file. Indeks inversi yang sederhana dibentuk sebagai sebuah tabel.

(6)

Contoh:

Inversi file ACCOUNT terhadap SOCNO menghasilkan indeks inversi.

Indeks inversi tersebut telah di sortir menurut SOCNO.

Penambahan record file menyebabkan indeks inversi juga harus diubah.

Sebuah indeks inversi dapat dibuat bersama sebuah relatif file atau sebuah indeks

sekuensial. Sebuah indeks inversi dengan key SOCNO untuk sebuah relatif file dengan nilai key ID akan memberikan sebuah file yang dapat diakses langsung oleh sebuah ID atau SOCNO.

(7)

Jika sebuah key dipakai untuk menentukan struktur storage dari file disebut primary key, sedangkan key yang lainya disebut secondary key.

File yang mempunyai indeks inversi untuk setiap data field disebut completely inverted. File yang bukan completely inverted tapi paling sedikit mempunyai satu indeks inversi disebut partialy inverted file

indeks inversi disebut partialy inverted file.

Sebuah variasi dari struktur indeks inversi adalah pemakaian secondary key dan primary key dari indirect addressing.

Pendekatan ini membiarkan file yang direorganisasi dan restructure secara fisik tanpa menyebabkan indeks file. Pada contoh di atas, nilai SOCNO adalah unik. Setiap

SOCNO d l i d k i i i d

SOCNO dalam indeks inversi mempunyai record. Indeks inversi dapat juga dipakai dengan key yang bukan unik.

Satu hal yang baik dari inversi file adalah beberapa pertanyaan dibawah ini dapat dijawab tanpa akses data file, cukup dengan indeks inversinya.

cukup dengan indeks inversinya.

Apakah ada indeks untuk SOCNO = ‘414556233’ ?

Berapa banyak account dengan GROUP-CODE = ‘EA001’ ? Berapa banyak account dengan BRANCH = ‘NE’ ?

(8)

ORGANISASI MULTI-LIST FILE

Suatu pendekatan lain yang memberikan hubungan antara sebuah indeks dan data record dari sebuah file disebut organisasi multi-list file.

Seperti sebuah inverted file, sebuah multi-list file Seperti sebuah inverted file, sebuah multi list file mempunyai sebuah indeks untuk setiap secondary key. Organisasi multi-list file berbeda dengan inverted file, dimana dalam indeks inversi untuk sebuah nilai key mempunyai sebuah penunjuk untuk sebuah data record dengan nilai key, sedangkan dalam indeks multi-list untuk sebuah nilai key mempunyai hanya sebuah penunjuk untuk data record pertama dengan nilai key penunjuk untuk data record pertama dengan nilai key. Data record mempunyai sebuah penunjuk untuk data record selanjutnya dengan nilai key dan seterusnya. Maka terdapat sebuah linked-list dari data record untuk setiap nilai dari secondary key.

(9)

Gambar 6 dan 7, menunjukkan indeks multi-list untuk secondary key GROUP-CODE dan OVERDRAW LIMIT, sedangkan gambar 8 menunjukkan data file. Setiap data record mempunyai penunjuk untuk mengakses record selanjutnya.

Nilai key harus di urut, struktur indeks adalah tabel dengan indirect

addressing dan

mempunyai hubungan data record yang disusun record yang disusun menurut ID secara ascending

(10)

Informasi tentang banyak record dalam link-list juga berguna untuk mendapatkan cara yang terbaik dalam pengaksesan. Contoh:

Ada 2 cara akses yang potensial dalam menjawab pertanyaan: Daftar nilai ID untuk account dengan GROUP-CODE ='EA001' Daftar nilai ID untuk account dengan GROUP CODE EA001

dan OVERDRAW-LIMIT = 100 ?

Data file dapat dicari secara sekuensial, indeks GROUP-CODE atau dengan memakai OVERDRAW-LIMIT

Struktur File Index

Terdiri dari main file dan file-file index (file berindex majemuk).

majemuk).

Tidak ada rantai overflow.

Tidak dikenal konsep atribut kunci (tidak ada keterurutan berdasarkan atribut kunci).

Pengubahan data langsung dilakukan terhadap main file. Format record dapat berupa name-value pair atau dapat

(11)

Index bersifat multiple index, dinamis, record anchored. Entri index terdiri dari atribut dan TID.

Entri index terurut berdasarkan nilai atributnya.

Next record diakses berdasarkan keterurutan entri pada i d

index-nya.

Tiap index dapat bersifat multilevel.

TID pada index berisi alamat block dan posisi record. Exhaustive vs partial index.

Struktur File Index : BTree

BTree = Balanced Tree

Perubahan pada main file berimplikasi terhadap index nya Perubahan pada main file berimplikasi terhadap index-nya. Struktur index menggunakan BTree.

Blok – blok BTree harus dijaga agar memuat setengah dari fan out ratio-nya (effective fan out antara y/2 – y).

Order Capacity = d

Kapasitas minimum = d, dan maximum = 2d Khusus untuk root, kapasitas minimum = 1

(12)

Algoritma Penyisipan BTree

Cari posisi yang sesuai bagi record baru, mulai dari root

BTree. BTree.

Jika tersedia space, sisipkan record baru sesuai urutan, jika tidak terjadi, overflow.

Jika terjadi overflow :

Split menjadi 2 node

Pilih node tengah untuk naik ke level berikutnya Set pointer dari parent node ke child node Set pointer dari parent node ke child node

Algoritma Penghapusan BTree

Menghapus node pada leaf dan tidak melanggar kapasitas minimum, maka record langsung dihapus tanpa minimum, maka record langsung dihapus tanpa mengubah struktur BTree.

Menghapus node pada root dan tidak melanggar kapasitas minimum, maka ganti dengan 1 record dari leaf node kanan terkecil.

Menghapus node (leaf dan root), dan melanggar kapasitas minimum maka perbaiki dengan redistribusi record minimum, maka perbaiki dengan redistribusi record. Apabila redistribusi record mengakibatkan pelanggaran kapasitas minimum pada node lain, maka lakukan coalescing node.

(13)

Contoh BTree

• Contoh BTree dengan order capacity d = 2

Contoh Penyisipan BTree

• Penyisipan data 60, tidak terjadi penambahan node karena tidak terjadi overflow dan (tidak) melanggar karena tidak terjadi overflow dan (tidak) melanggar kapasitas maksimum.

(14)

Contoh Penyisipan BTree

• Penyisipan data 70, terjadi penambahan node karena terjadi overflow dan melanggar kapasitas maksimum. terjadi overflow dan melanggar kapasitas maksimum.

Contoh Penyisipan BTree

• Split menjadi 2 node karena terjadinya overflow

(15)

Contoh Penyisipan BTree

• Hasil akhir dari penambahan data 70

Contoh Penghapusan BTree

• Penghapusan data node 63, tidak terjadi pelanggaran

kapasitas minimum. kapasitas minimum.

(16)

Contoh Penghapusan BTree

• Penghapusan data node 51, ganti dengan 1 record dari

leaf node terkecil, tidak terjadi pelanggaran kapasitas leaf node terkecil, tidak terjadi pelanggaran kapasitas minimum.

Contoh Penghapusan BTree

• Penghapusan data node 7, terjadi pelanggaran kapasitas minimum, perbaiki dengan redistribusi record.

(17)

Contoh Penghapusan BTree

• Penghapusan data node 53, terjadi pelanggaran kapasitas minimum, perbaiki dengan redistribusi record. kapasitas minimum, perbaiki dengan redistribusi record. Tetapi mengakibatkan pelanggaran kapasitas minimum pada node lain.

Contoh Penghapusan BTree

• Karena mengakibatkan pelanggaran kapasitas minimum

pada node lain, maka lakukan coalescing node. pada node lain, maka lakukan coalescing node.

54 ^ ^ ^

69 ^ ^ ^

60

(18)

Contoh Penghapusan BTree

• Hasil akhir dari coalescing node.

Referensi

Dokumen terkait

Maximum marginal relevance (MMR) untuk proses peringkasan multi-dokumen, sehingga menghasilkan suatu peringkasan yang dapat mengandung informasi yang dianggap penting

Supine juga merupakan posisi yang kurang menguntungkan pada bayi premature, hal ini disebabkan karena posisi supine tidak mendukung ke arah posisi fleksi dan dapat

Oleh karena dalam penelitian ini didapatkan nilai signifikansi sebesar 0,000 (p <0,05) maka dapat disimpulkan bahwa terdapat perbedaan pH saliva antara pasien

Ketika Anda berjalan di sepanjang Pasar Kampung Lalang Jalan Gatot Subroto, apakah Anda merasa lelah.. Apabila jawaban no 10 adalah ya, maka apa yang harus tersedia

Agen atau faktor penyebab adalah suatu unsur, organisme hidup atau kuman infeksi yang dapat menyebabkan terjadinya penyakit atau masalah kesehatan lainnya..

Diketahuinya gambaran kebiasaan jenis makanan dan keberadaan material energi yang tersimpan pada beberapa organ tubuh, diharapkan dapat menggambarkan kebutuhan material energi

Dengan demikian hipotesis yang kedua yang menyatakan “Brand awareness yang terdiri dari unware of brand, brand recognition, brand recall dan top of mind secara

Penelitian ini diharapkan dapat memberi masukan dalam mengembangkan teori-teori tentang memperluas jaringan (networking) guna pengembangan kompetensi profesional pada pendidik