Database Server & Terdistribusi
Arsitektur Client/Server Menerapkan model komputasi jaringan: Sistem terdistribusi dengan client dan server yang terhubung lewat jaringan Proses komputasi terbagi antara client dan server: Client workstation/PC “konsumen” layanan server Server PC/mini/mainframe) yang menyediakan layanan Untuk DBMS, servernya adalah server database
Evolusi Arsitektur Client/Server Pemrosesan ekstensif oleh client Arsitektur File Server Logika aplikasi dan penyimpanan data di client Arsitektur Database Server Logika penyimpanan data di server Arsitektur 3-Tier Logika aplikasi dan penyimpanan data pada server-server yang berbeda Pemrosesan minimal oleh client
Arsitektur File Server Semua pemrosesan dilakukan di client (PC) yang mengambil data dari server Sering disebut “Fat Client” File data secara keseluruhan dikirim dari server ke client untuk pemrosesan. Problem: Volume transfer data melalui jaringan sangat tinggi.
Arsitektur File Server CLIENT GEMUK
Arsitektur File Server Problem: Volume transfer data melalui jaringan sangat tinggi. Setiap client harus memiliki kemampuan DBMS penuh Kebutuhan sumber daya komputasi tinggi pada mesin client. Fungsi DBMS pada client-client harus dapat mengkoordinasikan penguncian data, pengecekan integritas data, dsb.
Arsitektur Database Server Pendekatan 2-tiered Client bertanggung jawab atas Logika pemrosesan I/O (presentasi) Logika aturan/prosedur bisnis Server melakukan semua proses penyimpanan dan akses data DBMS hanya ada di server Juga dapat menyimpan logika prosedural (stored procedure)
Arsitektur Server Database Client lebih ramping Juga menyimpan stored procedure DBMS hanya di server
Arsitektur Database Server Keuntungan: Mesin client tidak harus berkemampuan besar Sangat mengurangi lalu lintas data melalui jaringan Integritas data mudah dijaga karena operasi data dilakukan secara terpusat Sebagian aturan/prosedur bisnis dapat dijalankan di server dengan stored procedures
Kelebihan Stored Procedure Berupa perintah SQL (routine) yang disimpan oleh DBMS Syntax: CREATE PROCEDURE … Dapat dibuat untuk membakukan prosedur, penambahan dan pengubahan data Meningkatkan keamanan data Meningkatkan integritas data. Mengurangi lalu lintas data jaringan. Merampingkan/menyederhanakan client.
Arsitektur 3-Tier Arsitektur Aplikasi Multi-tier: Logika Presentasi Input: keyboard/mouse Output: monitor/printer Logika Pengolahan Pemrosesan Input/Output Aturan/prosedur bisnis Manajemen Data Logika Penyimpanan Data Penyimpanan dan pengambilan data GUI (Web Browser) Prosedur, Fungsi, Program (Web Server) Aktivitas DBMS (Database Server)
Arsitektur 3-Tier Prosedur bisnis pada server terpisah Client sangat ramping Prosedur bisnis pada server terpisah DBMS hanya pada Server DB
Keuntungan Arsitektur 3-Tier Client Ramping PC hanya untuk user interface dan proses aplikasi minim, dengan kapasitas penyimpanan data terbatas atau tidak ada samasekali (misal, tanpa hard drive) Skalabilitas Biaya penambahan client baru minimal Server dapat diganti dengan yang lebih besar tanpa mengganti client maupun server yang lain Meningkatkan tingkat layanan pengguna Karena terdistribusi, penanganan gangguan pada satu komponen lebih mudah ditangani
Keuntungan Arsitektur 3-Tier Lebih mudah untuk diselaraskan dengan kebutuhan bisnis Modifikasi/penyesuaian dapat dilakukan di salah satu komponen tanpa mempengaruhi komponen-komponen lain Fleksibilitas teknologi Dapat memadukan terknologi dari berbagai vendor Memperkecil resiko kesalahan memilih teknologi Dapat mengganti salah satu komponen dengan teknologi baru tanpa mempengaruhi komponen yang lain Efisiensi biaya dalam jangka panjang
Tantangan Arsitektur 3-Tier Permasalahan: Biaya jangka pendek (awal) tinggi Biaya administrasi/pemeliharaan: Membutuhkan tambahan tools dan training Membutuhkan pengalaman teknis Standar-standar komponen yang tidak kompatibel Jika tidak menerapkan open standard Kesulitan mendapatkan aplikasi yang kompatibel untuk end user Umumnya aplikasi desktop dirancang sebagai sistem stand alone (fat client)
Sistem Database Terdistribusi Suatu database logis yang secara fisik tersebar pada beberapa komputer (di beberapa lokasi) yang dihubungkan melalui jaringan komunikasi data.
Motivasi Database Terdistribusi Otonomi dan desentralisasi unit-unit usaha. Berbagi data antar aplikasi-aplikasi lokal. Menurunkan biaya komunikasi data, jika dibandingkan database terpusat. Meningkatkan keandalan sistem terhadap gangguan. Aplikasi-aplikasi yang dimiliki dibuat oleh vendor-vendor yang berbeda. Memungkinkan duplikasi/replikasi data di beberapa tempat.
Sistem Homogen (vs Heterogen) Data terdistribusi pada server-server. DBMS yang sama di tiap server. Memungkinkan pengelolaan semua data oleh DBMS terdistribusi (tidak ada data lokal eksklusif). Semua akses menggunakan skema global tunggal. Skema global adalah gabungan (union) dari skema-skema lokal.
Database Homogen DBMS-DBMS identik Source: adapted from Bell and Grimson, 1992. DBMS-DBMS identik
Sistem Heterogen Data terdistribusi pada server-server. DBMS yang berbeda dapat digunakan pada tiap server. Akses lokal dilakukan dengan menggunakan DBMS dan skema lokal Akses non-lokal (remote) dilakukan dengan menggunakan skema global
Sistem Heterogen DBMS-DBMS berbeda Source: adapted from Bell and Grimson, 1992. DBMS-DBMS berbeda
Kriteria Teknis Transparansi Lokasi Otonomi Lokal Pengguna tidak harus tahu lokasi fisik data Permintaan data secara otomatis disalurkan ke server yang sesuai. Otonomi Lokal Server lokal dapat tetap beroperasi dengan database lokal jika hubungan jaringan terputus Setiap server mengontrol datanya sendiri, termasuk masalah keamanan, pencatatan, backup & recovery.
Keuntungan Database Terdistribusi Meningkatkan keandalan dan ketersediaan (dari gangguan). Desentralisasi pengelolaan data. Pertumbuhan secara modular (penambahan database baru tanpa mengubah database-database lain). Menurunkan biaya komunikasi data. Response time yang lebih cepat untuk quary-query tertentu (yang hanya melibatkan data lokal).
Kelemahan Database terdistribusi Harga dan kompleksitas perangkat lunak tinggi. Response time lambat untuk query-query yang melibatkan database-database tersebar. Ancaman integritas data – jika ada duplikat data yang diubah.
Terdistribusi atau Tidak? Ketersediaan dana, otonomi, keamanan. Pola akses data menurut lokasi. Rencana pertumbuhan dan ekspansi. Kemampuan/ketersediaan teknologi. Biaya pengelolaan teknologi yang kompleks. Kebutuhan akan layanan data yang handal.
DBMS Terdistribusi Database terdistribusi membutuhkan DBMS terdistribusi Fungsi-fungsi DBMS Terdistribusi: Mencari lokasi data dengan suatu Kamus Data Terdistribusi (distributed data dictionary). Menentukan lokasi untuk mengambil dan memproses bagian-bagian query. Translasi antar DBMS yang berbeda-beda.
DBMS Terdistribusi … Fungsi-fungsi DBMS Terdistribusi: Menjaga konsistensi data akibat akses secara bersamaan. Menjaga keunikan primary key global. Meningkatkan skalabilitas. Keamanan, konkurensi, optimasi query, recovery dari gangguan.
Langkah-langkah Transaksi Lokal pada Arsitektur DBMS terdistribusi 2 1 3 5 4 Transaksi lokal: semua data tersimpan secara lokal
Langkah-langkah Transaksi Global pada Arsitektur DBMS terdistribusi 2 3 1 6 7 4 8 5 Transaksi global: sebagian data berada di lokasi-lokasi remote
Transparansi pada DBMS Terdistribusi Transparansi Lokasi Pengguna/aplikasi tidak harus tahu dimana lokasi fisik data Transparansi Replikasi Pengguna/aplikasi tidak harus tahu bahwa data direplikasi Transparansi Gangguan Bahwa semua aktivitas suatu transaksi terjadi, atau sama sekali tidak terjadi (tidak setengah-setengah)
Transparansi pada DBMS Terdistribusi … Transparansi Gangguan Setiap server memiliki komponen Manajemen Transaksi Mencatat transaksi dan rekaman (image) data sebelum dan setelah transaksi. Prosedur pengendalian konkurensi (akses modifikasi bersamaan) untuk menjaga integritas data.