Fragmentasi Data


Fragmentasi Data
Fragmentasi : relasi dipartisikan ke dalam beberapa bagian, setiap bagian disimpan pada lokasi yang berbeda. Ada beberapa hal yang terlibat dalam penyimpanan relasi pada basis data terdistribusi di antaranya fragmentasi data. Fragmentasi data memisahkan relasi ke dalam beberapa fragment. Tiap-tiap fragment disimpan pada site yang berbeda.

Pemisahan relasi global ke dalam fragment-fragment dapat disusun dengan menggunakan tiga jenis yang berbeda dari fragmentasi yaitu :

fragmentasi horizontal, fragmentasi vertikal, dan fragmentasi campuran.

Dalam seluruh jenis fragmentasi, sebuah fragment dapat didefinisikan dengan sebuah ekspresi dalam sebuah bahasa relasional (dalam hal ini digunakan aljabar relasional) yang mengambil relasi global sebagai operan dan memproduksi fragment sebagai hasil.

topologi_db

Fully Connected network :

Keuntungan :

kalau salah satu node rusak, yang lainnya masih dapat berjalan (tetapi    biaya mahal).

Kerugian :

control management tidak terjamin
Partially connected network :

Keuntungan    : reliability rendah, biaya dapat ditekan
Kerugian     : control management tidak terjamin

Tree structure network :
Keuntungan    : bersifat sentral, control management lebih terjamin
Kerugian    : kalau node pusat (A) rusak, semua akan rusak.
Catatan : setiap proses dimulai dari bawah.

Ring Network (LAN) :
Keuntungan    : rusak satu, yang lain masih berjalan
Kerugian    : Control management kurang terjamin karena bersifat desentralisasi

Star Network (LAN) :
Keuntungan    :

- control management lebih terjamin, karena bersifat sentral
- reliability rendah
Kerugian    :

kalau pusat rusak, yang lainnya rusak

Keuntungan-keuntungan dari basis data terdistribusi

  1. Pengawasan distribusi dan pengambilan data Jika sejumlah site yang berbeda dihubungkan satu sama lain, lalu seorang pemakai yang berada pada satu site dapat mengakses data yang tersedia pada site lain.

Sebagai contoh : sistem distribusi  pada  sebuah  bank  memungkinkan  seorang pemakai     pada salah satu cabang dapat mengakses data  cabang lain.

  1. Reliability dan availability Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site individu atau mata rantai komunikasi antar site.

Misal : jika site-site gagal dalam sebuah sistem distribusi, site-site lainnya dapat melanjutkan operasi jika data telah direplikasi pada beberapa site

  1. Kecepatan pemrosesan query Jika sebuah query melibatkan data pada beberapa site, memungkinkan membagi query ke dalam sub query yang dapat dieksekusi dalam bentuk paralel oleh beberapa site. Perhitungan secara paralel mempercepat pemrosesan dari seorang pemakai query
  2. Otonomi lokal
    Pendistribusian sistem mengizinkan sekelompok individu dalam sebuah  perusahaan untuk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.
  3. Efisien dan fleksibel
    Data  dalam   sistem  distribusi  dapat disimpan dekat  dengan titik di mana data tersebut      dipergunakan. Data dapat secara dinamik bergerak atau disalin, atau salinannya dapat dihapus.

Kerugian dari basis data terdistribusi

  1. Harga software yamg mahal Hal ini disebabkan sangat sulit untuk membuat sistem basis data distribusi
  2. Kemungkinan kesalahan lebih besar Site-site yang termasuk dalam sistem distribusi beroperasi secara paralel  sehingga menjadi lebih sulit untuk menjamin kebenaran dari algoritma. Adanya kesalahan mungkin tak dapat diketahui
  3. Biaya pemrosesan tinggi Perubahan pesan-pesan dan penambahan perhitungan dibutuhkan untuk   mencapai koordinasi antar site.

Dalam memilih sebuah disain untuk sistem basis data, perancang harus mengimbangi keuntungan dan kerugian dari basis data terdistribusi.

Beberapa peraturan yang harus diikuti ketika mendefinisikan fragment :
1. Kondisi lengkap.
Seluruh data dari relasi global harus dipetakan ke dalam fragment. Fragmentasi tidak akan terjadi jika sebuah data item yang dimiliki oleh relasi global, tidak dimiliki oleh beberapa fragment.

2. Kondisi penyusunan kembali.
Harus selalu mungkin untuk menyusun kembali tiap-tiap relasi global dari fragment-fragmentnya. Hanya fragment-fragment yang disimpan dalam basis data terdistribusi yang dapat membangun relasi global kembali melalui operasi penyusunan kembali jika diperlukan.

3. Kondisi disjoin.
Kondisi ini sangat berguna terutama untuk fragmentasi horizontal, sementara untuk    fragmentasi vertikal kondisi ini kadang-kadang dilanggar.

Jenis-Jenis Fragmentasi Data
1.  Fragmentasi Horizontal.
Fragmentasi horizontal berisikan tupel-tupel yang dipartisi dari sebuah relasi global ke dalam sejumlah  subset r1, r2, … , rn. Tiap-tiap subset berisikan sejumlah tupel dari r. Tiap-tiap tupel dari r harus memiliki satu fragment, sehingga relasi yang asli dapat disusun kembali. Sebuah fragment dalam fragmentasi horizontal dapat didefinisikan sebagai sebuah seleksi pada relasi global r. Oleh karena itu sebuah predikat Pi digunakan untuk menyusun fragment ri seperti berikut :

ri = si(r)

Penyusunan kembali dari relasi r dapat diperoleh dengan mengambil gabungan dari seluruh fragment :

n
r = U ri
i=1

2.  Fragmentasi Vertikal
Dalam fragmentasi vertikal, tiap-tiap fragment ri didefinisikan sebagai :

ri = pi(r)

Relasi global dapat disusun kembali dari fragment-fragment dengan mengambil natural join:   r = r1    r2      r       …..      rn

Fragmentasi vertikal disempurnakan dengan menambahkan sebuah atribut yang disebut tuple identifier (tuple-id) ke dalam skema r. Sebuah tuple-id adalah sebuah alamat logik dari sebuah tupel. Tiap-tiap tupel dalam r harus memiliki sebuah alamat yang unik, atribut tuple-id sebagai kunci untuk penambahan skema.

Kunci tersebut akan direplikasikan ke dalam seluruh fragment dengan tujuan untuk penyusunan kembali relasi global. Kita dapat melihat bahwa dalam fragmentasi vertikal motivasi utama untuk memiliki fragment-fragment yang disjoin adalah tidak sepenting dalam fragmentasi horizontal.

3. Fragmentasi Campuran
Relasi r (global) dibagi-bagi ke  dalam sejumlah  relasi fragment r1, r2, r3, …, rn. Tiap-tiap fragment diperoleh sebagai hasil baik dari skema fragmentasi horizontal ataupun skema fragmentasi vertikal pada relasi r, atau dari sebuah fragment r yang diperoleh sebelumnya.

Cara yang sederhana untuk membangun fragmentasi campuran sebagai  berikut :
1. Menggunakan  fragmentasi horizontal pada fragmentasi vertikal.
2. Menggunakan  fragmentasi vertikal pada fragmentasi horizontal.

Contoh :  Relasi Deposit

Tabel 1. Deposit-Scheme(branch_name, account_number, customer_name, balance)

table1Pemecahan relasi global dengan menggunakan :
1.    Fragmentasi Horizontal

Untuk menggambarkan ini, relasi r adalah relasi deposit dari tabel di atas. Relasi ini dapat dibagi ke dalam n fragment yang berbeda, dimana berisikan tupel-tupel dari rekening yang dimiliki oleh sebuah cabang utama. Jika bank hanya memiliki dua cabang, Hillside dan Valleyview maka ada  dua fragment yang berbeda.
Kemudian fragmentasi horizontal dapat diuraikan sbb :

Deposit1 = s  branch-name = “Hillside” (Deposit)
Deposit2 = s  branch-name = “Valleyview” (Deposit)

Fragment deposit1 disimpan pada site Hiilside dan fragment deposit2 disimpan pada site Valleyview.  Dua fragment ini digambarkan sbb :
table2Fragmentasi di atas memenuhi kondisi lengkap jika “Hillside” dan “Valleyview” adalah harga-harga yang mungkin dari atribut branch-name. Kondisi penyusunan kembali sangat mudah untuk diperiksa karena selalu mungkin untuk disusun kembali relasi global deposit melalui operasi berikut :

Deposit = deposit1 U deposit2

Begitu juga untuk kondisi disjoin. Kita akan memakai predikat yang digunakan dalam operasi seleksi yang mendefinisikan sebuah fragment kualifikasinya :

q1 : branch-name = “Hillside”
q2 : branch-name = “Valleyview”

2.    Fragmentasi Vertikal

Pada fragmentasi vertikal, relasi deposit memerlukan penambahan tuple-id. Berikut ini adalah  relasi deposit dengan penambahan tuple-id :

tablel3

tablel4

Untuk menyusun kembali relasi deposit yang asli dari fragment-fragment, kita dapat menggunakan :
p Deposit-scheme(deposit3   deposit4)
Atribut join dari ekspresi di atas adalah tuple-id. Karena tuple-id menggambarkan sebuah alamat, hal ini memungkinkan untuk memasangkan  sebuah tupel dari deposit3 yang berhubungan dengan tupel dari deposit4 dengan menggunakan alamat yang diberikan oleh harga tuple-id.

3.  Fragmentasi Campuran :
Misalkan relasi r adalah relasi deposit dari gambar 1 di atas. Relasi ini dibagi ke dalam fragment deposit3 dan deposit4 seperti didefinisikan di atas. Selanjutnya kita dapat membagi fragment deposit3 menjadi fragment deposit3a dan fragment deposit3b dengan menggunakan skema fragmentasi horizontal ke dalam dua fragment berikut :

Deposit3a = s  branch-name = “Hillside” (Deposit3)
Deposit3b = s branch-name = “Valleyview” (Deposit3)

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s