Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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