Selasa, 13 Desember 2011

Distribusi Database Managemen System ( DDBMS )


      Sebuah distribusi database management system(DDBMS) adalah sebuah sistem perangkat lunak yang memungkinkan pengelolaan database terdistribusi dan membuat distribusi transparan kepada pengguna. Database terdistribusi adalah kumpulan beberapa, database secara logis saling didistribusikan melalui jaringan komputer. Kadang-kadang "didistribusikan sistem database" digunakan untuk merujuk bersama-sama ke database terdistribusi dan DBMS terdistribusi.
Salah satu contoh Replicate MySQL

 
      Replicate atau replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database ke database lain dan melaksanakan sinkronisasi antardatabase sehingga konsistensi data dapat terjamin. Jadi, dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai dengan penggunaannya, seperti pemrosesan transaksi online dan DSS (Decision Support System) atau pemrosesan database terdistribusi melalui beberapa server.
      Dengan menggunakan teknik ini, kehandalan database akan lebih terjamin karena data dapat didisitribusikan ke server-server yang lain. Misalnya seperti transaksi yang terjadi pada Bank, apa yang akan terjadi jika Bank hanya memiliki sebuah database server, apabila pada database server tersebut terjadi kerusakan atau padamnya arus listrik? Pasti transaksi perbankan akan berhenti total. Hal ini tidak demikian terjadi jika kita menggunakan database terdistribusi yang pada setiap transaksi juga direplikasi ke server yang lain.
Terdapat beberapa jenis replikasi akan tetapi yang akan kita bahas di sini hanya sebuah teknik replikasi sederhana saja. Replikasi dapat dilakukan dengan jumlah komputer minimal dua buah, satu buah master dan satu buah slave. Komputer slave akan mengkopi secara otomatis setiap perubahan database yang terjadi pada komputer master.Cara membuat replikasi MySQL di sini hanya bisa digunakan untuk MySQL versi 5.1.x atau di bawah ver si 5.2.x. Jika anda menggunakan MySQL versi yang lebih baru, ada kemungkinan gagal.
      Tujuan dasar dari replikasi adalah menjaga data suatu server yang disinkronkan dengan server yang lain. Banyak slave yang dapat dihubungkan ke master tunggal, dan pada suatu waktu slave bisa dipromosikan sebagai master. Replikasi dapat mengatur master dan slavedengan banyak topologi yang berbeda. Replikasi dapat meniru basis data seluruh server, mereplika basis data tertentu, atau bahkan hanya memilih tabel yang ingin replikasi.

Ada empat alasan umum yang mendasari kenapa harus menggunakan replikasi, yaitu:
  1. Untuk membuat sebuah server basis data  siaga. Jika server utama gagal, maka server siaga dapat mengambil alih tugas server utama.
  2. Untuk mengaktifkan backup tanpa harus mematikan server utama.  Setelah terjadi replikasi, backup dilakukan pada slave, bukan pada master. Dengan cara ini, masterdapat dibiarkan untuk melakukan tugasnya tanpa gangguan.
  3. Untuk menyimpan data saat ini di beberapa lokasi. Replikasi diperlukan jika beberapa cabang dari suatu organisasi harus bekerja dari salinan terbaru dari basis data yang sama.
  4. Untuk menyeimbangkan beban kerja beberapa server. Sehingga memungkinkan untuk membuat replika dari satu basis data pada beberapa server, replikasi dapat membantu meringankan beban kerja dari server basis data tunggal yang kelebihan beban dengan memecah query antara beberapa server, masing-masing berjalan pada perangkat keras terpisah. (Vaswani, 2010).
1. KONFIGURASI KOMPUTER DATABASE MASTER

a. Menyeting IP ADDRESS: 192.168.2.2 pada komputer Master.
b. Setelah itu buatlah sebuah database dengan nama sekolah, sebuah tabel dengan nama siswa dan isikan dua buah data atau terserah pada tabel tersebut.
c. Matikan service MySQL, buka teks editor misalnya: Notepad++ dan buka file yang terletak pada direktori mysql\bin\my.cnf. Jika anda menggunakan XAMPP seperti saya, anda bisa membuka file tersebut di direktori C:\xampp\mysql\bin\my.cnf
d. Tepat di bawah section [mysqld] tambahkan baris berikut
log-bin= mysql-bin
server-id= 1
binlog-do-db= sekolah
log-slave-updates

e. Kemudian buatlah akses user slave ke database master, misalnya dengan nama slave_user dengan perintah sebagai berikut
mysql> grant replication slave on *.* to ‘slave_user’@'%’ identified by ‘asdf’;
(asdf adalah passwordnya)
mysql> flush privileges;
f. Kemudian berikan hak akses kepada user tersebut agar dapat menggunakan database pada master, dengan perintah sebagai berikut
mysql> grant all on *.* to ‘slave_user’@'%’ identified by ‘asdf’;
mysql> flush privileges;

g. Lihat status log pada master, tetapi sebelumnya lock dulu tabelnya, perintahnya sebagai berikut
mysql> flush tables with read lock;
mysql> show master status;

Pada table akan terlihat File dan Position catat baik-baik nama file dan posisinya. Kemudian ketikkan perintah untuk meng-unlock tabel kembali
mysql> unlock table;

2. KONFIGURASI KOMPUTER DATABASE SLAVE

a. Menyeting IP ADDRESS: 192.168.2.3 pada komputer slave.
b. Menyeting my.cnf pada databse slave, tepat di bawah section [mysqld] tambahkan baris:
server-id= 2
master-host= 192.168.2.2
master-user= budak_user
master-password= asdf
master-connect-retry= 30
replicate-do-db= sekolah
c. Start service MySQL dan copykan database yang terdapat di master dengan perintah
mysql> load data from master;
d. setelah berhasil maka database master (sekolah) akan terkopi semua ke slave.
e. Kemudian melakukan setting replikasi pada slave. Sebelum melakakukan setting replikasi pada slave sebaiknya menonaktifkan slave terlebih dahulu dengan perintah
mysql> slave stop;
mysql> change master to master_host=’192.168.2.2′,
-> master_user=’budak_user’,
-> master_password=’asdf’,
-> master_log_file=’mysql-bin.000001′,
 <- isikan sesuai dengan file log masternya
-> master_log_pos=106; <- isikan sesuai dengan posisi log masternya
(baca kembali langkah 1 g.)
f. Aktifkan slave dengan perintah mysql> slave start;
g. Cek status slave dengan perintah mysql> show slave status\G; dan melihat padaslave_io_running = yes dan slave_sql_running = yes, berarti slave telah berjalan dengan baik.

Aplikasi DDBMS Menggunakan MY SQL atau Basis Data Terdistribusi


Sistem terdistribusi dalam basis data disimpan pada beberapa komputer. Komputer pada sistem terdistribusi berkomunikasi satu sama lain melalui media komunikasi seperti jaringan berkecepatan tinggi atau telpon. Mereka tidak berbagi memori atau disk. Komputer pada sistem terdistribusi bisa berfariasi dalam hal ukuran dan fungsi serta berkisar dari sistem workstation hingga mainframe.
            Komputer pada sistem terdistribusi bisa disebut situs atau node tergantung pada konteknya. Istilah situs digunakan untuk menyatakan distribusi fisik sistem. Sebuah sistem basis data terdistribusi berisi sekumpulan situs dimana tiap-tiap situs dapat berpartisipasi dalam pengeksekusian transaksi-transaksi yang mengakses pada satu atau beberapa situs.
Basis data terdistribusi sering terpisah secara geografis, diatur terpisah dan mempunyai interkoneksi yang lambat. Sistem basis data terdistribusi memiliki transaksi lokal dan global. Transaksi lokal adalah transaksi yang mengakses data hanya dari situs dimana transaksi dilakukan. Kemudian transaksi global adalah transaksi yang mengakses data pada situs yang berbeda dari situs transaksi dilakukan atau pada beberapa situs berbeda.Arsitektur yang dilakukan adalah sistem basis data terdistribusi karena

  • Data bersama, aturan suatu lingkungan dimana pengguna pada satu situs bisa mengakses data pada situs lainnya.
  • Otonomi, masing-masing situs dapat mempertahankan kontrol terhadap data yang disimpan terhadap data.
  • Ketersedian, jika satu situs gagal pada suatu sistem terdistribusi, maka situs lainnya melanjutkan operasi. Apalagi jika datanya disimpan pada beberapa situs, Sebuah transaksi yang memerlukan data tertentu bisa mencarinya pada sembarang situs lain. Oleh karena itu kegagalan satu situs tidak mengakibatkan sistem berhenti.

    kali ini saya akan meriview aplikasi DDBMS dengan menggunakan MY SQL
    Keistimewaan MySQL
    MySQL memiliki beberapa keistimewaan, antara lain :
    Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
    Open Source.MySQL didistribusikan secara open source, dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
    'Multiuser'. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
    'Performance tuning'. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
    Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
    Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
    Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses userdengan sistem perizinan yang mendetail serta sandi terenkripsi.
    Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
    Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
    Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
    Antar Muka. MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
    Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
    Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle

    Contoh Kasus dan implementasi MY sql


Contoh Basis Data terdistribusi Pada SI Kependudukan
Misalkan sebuah daerah terdiri atas empat desa masing-masing desa memiliki komputer yang menangani data kependudukan pada desa. Masing-masing computer merupakan sebuah lokasi  kemudian ada satu lokasi yang menangani tentang data kependudukan semua desa. Masing-masing desa menangani skema kependudukan:


skema – kependudukan = (nomor_ktp, alamat, nama_desa)
Lokasi yang mempunyai tentang menangani skema-desa:
   Skema – desa = (jumlah_penduduk, nama_desa, kota)
Contoh untuk menggambarkan perbedaan antara dua tipe kependudukan, lokal dan global pada satu daerah adalah menambah data penduduk pada sebuah desa. Jika penambahan dilakukan di desa maka ini dianggap lokal jika tidak dianggap global. Sebaliknya untuk sebuah kependudukan dimana seseorang akan pindah dari desa A ke desa B. Orang tersebut meminta KTP baru di desa B, karena yang harus diakses terletak pada dua lokasi berbeda.
   Pada sistem basis data terdistribusi yang ideal, lokasi akan berbagi skema global. Semua lokasi akan menjalankan software DBMS terdistribusi yang sama dan masing-masing lokasi akan mengetahui keberadaan lokasi yang lainnya. Jika dibangun dari awal sebuah basis data terdistribusi yang mungkin dapat mencapai tujuan di atas. Namun ,dalam kenyataannya basisdata terdistribusi harus dibuat dengan menggabungkan beberapa sistem basis data yang sudah ada, masing-masing dengan skemanya sendiri dan mungkin menjalankan DBMS berbeda. Sistem semacam ini kadang disebut sistem multi basisdata atau sistem basisdata teridstribusi heterogen.