Bismillah...

Sistem Data Terdistribusi

Kumpulan data yang digunakan bersama yang saling terhubung secara logis tetapi tersebar secara fisik (di beberapa lokasi) pada suatu jaringan computer (dihubungkan melalui jaringan komunikasi data).

Karakteristik database terdistribusi yaitu :
1. Kumpulan data yang digunakan bersama secara logic tersebar pada sejumlah computer yang berbeda
2. Komputer yang dihubungkan menggunakan jaringan komunikasi.
3. Data pada masing-masing situs  dapat menangani aplikasi-aplikasi local secara otonom.
4. Data pada masing situs di bawah kendali satu DBMS.
5. Masing-masing DBMS berpartisipasi dalam sedikitnya satu aplikasi global.

Bentuk-bentuk Topologi Distribusi Data :
a. Fully Connected Network : Kalau salah satu node rusak, yang lainnya masih dapat berjalan (biaya mahal), kontrol manajemen tidak terjamin.
b. Partialy Connected Network : Reliability rendah, biaya dapat ditekan Kontrol manajemen tidak terjamin.
c. Tree Structured Network : Bersifat sentral, control manajemen lebih terjamin Kalau node pusat rusak, semua akan  rusak. (setiap proses dimulai dari bawah).
d. Ring Network : Rusak satu, yang lain masih berjalan Kontrol manajemen kurang terjamin karena bersifat dsesentralisasi.
e. Star Network : Rusak satu, yang lain masih berjalan Kontrol manajemen kurang terjamin karena bersifat dsesentralisa

Keuntungan :
1. Pengawasan distribusi dan pengambilan data : Jika beberpa site yang berbeda dihubungkan, seorang pemakai yang berada pada satu site dapat mengakses data pada site lain.
2. Reliability dan availability : Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site sendiri atau mata rantai komunikasi antar site.
3. Kecepatan pemrosesan query
Contoh : jika site-site gagal dalam sebuah  sistem terdistribusi, site lainnya dapat melanjutkan operasi jika data telah direplikasi pada beberapa site.
4. Otonomi lokal : Pendistribusian sistem mengijinkan  sekelompok individu dalam sebuah perusahaan untuk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.
5. Efisiensi dan fleksibel : Data dalam sistem distribusi dapat  disimpan dekat dengan titik diman data tersebut dipergunakan. Data dapat secara dinamik bergerak atau disain, atau salinannya dapat dihapus.

Kerugian :
1. Harga software mahal : Hal ini disebabkan sangat sulit untuk membuat sistem database distribusi.
2. Kompleksitas : Site-site beroperasi secara paralel sehingga lebih sulit untuk menjamin kebenaran dan algoritma. Adanya kesalahan mungkin tak dapat diketahui.
3. Biaya pemrosesan tinggi : Perubahan pesan dan penambahan perhitungan dibutuhkan untuk mencapai koordinasi antar site.
4. Sulit menjaga keutuhan data : Banyaknya pengaksesan data membuat kurangnya sekuritas terhadap data yang telah terdistribusi.
5. Kurangnya standar : tidak ada tool atau metodologi untuk membantu user mengubah database terpusat ke database terdistribusi.
6. Kurang pengalaman : sistem DB terdistribusi bertujuan  umum (generalpurpose) tidak sering digunakan. Yang digunakan adalah sistem prototype yang dibuat untuk satu aplikasi (misal : reservasi pesawat) 
7. Perancangan basis data lebih kompleks : Sebelumnya menjadi keuntungan. Tetapi karena  distribusi menyebabkan masalah sinkronisasi dan koordinasi, kontrol terdistribusi menjadi kerugian atau kekurangan di masalah ini.

Jenis Aplikasi
• Aplikasi lokal: aplikasi yang tidak memerlukan data dari tempat lain
• Aplikasi global: aplikasi dengan kebutuhan akan data dari tempat lain

Database terdistribusi membutuhkan DBMS terdistribusiType DBMS Teridtribusi
Homogen :semua site menggunakan product DBMS yang sama
Heterogen : setiap tempat yang berbeda menjalankan DBMS yang berbeda, baik Relational DBMS (RDBMS) atau non relational DBMS

Penyimpanan Data pada Sistem Terdistribusi :
1. Replikasi
• Sistem memelihara beberapa salinan (copy)
• Setiap salinan disimpan di beberapa lokasi yang berbeda
• Dalam kasus yang ekstrim kita juga bisa memiliki replikasi penuh (full replication), dimana sebuah salinan dari relasi r dapat disimpan pada setiap lokasi
• Availability (replikasi ada di lebih dari satu site)
Keuntungan :
sistem dapat melanjutkan proses meskipun satu site mengalami kegagalan)
• Meningkatkan pemrosesan parallel (relasi dapat ditemukan di lokasi dimana transaksi sering dieksekusi, meminimalkan perpindahan data antar
lokasi)
• Meningkatnya Overhead terhadap up-date >  up-date harus disebarkan ke seluruh lokasi yang berisi replikasi
Lebih cocok untuk data yang hanya dibaca (read-only) tidak diubah

Kelemahan :
• Meningkatnya Overhead terhadap up-date > up-date harus disebarkan ke seluruh lokasi yang berisi replikasi
• Pengontrolan konkurensi update data yang direplikasi semakin kompleks
Solusi : membuat salinan utama dari relasi
Contoh : di sistem perbankan, rekening dapat dihubungkan dengan site dimana rekening tersebut dibuka

Strategi :

• Sinkron : Proses transaksi update, Data yang telah dimodifikasi disinkronkan ke setiap duplikatnya,  harus menunggu (jika penyimpanan duplikat selesai baru dilakukan perubahan lainnya)
• Asinkron : Copy data diperbaharui secara periodik, Tidak perlu menunggu penulisan data di tempat penyimpanan duplikat selesai (meningkatkan kinerja sistem namun risikonya, inkonsistensi data bisa terjadi)

2. Fragmentasi
Adalah relasi dipartisikan ke dalam beberapa bagian, setiap bagian disimpan pada lokasi yang berbeda
Alasan-alasan diperlukannya fragmentasi :
1. Penggunaan umumnya aplikasi bekerja dengan  tabel views dibandingkan dengan semua hubungan data. Oleh karenanya untuk distribusi data , yang cocok digunakan adalah bekerja dengan subset dari sebuah relasi sebagai unit dari distribusi.
2. Efisiensi : data disimpan dekat dengan yang menggunakan. Dengan tambahan data yang tidak sering digunakan tidak usah disimpan.
3. Pararelisme : dengan fragmen-fragmen tersebut sebagai  unit dari suatu distribusi,sebuah transaksi dapat di bagi  kedalam beberapa  sub queri yang dioperasikan pada fragmen tersebut. Hal ini meningkatkan konkurensi atau paralelisme dalam sistem, sehingga memeperbolehkan transaksi mengeksekusi secara aman dan paralel.
4. Keamanan : data yang tidak dibutuhkan oleh aplikasi tidak disimpan dan konsukuen tidak boleh di ambil oleh pengguna yang tidak mempunyai otoritas.

Kerugian :
1. Kinerja : cara kerja dari aplikasi yang membutuhkan data dari beberapa lokasi fragmen di beberapa situs akan berjalan dengan lambat.
2. Integritas : pengawasan inteegritas  akan lebih sulit jika data dan fungsional ketergantungan di fragmentasi dan dilokasi pada beberapa situs yang berbeda.

Beberapa peraturan yang harus diidentifikasikan ketika mendefinisikan frgment :
1. Kondisi lengkap : jika relasi contoh R di dekomposisi ke dalam fragment R1 , R2 ,R3 , … Rn , masing-masing data yang dapat ditemukan pada relasi R harus muncul paling tidak di salah satu fragmen. Aturan ini di perlukan untuk meyakinkan bahwa tidak ada data yang hilang selama fragmentasi
2. Rekonstruksi : Jika memungkinkan untuk mendefinisikan operasional relasi yang akan dibentuk kembali relasi R dari fragmen-fragmen. 
Aturan ini untuk meyakinkan bahwa fungsional ketergantungan di perbolehkan
3. Disjointness : Jika item data di  muncul pada fragment Ri , maka tidak boleh muncul di fragmen yang lain. Vertikal fragmentasi diperbolehkan untuk aturan yang satu ini, dimana kunci utama dari atribut harus diulanmg untuk melakukan rekonstruksi. Aturan ini untuk meminimalkan redudansi.

Jenis Fragmentasi :
   > Horisontal : Setiap fragmen terdiri dari sebuah subset baris dari relasi asal,  Baris-baris tabel data tersebar
  Keuntungan :
  • Efisiensi: Data disimpan di lokasi yang dekat dengan aplikasi yang menggunakannya
  • Peningkatan kinerja: optimasi akses data lokal
  • Keamanan: hanya menyediakan data yang relevan /dibutuhkan
  • Kemudahan query: penggabungan (union) hasil query dari berbagai partisi
  Kelemahan : Kecepatan akses tidak konsisten: tergantung lokasi data yang digunakan, Tidak ada backup: tidak ada duplikat data

   > Vertikal : setiap fragment terdiri dari sebuah subset kolom dari relasi asal, dibuat dengan menambahkan atribut khusus yaitu tuple-id, yang merupakan alamat fisik atau logika untuk tupel dan menjadi kunci pada skema. Tetapi tuple-id tidak diperlihatkan ke user,  Kolom-kolom tabel data tersebar
  Keuntungan : Hampir sama dengan Partisi Horisontal, hanya saja penggabungan data (hasil query) antar partisi lebih sulit karena membutuhkan operasi join (tidak bisa union)

   > Fragmentasi campuran
Cara yang sederhana untuk membangun fragmentasi campuran adalah :
a. Menggunakan fragmentasi horizontal pada fragmentasi vertical


b. Menggunakan fragmentasi vertical pada fragmentasi horizontal


Ilustrasi