Basis Data Terdistribusi
Arsitektur Sistem Basis Data Terpusat (Centralized) Data ditempatkan dalam satu lokasi Terdistribusi (Distributed) Data ditempatkan di banyak lokasi Sistem terpisah (Isolated) Basis data ditempatkan di banyak lokasi tetapi tidak saling berhubungan sama sekali.
Struktur Basis Data Terdistribusi
Transaksi pada basis data terdistribusi Transaksi Lokal Transaksi yang mengakses basisdata di server yang sama dengan server dimana transaksi berjalan. Transaksi Global Transaksi yang membutuhkan pengaksesan data di server yang berbeda dengan server di mana transaksi berjalan.
Keuntungan Basis Data Terdistribusi Pemakaian Data dan kontrol data yang tersebar Setiap user pada suatu simpul dapat mengakses data yang berada di simpul lainnya, seperti pada simpul user itu sendiri. Keandalan dan Ketersediaan Data Jika ada simpul mengalami kegagalan data tetap dapat diakses lewat simpul lainnya. Kecepatan Query Jika sebuah query melibatkan data di sejumlah simpul, maka query tsb dapat dapat dipilah menjadi sejumlah subquery yang akan dijalankan di simpul-simpul yang bersesuaian, hal ini berdampak pada kecepatan di dalam mendapatkan hasil query
Kelemahan Basis Data Terdistribusi Biaya pembangunan software Karena implementasi lebih sulit sehingga membutuhkan biaya yang lebih besar Potensi sumber bug yang lebih banyak karena beroperasi secara paralel sehingga lebih sulit menjamin kebenaran algoritma/program Peningkatan waktu proses membutuhkan waktu lebih dalam pertukaran data dan komputasi untuk mengupayakan koordinasi antar simpul.
Desain Basis Data Terdistribusi Replikasi Sistem menyimpan duplikat data ke sejumlah simpul. Fragmentasi Data dipilah dan disebar ke dalam sejumlah fragmen yang disimpan di sejumlah simpul Replikasi dan Fragmentasi kombinasi dari kedua desain diatas, data dipilah dalam sejumlah fragmen dan melakukan duplikasi data ke simpul–simpul lainnya
Replikasi Data Sistem menyimpan duplikat data ke sejumlah simpul Dampak replikasi Ketersediaan data tinggi Jika terdapat kerusakan pada suatu simpul maka data dapat diambil dari simpul yang lainnya Peningkatan proses paralel pemrosesan query pada simpul-simpul yang melibatkan suatu data dapat dieksekusi secara paralel. Peningkatan beban pengubahan data Jika ada perubahan pada suatu data maka perubahan juga harus dilakukan ke semua simpul yang terdapat duplikasi data tsb, sehingga beban proses pengubahan data menjadi meningkat.
Fragmentasi Data Data dipilah dan disebar ke dalam sejumlah fragmen yang disimpan di sejumlah simpul Pada saat direkontruksi kembali Data setelah fragmentasi dapat menggunakan operasi Union atau operasi natural join
Fragmentasi horizontal no. nasabah Nama alamat kota saldo_simpanan saldo pinjaman N00001 Fauzan Jl. Nakula 123 Bandung 10000000 1200000 N00003 Arif Jl. Sadewa 1 15000000 N00004 Adam Jl. Merbabu 5000000 N00006 Majid Jl. Setiabudi Semarang 7500000 3000000 N00011 Nova Jl. Lamper Tengah 11000000 1000000 N00021 Anisa Jl. Pedurungan 2000000 N00022 Milan 2500000 N00030 Astrid Jl. Pedurungan 1 1500000 r = p(r) Nasabah1 = kota=Bandung(nasabah) Nasabah2 = kota=Semarang(nasabah) no. nasabah Nama alamat kota saldo_simpanan saldo pinjaman N00006 Majid Jl. Setiabudi Semarang 7500000 3000000 N00011 Nova Jl. Lamper Tengah 11000000 1000000 N00021 Anisa Jl. Pedurungan 2000000 N00022 Milan 2500000 N00030 Astrid Jl. Pedurungan 1 1500000 no. nasabah Nama alamat kota saldo_simpanan saldo pinjaman N00001 Fauzan Jl. Nakula 123 Bandung 10000000 1200000 N00003 Arif Jl. Sadewa 1 15000000 N00004 Adam Jl. Merbabu 5000000 Nasabah = Nasabah1 U Nasabah2
Fragmentasi Vertical Nasabah1=no.nasabah,Nama,alamat,kota (nasabah) Fauzan Jl. Nakula 123 Bandung N00003 Arif Jl. Sadewa 1 N00004 Adam Jl. Merbabu N00006 Majid Jl. Setiabudi Semarang N00011 Nova Jl. Lamper Tengah N00021 Anisa Jl. Pedurungan N00022 Milan N00030 Astrid Jl. Pedurungan 1 no. nasabah saldo_simpanan N00001 10000000 N00003 15000000 N00004 5000000 N00006 7500000 N00011 11000000 N00021 2000000 N00022 1000000 N00030 1500000 no. nasabah saldo pinjaman N00001 1200000 N00003 10000000 N00004 5000000 N00006 3000000 N00011 1000000 N00021 N00022 2500000 N00030 Nasabah1=no.nasabah,Nama,alamat,kota (nasabah) Nasabah2=no.nasabah,saldo_simpanan (nasabah) Nasabah3=no.nasabah,saldo_pinjaman (nasabah) Nasabah=nasabah1 nasabah2 Nasabah3
Fragmentasi Vertical Nasabah1=no.nasabah,Nama,alamat,kota (nasabah) Fauzan Jl. Nakula 123 Bandung N00003 Arif Jl. Sadewa 1 N00004 Adam Jl. Merbabu N00006 Majid Jl. Setiabudi Semarang N00011 Nova Jl. Lamper Tengah N00021 Anisa Jl. Pedurungan N00022 Milan N00030 Astrid Jl. Pedurungan 1 no. nasabah saldo_simpanan N00001 10000000 N00003 15000000 N00004 5000000 N00006 7500000 N00011 11000000 N00021 2000000 N00022 1000000 N00030 1500000 no. nasabah saldo pinjaman N00001 1200000 N00003 10000000 N00004 5000000 N00006 3000000 N00011 1000000 N00021 N00022 2500000 N00030 Nasabah1=no.nasabah,Nama,alamat,kota (nasabah) Nasabah2=no.nasabah,saldo_simpanan (nasabah) Nasabah3=no.nasabah,saldo_pinjaman (nasabah) Nasabah=nasabah1 nasabah2 Nasabah3
Recovery dalam Sistem Terdistribusi Recovery lebih kompleks daripada sistem terpusat karena setiap simpul dapat berpartisipasi dalam pengeksekusian suatu transaksi. Kerusakan pada sistem terdistribusi Kerusakan suatu simpul Kehilangan paket/message pada transmisi data dalam jaringan Kerusakan dalam link komunikasi Pemisahan jaringan
Recovery Masing-masing simpul memiliki : Manajer Transaksi Mengelola eksekusi transaksi yang mengakses data di simpulnya sendiri, baik transaksi lokal ataupun global. Memelihara file log untuk keperluan recovery Disertakan dalam skema concurency control utk koordinasi pengeksekusian paralel dari transaksi-transkasi yang diberikan disuatu simpul. Koordinator Transaksi Mengkoordinasikan eksekusi berbagai transaksi (atas inisiatif simpul tersebut) Memulai eksekusi transaksi Memecah transaksi ke dalam beberapa subtransaksi dan mendistribusikannya ke simpul-simpul lain. Mengkoordinasikan penyelesaian transaksi (commit/aborted)
Kehandalan sistem Terdistribusi Dapat mendeteksi kegagalan yang terjadi kemudian mengkonfigurasi ulang sistem agar proses komputasi berlanjut dan memulihkan/recovery sistem pada saat sistem telah berfungsi normal. Prosedur konfigurasi ulang Jika data yg direplikasi disimpan pad simpul yg mengalami kerusakan, sistem mengabaikan data disimpul tersebut Jika ada transaksi aktif pada simpul yang mengalami kerusakan maka transaksi harus dibatalkan Jika kerusakan terjadi pada server utama, harus dilakukan pemilihan server utama yang baru.