Anda di halaman 1dari 16

MODUL

DATABASE

(CCS120)

MODUL SESI XIII

DATABASE TERDISTRIBUSI

DISUSUN OLEH

NOVIANDI, S.Kom, M.Kom

UNIVERSITAS ESA UNGGUL

2020
BAB XIII
Database Terdistribusi

Tujuan

1. Struktur data terdistribusi


2. Keuntungan dan kerugian database terdistribusi
3. Pemrosesan query terdistribusi
4. Recovery terdistribusi
5. Concurrency control terdistribusi

Teori

 Sistem Komputasi Terdistribusi adalah sejumlah elemen proses yang


terkoneksi melalui jaringan komputer dan saling bekerjasama dalam
melakukan suatu tugas.
 Basis Data Teridistribusi adalah kumpulan basis-basis data yang saling
berhubungan secara logika dan tersebar pada sebuah jaringan komputer.
 Sistem Manajemen Basis Data adalah sebuah sistem software yang
mengelola basis data terdistribusi.

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).

Dengan atomisitas transaksi terdistribusi pengguna harus dapat melakukan


transaksi tulis, update atau akses data terhadap data terdistribusi, seolah-olah data
disimpan secara lokal.

Efek transaksi terhadap data terdistribusi harus bersifat atomik, yaitu:


 Perubahan secara persisten terhadap data remote dan data lokal, jika
transaksi telah commit, atau
 Tidak terjadi perubahan sama sekali jika transaksi gagal (tidak dapat commit).

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 dua tipe basis data terdistribusi:


 Homogen: yaitu sistem dimana setiap tempat menjalankan tipe DBMS yang
sama
 Heterogen: yaitu sistem dimana setiap tempat yang berbeda menjalankan
DBMS yang berbeda, baik Relational DBMS (RDBMS) atau non relational
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.

Gambar 13.1 Sistem Client-Server

Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama,


implementasi yang relatif sederhana karena pembagian fungis yang baik dan
karena server tersentralisasi. Kedua, mesin server yang mahal utilisasinya
tidak terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal.
Ketiga pemakai dapat menjalankan antarmuka berbasis grafis sehingga
pemakai lebih mudah dibandingkan antar muka pada server yang tidak user-
friendly.

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.

Gambar 13.2 Collaboration System

Jenis Database Terdistribusi



 Jika DBMS yang menangani data untuk semua server sejenis, maka sistem
database tersebut disebut sebagai sistem database terdistribusi homogen,
tetapi
 Sebaliknya jika DBMS yang menangani data terdistribusi beragam, maka
disebut sistem database terdistribusi heterogen atau disebut juga sebagai
sistem multi database.

Sistem database terdistribusi homogen


 Semua pihak/lokasi memiliki perangkat lunak yang identic
 Mereka mengenali satu samalain dan setuju untuk bekerja sama dalam
mengolah permintaan pengguna

4
 Setiap situs menyerahkan bagian dari otonomi dalam hal hak untuk
mengubah skema atau perangkat lunak pengguna sebagai sistem tunggal.

Gambar 13.3 Sistem database Terdistribusi Homogen

 Sebuah sistem terditribusi menghubungkan tiga database: Headquarters,


Manufacturing, dan Sales.
 Sebuah aplikasi secara bersama dapat mengakses atau memodifikasi data
dalam beberapa database dalam lingkungan terdistribusi tunggal.

Sistem database terdistribusi heterogen


 Dalam sistem database terdistribusi heterogen, setidaknya salah satu
database menggunakan skema dan perangkat lunak yang berbeda.
 Sebuah sistem database yang memiliki skema yang berbeda dapat
menyebabkan masalah besar bagi pemrosesan query.
 Sebuah sistem database yang memiliki perangkat lunak yang berbeda dapat
menyebabkan masalah besar bagi proses transaksi.
 Setiap pihak mungkin tidak mengenal satu sama lain dan mungkin hanya
memberikan Fasilitas terbatas untuk kerjasama dalam proses transaksi

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.

Arsitektur Database Terdistribusi


Terdapat tiga alternative pendekatan untuk membedakan fungsi DBMS,yaitu:
1. Client-server
2. Kolaborasi server
3. Middleware

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.

Sistem kolaborasi server:


 Pada sistem client server tidak memungkinkan satu query pada client
dijalankan oleh multiple server, karena tidak ada mekanisme kolaborasi antar
server.
 Pada sistem kolaborasi server: query didekomposisi menjadi sub-query dan
disebar ke server yang berbeda sesuai fungsinya.
 Secara ideal nya dekomposisi sub-query harus memperhatikan biaya
komunikasi jaringan dan biaya pengolahan lokal.
6
Sistem middleware:
 Sistem middleware di rancang untuk memungkinkan satu query dijalankan
pada multiple server dengan server-server basis data tidak mengelola
eksekusi pada multitempat.
 Untuk koordinasi sub-query dan eksekusi join dilakukan oleh perangkat lunak
tersendiri yang disebut middleware.

Gambar 13.4 Database system architectures

Keuntungan database terdistribusi


 Manajemen data terdistribusi dengan tingkat transparansi yang berbeda
 Keandalan dan ketersediaan
 Peningkatan performa
 Ekspansiyang lebih mudah

7
Gambar 13.5 Distribusi Data dan Replikasi diantara Database Terdistribusi

Fungsi tambahan database terdistribusi


 Keeping track of data
 Prosesquery yang terdistribusi
 Manajemen transaksi yang terdistribusi
 Manajemen replikasi data
 Pemulihan basis data terdistribusi
 Keamanan
 Manajemen direktori (katalog) terdistribusi

Perbedaan DDBMS dengan Sistem Central:


Hardware
 Ada banyak computer yang disebut sites atau nodes.
 Site-site ini terhubung oleh jaringan komunikasi untuk mengirim data dan
perintah-perintah diantara site-site tersebut.

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.

Gambar 13.6 Contoh Fragmentasi Vertikal dan Horizontal

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

Untuk menjamin fragmentasi vertikal lossless-join, sistem harus menyediakan id


tupel yang unik untuk setiap tupel dalam relasi asli. Jika kita berpilir bahwa relasi
asal sebagai field yang berisi tambahan tupel-id sebagai kunci, field ini ditambahkan
ke setiap fragmen vertikal. Sehingga dekomposisi dijamin lossless-join.

Mengapa menggunakan Fragmentation?


 Penggunaan dalam aplikasi umum menggunakan view sehingga tepat untuk
bekerja dengan subset / himpunan
 Efisiensi data disimpan dekat dengan tempat yang paling sering digunakan
 Paralelisme transaksi dapat dibagi menjadi beberapa sub-query untuk
meningkatkan tingkat konkurensi
 Keamanan data lebih aman hanya disimpan ketika dibutuhkan

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.

Gambar 13.7 Replikasi


Contoh:
Jika relasi R dijadikan tiga fragmen R1, R2, R3, mungkin R1 tidak dibuat
replikanya, tetapi R2 dibuat replica disatu tempat lain dan R3 dibuat replica
disemua tempat.

Tujuan replikasi ada dua motivasi, yaitu:


 Meningkatkan availabilitas data, dan
 Mempercepat evaluasi query jika ada replica fragmen atau satu relasi pada
tempat lokal.

Motivasi untuk replikasi adalah :


 Meningkatkan ketersediaan data : Jika sebuah tempat yang berisi replica
melambat, kita dapat menemuka data yang sama pada tempat lain. Demikian
pula, jika copy lokal dari relasi yang diremote tersedia, maka tidak
terpengaruh saluran komunikasi yang gagal.
 Evaluasi query yang lebih cepat : query dapat mengeksekusi lebih cepat
menggunakan copy local dari relasi termasuk ke remote site.

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.

Replikasi dan Alokasi Data


 Berguna untuk meningkatkan ketersediaan data.
 Kasus paling ekstrim:
Replikasi keseluruhan basis data pada setiap site dalam sistem terdistribusi
→ fully replicated distributed database
 Keuntungan:
Sistem terus beroperasi selama paling tidak satu site tetap berjalan
 Kelemahan:
Operasi update menjadi lambat
 Kasus paling ekstrimlainnya: tidak ada replikasi

Contoh kasus khusus replikasi partial:
 Untuk pekerja yang mobile – seperti sales rep, financial planners dan claim
adjustors – mereka membawa basis data replikasi dalam laptop atauPDA dan
melakukan sinkronisasi secara periodic dengan server basis data.
 Masing-masing fragmen atau salinan dari sebuah fragmen harus di assign ke
site tertentu dalam sistem terdistribusi. Proses ini disebut distribusi data (atau
alokasi data)

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.

Manajemen Katalog Terdistribusi


Menyimpan data terdistribusi pada beberapa tempat dapat menjadi sangat
kompleks. Kita harus menyimpan data bagaimana relasi difragmentasi dan replikasi,
bagaimana fragmen relasi didistribusikan ke beberapa tempat dan dimana kopi dari
fragmen disimpan. Nama setiap replika dari setiap fragmen harus ada. Untuk
menyediakan otonomo lokal digunakan format sebagai berikut:
<local-name, birth-site>
Katalog setiap tempat menggambarkan semua obyek (fragmen, replika) pada suatu
tempat dan menyimpan data replika dari relasi yang dibuat pada tempat tersebut.
Untuk menemukan relasi, lihat pada katalog birth-site. Birth-site tidak pernah
berubah meskipun relasi dipindahkan.

Query Terdistribusi
Misalnya pada dua relasi:
Sailors(sid: integer, sname: string, rating: integer, age: real)
Reserves(sid: integer, bid: integer, day: date, rname: string)

Kemudian dilakukan query berikut :

SELECT AVG(S.age) FROM Sailors S WHERE S.rating > 3 AND


S.rating < 7
13
 Fragmentasi horisontal:
Tupel dengan rating < 5 pada Shanghai, >= 5 pada Tokyo. Harus menghitung
SUM(age), COUNT(age) pada kedua tempat. Jika WHERE berisi hanya
S.rating > 6, maka hanya satu tempat.
 Fragmentasi vertikal:
sid dan rating pada Shanghai, sname dan age pada Tokyo, tid pada kedua
tempat. Harus melakukan rekonstruksi relasi dengan join pada tid kemudian
mengevaluasi query.
 Replikasi:
Sailor di-copy kan pada kedua tempat.

14
Latihan

1. Langkah capture diimplementasikan dengan menggunakan dua pendekatan,


sebutkan dan jelaskan.
2. Jelaskan beberapa cara menangani penguncian obyek.
3. Gambarkan arsitektur client-server dan collaboration server
4. Jelaskan keuntungan DBMS terdistribusi dibandingkan dengan DBMS
tersentralisasi
5. Jelaskan perbedaan antara replikasi synchronous dan asyncronous

15

Anda mungkin juga menyukai