DATABASE
(CCS120)
DATABASE TERDISTRIBUSI
DISUSUN OLEH
2020
BAB XIII
Database Terdistribusi
Tujuan
Teori
Pada sistem basis data terdistribusi, data di simpan tersebar di beberapa tempat.
Setiap tempat penyimpanan dikelola oleh suatu DBMS yang mandiri. Agar tampilan
view basis data terdistribusi transparan, maka harus memenuhi dua hal, yaitu:
Independensi data terdistribusi
Pemakai tidak perlu mengetahui dimana data berada (merupakan
pengembangan prinsip independensi data fisik dan logika).
Atomisitas transaksi terditribusi
Pemakai dapat menulis transaksi yang mengakses dan mengubah data pada
beberapa tempat seperti mengakses transaksi local.
1
Dengan independensi data terdistribusi, pengguna dapat melakukan query secara
sederhana tanpa menyebutkan tempat data atau replika data atau fragmen data itu
disimpan. Ini memenuhi prinsip independensi data fisik dan data logik atau data
logik tidak tergantung data fisik. Lebih jauh lagi proses query juga harus sudah
memperhitungkan biaya antara penyimpanan data fisik melalui komunikasi data atau
disimpan sebagai data lokal (replika).
Walaupun secara umum kedua hal tersebut harus dipenuhi, tetapi pada situasi jika
terjadi lalu lintas data yang padat dan terjadi kelambatan transmisi, maka diperlukan
mekanisme khusus untuk menanganinya yang berkaitan dengan overhead
administrasi dan performansi DBMS.
Terdapat tiga pendekatan alternatif untuk membagi fungsi pada proses DBMS yang
berbeda. Dua arsitektur alternatif DBMS terdistribusi adalah Client/Server dan
Collaboration Server.
2
Client-Server
Sistem client-server mempunyai satu atau lebih proses client dan satu atau
lebih proses server, dan sebuah proses client dapat mengirim query ke
sembarang proses server seperti pada Gambar 13.1 Client bertanggung
jawab pada antar muka untuk user, sedangkan server mengatur data dan
mengeksekusi transaksi. Sehingga suatu proses client berjalan pada sebuah
personal computer dan mengirim query ke sebuah server yang berjalan pada
mainframe.
Pada saat menulis aplikasi client-server, perlu diingat batasan antara client
dan server dan untuk menjaga komunikasi antara keduanya yang berorientasi
himpunan. Khususnya membuka kursor dan mengambil tupel pada satu
waktu membangkitkan beberapa pesan dan dapat diabaikan.
Collaboration Server
Arsitektur client-server tidak mengijinkan satu query mengakses banyak
server karena proses client harus dapat membagi sebuah quer ke dalam
beberapa subquery untuk dieksekusi pada tempat yang berbeda dan
3
kemudian membagi jawaban ke subquery. Proses client cukup komplek dan
terjadi overlap dengan server; sehingga perbedaan antara client dan server
menjadi jelas. Untuk mengurangi perbedaan diguankan alternatif arsitektur
client-server yaitu sistem Collaboration Server. Pada sistem ini terdapat
sekumpulan server basis data, yang menjalankan transaksi data lokal yang
bekerjasama mengeksekusi transaksi pada beberapa server seperti pada
Gambar 13.2.
Jika server menerima query yang membutuhkan akses ke data pada server
lain, sistem membangkitkan subquery yang dieksekusi server lain dan
mengambil hasilnya bersama-sama untuk menggabungkan jawaban menjadi
query asal.
4
Setiap situs menyerahkan bagian dari otonomi dalam hal hak untuk
mengubah skema atau perangkat lunak pengguna sebagai sistem tunggal.
5
Jenis Database Terdistribusi
Kunci keberhasilan membangun sistem yang heterogen adalah pada
standarisasi protocol gateway.
Protokol gateway dalah API (Application Programming Interface) yang
memungkinkan DBMS berfungsi untuk aplikasi eksternal, sebagai contoh
seperti: ODBC dan JDBC.
Akses basis data terdistribusi melalui protocol gateway menjadi mungkin,
karena perbedaan format data dan perbedaan antar server dijembatani.
Sistem Client-Server:
Memiliki satu atau banyak proses pada client dan satu atau banyak proses
pada server. Client berurusan dengan antarmuka dengan user dan server
mengelola data dan eksekusi transaksi.
Arsitektur ini populer, karena relative sederhana untuk di implementasikan
karena ada pemisahan fungsi yang jelas dan server yang tersentralisasi.
Biaya yang tinggi hanya untuk satu server, selain pengguna akan lebih
nyaman menggunakan antar muka grafis pada client.
Untuk memperlancar layanan server dan mengurangi overhead komunikasi,
maka diperlukan caching pada server.
7
Gambar 13.5 Distribusi Data dan Replikasi diantara Database Terdistribusi
8
Penyimpanan Data pada DBMS
Pada DBMS terdistribusi relasi disimpan pada beberapa tempat yang berbeda
(sites/nodes).
Akses ke relasi secara remote menimbulkan biaya kirim pesan, oleh karena
itu untuk mengurangi biaya satu relasi dipartisi atau dibuat fragmen atau
replica yang di-assign tersebar pada beberapa site sedemikian sehingga
penyimpanan dilakukan berdasarkan frekuensi penggunaan lokal, agar biaya
overhead komunikasi berkurang.
Informasi yang berhubungan dengan fragmentasi, alokasi dan replikasi data
disimpan dalam sebuah global directory yang di akses oleh aplikasi DDBMS.
Fragmentasi:
Framentasi dari data dalam bentuk fragmen data yang disimpan pada tempat
yang berbeda, ada dua kemungkinan, yaitu fragmentasi horizontal dan
fragmentasi vertikal.
o Fragmen vertikal:
Terdiri dari fragmen atribut (kolom) untuk semua record
Frekuensi akses data: dibuat berdasarkan jenis atribut (kolom)
tertentu
o Fragmen horizontal:
Terdiri dari fragmen record (baris) untuk semua atribut
Frekuensi akses data: dibuat berdasarkan salah satu atribut
(kolom) dengan nilai tertentu.
9
Contoh Horizontal Fragmentation
Account1 = σbranch_name = “Hillside” (account)
Sebuah skema rekening bank memiliki suatu relasi Account-schema =
(branch-name, account-number, balance).
Ia dilakukan fragmen hubungan dengan location dan store setiap fragmen
secara lokal: record dengan branch-name = `Hillside` disimpan di Hillside
disebuah fragmen
Disadvantages:
Kinerja mungkin lebih lambat
Integritas lebih sulit
10
Replikasi:
Replika adalah hasil replikasi satu relasi data atau fragmen relasi yang dapat
disimpan pada lebih dari satu tempat, jumlah replica fragmen relasi tidak harus sama
untuk satu relasi.
11
Keuntungan Replication
Ketersediaan:
Kegagalan database pada lokasi yang berisi relasi r tidak mengakibatkan
tidak tersedianya r ini karena ada replika.
Paralelisme:
Query pada r dapat diproses oleh beberapa node secara paralel.
Transfer data berkurang:
Relasi r tersedia secara local ditiap lokasi yang berisi replica r.
Transaksi Terdistribusi
Pada sistem terdistribusi, transaksi dapat dilakukan pada suatu tempat tetapi
dapat akses data ditempat lain.
Setiap transaksi dipecah menjadi beberapa subtransaksi yang dijalankan
secara tersebar melalui manajer transaksi pada setiap tempat sub-transaksi
dijalankan untuk di koordinasikan.
12
Untuk kasus control proses yang terjadi bersamaan (konkuren), maka ada
mekanisme penguncian objek yang digunakan yang ada ditempat lain, juga
bagaimana cara mendeteksi jika terjadi deadlock.
Pengelolaan penguncian objek yang terdistribusi dapat dilakukan dengan
beberapa cara, yaitu secara terpusat (sentralisasi), replica primer dan
terdistribusi penuh.
Pada cara terpusat, penanganan penguncian dilakukan dari satu tempat.
Pada cara replica primer, penanganan penguncian dilakukan pada tempat
replica primer berada.
Dan padacaraterdistribusipenuh, maka penanganan penguncian dilakukan
pada tempat replica yang akan dikunci.
Cara ketiga ini lebih banyak digunakan.
Query Terdistribusi
Misalnya pada dua relasi:
Sailors(sid: integer, sname: string, rating: integer, age: real)
Reserves(sid: integer, bid: integer, day: date, rname: string)
14
Latihan
15