Download ARSITEKTUR BASIS DATA TERDISTRIBUSI

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
ARSITEKTUR
BASIS DATA TERDISTRIBUSI
Disusun Oleh:
Alit Mahendra Bramantya
[email protected]
Architectural Alternatives
Secara arsitektural, sebuah system basis data terdistribusi terdiri atas sebuah set query sites
(kemungkinan besar kosong) dan sebuah set data sites yang tidak kosong. Data sites memiliki
kemampuan untuk menyimpan data ketika set query tidak melakukannya. Yang kemudian
hanya menjalankan antarmuka user (sebagai tambahan dalam aplikasi) dengan tujuan untuk
memberikan fasilitas akses pada data sites. (figure 1)
Jika kemudian system basis data terdistribusi pada site yang berbeda yang memilki otonomi
tersendiri dan mungkin memperlihatkan beberapa format dari heterogenitas, mereka akan
merujuk pada multidatabase system atau federated database system. Jika data dan DBMS
secara fungsional terpenuhi dalam sebuah computer dengan multiprocessor, maka ia akan
lebih merujuk pada parallel database system. Ini merupakan perbedaan mereka dengan
system basis data terdistribusi yang mana integrasi logic diantara data-data yang terdistribusi
lebih erat daripada yang dimiliki oleh multidatabase system atau federated database system,
namun secara control fisik lebih lemah daripada yang dimiliki oleh parallel DBMS.
Terdapat beberapa macam model arsitektural untuk pengembangan system manajemen basis
data terdistribusi, mulai dari system client/server, dimana query sites bersesuaian dengan
client ketika data sites bersesuaian dengan server, untuk system peer to peer dimana tidak
terdapat perbedaan antara mesin client dan mesin server, beberapa arsitektur ini berbeda
berkenaan dengan dimana ketersediaan tempat untuk masing-masing fungsi DBMS.
Dalam kasus client/server DBMS, server akan melaksanakan lebih banyak pekerjaan
mengenai manajemen data. Yang berarti bahwa seluruh proses terhadap query dan proses
optimalisasi, manajemen transaksi dan manajemen penyimpana diselesaikan di server.
Sedangkan client, merupakan tambahan untuk aplikasi dan antar muka untuk user. Terdapat
sebuah modul DBMS client yang bertanggung jawab untuk memanaje data yang telah di
chached di client dan (kadang-kadang) memanaje kunci transaksi yang mungkin telah
dichached juga. Sebuah standar fungsional dari distribusi client/server dapat dilihat pada
figure 2.
Arsitektur client/server yang paling sederhana adalah system multiple-client/single-server.
Dari sebuah perspektif manajemen data, hal ini tidak begitu berbeda dengan basis data
terpusat sejak basis data disimpan hanya dalam satu mesin saja (server) dimana juga
merupakan tempat untuk software yang digunakan untuk memanaje basis data tersebut.
Bagaimanapun jugam terdapat beberapa perbedaan penting dari system terpusat dalam
bagaimana transaksi dieksekusi dan bagaimana chaced di manaje. Sebuah arsitektur yang
lebih canggih adalah dimana terdapat beberapa server didalam system (yang kemudian
disebut pendekatan multiple-client/multiple-server). Dalam kasus ini, terdapat dua alternative
startegi manajemen yang mungkin dilaksanakan: yaitu dimana masing-masing client DBMS
memanaje koneksinya sendiri kepada server atau tiap client hanya mengenal home servernya
saja, dimana kemudian dibutuhkan komunikasi dengan server lain. Pendekatan terdahulu
adalah dengan melaksanakan penyederhanaan code server, namun membebabi mesin client
dengan beberapa tanggung jawab tambahan (heavy client) sedangkan pendekatan yang lain
adalah dengan mengkonsentrasikan kemampuan manajemen data secara fungsional di server
dan kemudian menyediakan transparansi akses data pada antarmuka user (light client).
Dalam kasus system peer-to-peer, tidak terdapat perbedaan antara client dan server dan
masing-masing site dalam system dapat melaksanakan fungsi yang sama. Namun masing
dimungkinkan untuk memisahkan modul yang digunakan untuk melayani permintaan user
dari yang lain yang memanaje data, namun ini hanya merupakan pemisahan secara logic dan
sama sekali tidak menyiratkan distribusi fungsional. Dalam proses eksekusi query (transaksi),
ini memungkinkan bagi query global optimizer (monitor eksekusi global)) untuk
berkomunikasi secara langsung dengan prosesor query local (local recovery managers)
dimana bagian-bagian dari queryu di eksekusi. Sehingga, mekanisme komunikasi semakin
dilibatkan, yang mendorong kearah struktur software yang lebih rumit.
Arsitektur system Client/Server
•
Arsitektur client/server terus dikembangkan dan terus dimasukkan dalam paket DBMS
komersial – seperti halnya mereka bergerak terus untuk mendukung distribusi.
•
Software DDBMS kemudian dibagi menjadi dua level – client dan server
•
Untuk menurunkan kompleksitasnya.
1. beberapa site dapat menjalankan hanya software client saja
2. sites yang lain dapat digunakan sebagai mesin server yang hanya akan
menjalankan software server saja
3. dimana sites yang lain dapat mendukung kedua modul server dan client
Fungsi system Client/Server
•
software client dan server saling berkomunikasi dengan menggunakan SQL
•
server SQL bertanggung jawab atas manajemen data local dalam sebuah site, seperti
halnya DBMS terpusat
•
fungsi client SQL juga diperluas
•
menghasilkan rencana eksekusi proses terdistribudi dan menguraikan query menjadi
query local yang kemudian akan diproese oleh server SQL local
•
Memastikan konsistensi dari salinan data item hasil replikasi dengan menggunakan
teknik pengendalian cocurrency terdistribusi
•
Menjamin valensi dari transakso global dengan melaksanakan global recovery ketika
terdapat beberapa sites mengalami kegagalan proses
Karakteristik Client-Server
Client
•
Menyediakan antar muka untuk user
•
Menyediakan format query atau perintah dalam bahasa yang telah dikenal
•
Mengkomunikasikan format query dan perintah dengan server yang disesuaikan
dengan metode komunikasi antar proses yang diterima
•
Melaksanakan analisis terhadap data yang merupakan hasil yang dikembalikan oleh
server
•
Menampilkan hasil query dan perintah kepada user
Server
•
Menyediakan servis pada client (bias lebih dari satu)
•
Hanya merespon query atau perintah yang dikirimkan oleh klien; tidak memulai
komunikasi dengan client
•
Secara ideal, akan menyembunyikan keberadaan dari system client-server dari client
Keuntungan dan keterbatasan system Client-Server
keuntungan
•
Efisiensi jumlah pekerjaan
•
Client mengakses pada remote data (via standards)
•
Menyediakan fungsi DBMS secara penuh pada mesin client
•
Pengukuran resource secara horizontal dan vertikal
•
Harga dan performa yang lebih baik pada mesin client
•
Kemampuan untuk menggunakan tool yang lebih familiar dengan user di client
•
Secara keseluruhan menyediakan performa dan harga yang lebih baik
Kelemahan
•
Server membentuk bottleneck
•
Server membentuk titik kegagalan tunggal
•
Kesulitan dalam pengukuran database
Arsitektur tiga-tier
•
Arsitektur ini memilki sebuah data management layer, sebuah application layer danb
sebuah user interface layer.
1. data management layer memegang kendali atas skema basis data dan data.
2. The application layer memegang program yang mewujudkan aplikasi logic
3. The user interface layer memanaje form dan laporan yang dipresentasikan pada
user
•
CORBA/DCOM dapat digunakan untuk mendukung arsitektur tiga-tier ini
Pendekatan lain
•
Program yang belum dicompile tersimpah dalam site server dan kemudian akan
dilibatkan dalam proses setelah adanya remote procedure call yang dijalankan oleh
client
•
Beberapa keuntungan dari pendekatan ini :
1. tingkat independensi data yang lebih tinggi sehingga dapat digunakan untuk
menyembunyikan banyak detil spesifikasi dari system
2. sebuah prosedur yang telah tersimpan dapat digunakan secara bersama-sama
oleh benyak client
3. optimalisasi dinyatakan selesai pada saat tingkata compilasi telah menyediakan
keamanan yang lebih baik
Contoh proses dari system client/server
Interaksi antara client dan server akan terjadi seperti halnya pada saat pemrosesan sebuah
query SQL :
•
client menguraikan query dari user dan kemudian memilah-milah query tersebut
menjadi beberapa query local pada site independent
•
setiap query akan dikirimkan pada site server yang sesuai
•
setiap server memproses query local dan kemudian mengirimkan hasilnya ke site
client
•
site client kemudian akan meongkombinasikan hasil dari subqueries-subqueries untuk
membentuk sebuah hasil/laporan dari query yang dimaksudkan oleh user
Daftar pustaka
http://www.eecs.umich.edu/~teorey/lec.notes.pdf
http://learning.unl.ac.uk/csp003n/lectures/w021-ddb-arch.pdf
http://learning.unl.ac.uk/csp003n/pastpapers/sb03g-exama-03a.pdf