Jangan suka meremehkan orang, terkadang rejekimu justru datang dari orang-orang yang pernah kamu remehkan.

Minggu, 16 September 2012

Distributed Database

DISTRIBUTED DATABASE
    
Disini saya akan menjelaskan tentang Distributed Database (DDB) atau Database Terdistribusi dari beberapa sumber yg saya baca. Database terdistribusi adalah sebuah database  logic  yang tersimpan secara fisik pada beberapa komputer yang terdapat pada beberapa lokasi dengan terkoneksi pada sebuah jaringan. Jaringan tersebut harus bisa menyediakan akses bagi user untuk melakukan sharing data. Terdapat dua macam sifat dari database terdistribusi yaitu Heterogenous dan Homogenous.Homogenous artinya suatu database terdistribusi dimana data di distribusikan pada beberapa komputer dengan menggunakan DBMS(database management system) yang sama. DBMS digunakan pada database terdistribusi untuk melakukan koordinasi data pada beberapa node. SedangkanHeterogenous adalah kebalikan dari Homogenous  dimana data di sebarkan dengan menggunakan DBMS yang berbeda.
Tujuan utama dari database terdistribusi menyediakan kemudahan untuk mengakses data bagi user pada banyak lokasi yang berjauhan. Untuk mencapai tujuan ini system dari database terdistribusi harus menyediakan apa yang di sebut  location transparency  yang artinya seorang user dalam mengakses data tidak akan terbatas pada tempat, di manapun dia berada user dapat mengakases data. Tujuan kedua dari database terdistribusi adalah  local autonomy, yaitu kemampuan untuk mengatur database local dan mengoperasikannya secara sendiri  –  sendiri jika terjadi error atau kerusakan pada koneksi antar komputer.  
Ada dua macam teknologi yang di gunakan untuk membangun sebuah database terditribusi. Yang pertama adalah synchronous distributed database technology dimana data yang terhubung pada suatu jaringan akan selalu ter-update sehingga user pada beberapa  tempat dapat mengakses data. Sedangkan teknologi yang lain yaitu  asynchronous distributed database technology  di mana system akan menyediakan suatu kopi dari replikasi data pada beberapa node sehingga local server dapat mengakses data tanpa harus keluar dari jaringan lokal. Metode yang biasa di gunakan yaitu  Replication  serta  circular Replication. 

Replikasi database 
Adapun salah satu cara untuk mendistribusikan database adalah dengan replikasi. Ada 5 keuntungan dari replikasi data yaitu :
1.     Reliability jika sebuah sistem yang menyimpan suatu database mengalami kerusakan maka sistem lain dapat menemukan kopi dari database yang di maksud pada node yang lain yang tidak mengalami kerusakan system karena database di simpan pada beberapa node.
2.      Fast response setiap situs mempunyai kopi dari database sehingga proses query data dapat berjalan lebih cepat.
3.     Node decoupling setiap transaksi data bisa di proses tanpa koordinasi antar jaringan sehingga jika sebuah node sibuk atau mengalami kesalahan maka akan ada sistem tersendiri yang menangani koordinas antar data. 
4.     Reduced network trafic at prime time kemampuan sistem untuk memindahkan transaksi database pada jaringan yang sedang tidak sibuk atau berfungsi dengan tidak sebagaimana mestinya.


Circular replication
Circular replication mengatasi kelemahan dalam replikasi data. Bila dalam replikasi biasa replikasi data hanya berjalan pada satu arah, maka pada circular replication replikasi data akan berlangsung secara circular .
Dalam Circular Replication, juga di sebut replikasi multi master, replikasi data tidak hanya berjalan satu arah, tapi ke semua simpul sehingga database pada semua simpul akan tetap sama. Tapi replikasi tidak akan terjadi pada simpul yang melakukan replikasi itu sendiri, hal ini di tangani oleh sintaks ‘replicate-same-server = 0’ pada file konfigurasi mysql. 
Hal – hal yang penting dalam pengaturan circular replication :
•  Server-id : pada masing – masing simpul, server-id harus unik
•  Replicate-do-db : bagi server slave perintah ini  digunakan untuk mendapatkan database yang di replikasi
•  Binlog-do-db  : bagi master perintah ini di gunakan untuk  mengirim database yang di replikasikan pada slave.
•  replicate-same-server-id : di gunakan bagi semua node sebagai tanda untuk tidak mereplikasi database pada diri 
    mereka sendiri
•  auto_increment_increment : mengontrol nilai iterasi pada setiap pelaksanaan nilai AUTO_INCREMENT
•  auto_increment_offset : nilai awal dari nilai kolom  AUTO_INCREMENT
•  master-host : Nomor IP dari  master
•  master-user : user yang di buat pada master yang di gunakan oleh slave untuk melakukan replikasi
•  master-passsword : password yang mengijinkan slave untuk melakukan replikasi data.

Hmmmm... kira-kira seperti itulah gambaran dasar dari sistem Database Terdistribusi. Yang menjadi tantangan adalah ketika salah satu sistem down, bagaimana sistem tersebut  dapat saling menggantikan atau membackup database yang sedang down tanpa mennyebabkan duplikasi data yang sama

Keuntungan Database Terdistribusi
Pengawasan distribusi dan pengambilan data
Jika beberpa site yg berbeda dihubungkan seorang pemakai yg berada pada satu site dapat mengakses data pada site lain.
Contoh : sistem distribusi pada sebuah bank memungkinkan seorang pemakai pada salah satu cabang dapat mengakses data cabang lain.
Reliability dan availability
Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site sendiri atau mata rantai komunikasi antar site.
Kecepatan pemrosesan query
Contoh : jika site-site gagal dalam sebuah sistem terdistribusi site lain dapat melanjutkan operasi jika data telah direplikasi pada beberapa site.
Otonomi lokal
Pendistribusian sistem mengijinkan sekelompok individu dalam sebuah perusahaan utk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.
Efisiensi dan fleksibe
Data dalam sistem distribusi dapat disimpan dekat dgn titik diman data tersebut dipergunakan. Data dapat secara dinamik bergerak atau disain atau salinan dapat dihapus.

Kerugian Database Terdistribusi
Harga software mahal
Hal ini disebabkan sangat sulit utk membuat sistem database distribusi.
Kemungkinan kesalahan lbh besar
Site-site beroperasi secara paralel sehingga lbh sulit utk menjamin kebenaran dan algoritma. Ada kesalahan mungkin tak dapat diketahui.
Biaya pemrosesan tinggi
Perubahan pesan dan penambahan perhitungan dibutuhkan utk mencapai koordinasi antar site.


Sekian dulu teman-teman semoga artikel ini bisa bermanfaat buat kita semua.

Tidak ada komentar:

Posting Komentar