Sistem Basis Data Client-Server
Istilah Client/Server mengacu pada hubungan antara dua sistem atau proses. Client adalah sistem yang mengajukan permintaan (request) ke server. Dalam banyak situasi maka yang mana sistem client dan yang mana sistem server ditentukan oleh hubungan antara yang mengajukan permintaan (client) ke yang memberikan layanan yaitu serve (Hall,C, 1994). Server menyediakan layanan (services) ke client yang mengajukan permintaan. Dalam hal ini sangat penting untuk dapat membedakan antara server dengan layanan (services) yang disediakan.
Istilah Client/Server mengacu pada hubungan antara dua sistem atau proses. Client adalah sistem yang mengajukan permintaan (request) ke server. Dalam banyak situasi maka yang mana sistem client dan yang mana sistem server ditentukan oleh hubungan antara yang mengajukan permintaan (client) ke yang memberikan layanan yaitu serve (Hall,C, 1994). Server menyediakan layanan (services) ke client yang mengajukan permintaan. Dalam hal ini sangat penting untuk dapat membedakan antara server dengan layanan (services) yang disediakan.
Komponen Perangkat Lunak Sistem Client-Server
Arsitektur sistem client/server mempunyai beberapa subsystems yaitu user interaction /presentation subsystems, aplication subsystem, dan database management subsystems. Subsystems tersebut dapat dialokasikan ke client, server, atau terdistribusi diantara kedua sistem (Pressman, 2001)
- User interaction /presentation subsystem : Merujuk atau mengimplementasikan semua fungsi yang berkaitan dengan Graphical User Interface (Pressman, 2001). GUI (Graphical User Interface ) dipergunakan untuk interface antara user dengan sistem (komputer).
- Aplication subsystems : Mengimplementasikan kebutuhan-kebutuhan pada domain aplikasi. Sebagai contoh yaitu aplikasi groupware yang menyediakan fasilitas email. Aplikasi dapat dipecah sebagian di client, sebagian lain di server.(Pressman, 2001)
- Database management subsystems : Melakukan pemrosesan dan pengelolaan basis data seperti yang diperlukan oleh aplikasinya. Pemrosesan dan pengolahan tersebut dapat sederhana misalnya transfer record atau kompleks misalnya memproses SQL (Pressman, 2001)
Ketika banyak fungsi-fungsi pada setiap subsystems di alokasikan ke server maka server disebut dengan fat server. Apabila client mengimplementasikan sebagian besar komponen user interaction/presentation, aplikasi (aplication), dan database management maka client disebut dengan fat client (Pressman, 2001).
Pressman (2001) mengatakan fat client biasa dipergunakan ketika diimplementasikan pada arsitektur file server dan database server. Dalam hal ini basis data (database) menyediakan dukungan pada manajemen data tetapi semua fungsi aplikasi (aplication) dan GUI (Graphical User Interface) diletakan pada client. Fat server sering dirancang ketika transaksi (transaction) dan groupware systems diimplementasikan. Dalam hal ini, server menyediakan dukungan aplikasi yang dibutuhkan untuk merespon transaksi (transaction) dan komunikasi dari client. Perangkat lunak client menekankan pada GUI dan manajemen komunikasi.
Distribusi Subsystem Pada Basis Data Terdistribusi
Pada distributed database (basis data terdistribusi) data dapat tersebar pada beberapa server dan client (Pressman, 2001). Distributed database menyediakan kemampuan untuk mengakses data dari beberapa lokasi, tanpa peduli sebenarnya dimana data secara aktual tersimpan.
Basis data terdistribusi (Distributed database) akan menyediakan beberapa kemampuan (1) kemampuan mengatur penyebaran data secara fisik jika data tersebut merupakan data pada satu database tunggal (2) menyajikan informasi di dalam database ke aplikasi yang membutuhkan (3) melindungi dari kesalahan selama terjadi apdate transaksi (Pressman, 2001). Distribusi subsystems pada basis data terdistribusi (distributed database) adalah client harus mempunyai komponen-komponen perangkat lunak yang mendukung management data, aplikasi, dan GUI (Graphical User Interface) (Pressman, 2001)
Arsitektur Client-Server
Saat ini arsitektur client-server yang banyak digunakan dalam industri disebut two-tier architecture. Pada arsitektur ini, server mengirim data dan client mengakses data. Server memainkan peranan yang dominan pada arsitektur ini. Keuntungan sistem ini adalah kesederhanaan dan kompatibilitas dengan sistem yang legal.
Arsitektur client-server yang dikembangkan kemudian adalah three-tier architecture. Pada model ini, layer direpresentasikan sebagai host, server dan client. Server memainkan peranan sebagai penengah dengan mengirim aturan bisnis (prosedur atau constraint) yang digunakan untuk mengakses data dari host. Client berisi antar muka GUI dan beberapa aplikasi tambahan mengenai aturan bisnis. Kemudian server bertindak sebagai conduit of passing memproses data dari host ke client dimana kemudian diproses atau difilter dan dipresentasikan ke pemakai dalam format GUI. Antar muka pemakai, aturan dan pengaksesan data bertindak sebagai three tiers. Cient biasanya dihubungkan ke server melalui LAN dan server dihubungkan ke host melalui WAN. Client melakukan remote yang dihubungkan ke server melalui WAN juga. Sistem ini sangat cocok untuk perusahaan besar dimana basis data terpusat dapat disimpan dalam host dan biaya pembangunan LAN dan WAN dapat diatur dan dioptimasi menggunakan teknologi yang baru untuk setiap bagian yang berbeda dalam organisasi.
Saat ini arsitektur client-server yang banyak digunakan dalam industri disebut two-tier architecture. Pada arsitektur ini, server mengirim data dan client mengakses data. Server memainkan peranan yang dominan pada arsitektur ini. Keuntungan sistem ini adalah kesederhanaan dan kompatibilitas dengan sistem yang legal.
Arsitektur client-server yang dikembangkan kemudian adalah three-tier architecture. Pada model ini, layer direpresentasikan sebagai host, server dan client. Server memainkan peranan sebagai penengah dengan mengirim aturan bisnis (prosedur atau constraint) yang digunakan untuk mengakses data dari host. Client berisi antar muka GUI dan beberapa aplikasi tambahan mengenai aturan bisnis. Kemudian server bertindak sebagai conduit of passing memproses data dari host ke client dimana kemudian diproses atau difilter dan dipresentasikan ke pemakai dalam format GUI. Antar muka pemakai, aturan dan pengaksesan data bertindak sebagai three tiers. Cient biasanya dihubungkan ke server melalui LAN dan server dihubungkan ke host melalui WAN. Client melakukan remote yang dihubungkan ke server melalui WAN juga. Sistem ini sangat cocok untuk perusahaan besar dimana basis data terpusat dapat disimpan dalam host dan biaya pembangunan LAN dan WAN dapat diatur dan dioptimasi menggunakan teknologi yang baru untuk setiap bagian yang berbeda dalam organisasi.
Pengaksesan Query pada Basis Data Client-Server
Bagaimana membagi fungsi DBMS antara client dan server tidak ada ketentuan. Sehingga banyak pendekatan yang berbeda ditawarkan. Satu kemungkinan adalah memasukkan fungsi dari DBMS terpusat pada level server. Sejumlah DBMS relasional menggunakan pendekatan ini, dimana SQL server disediakan untuk client. Setiap client harus menggunakan query SQL yang tepat dan menyediakan antar muka pemakai dan fungsi antar muka untuk bahasa pemrograman. Karena SQL adalah bahasa standard relasional, berbagai SQL server, meskipun disediakan oleh vendor yang berbeda, dapat menerima perintah SQL. Client juga merujuk pada data dictionary yang didalamnya terdapat informasi pada data distribusi diantara server SQL yang berbeda, sebagai modul untuk dekomposisi query global ke dalam sejumlah query local yang dapat dieksekusi pada berbagai tempat.
Interaksi antara client dan serber selama pemrosesan query SQL adalah sebagai berikut :
Pada pendekatan ini, server SQL juga disebut transaction server (atau database processor (DP) atau back-end machine), sedangkan client disebut application processor (AP) atau front-end machine. Interaksi antara client dan server ditentukan oleh pemakai pada level client atau melalui modul khusu pada DBMS client yang merupakan bagian dari paket DBMS. Sebagai contoh, pemakai mengetahui apa data yang dikirim setiap server, membagi permintaan query ke sub query secara manual adan mengirimkan sub query secara individu ke tempat yang berbeda. Tabel hasil dikombinasikan secara eksplisit dengan query user pada level client. Alternatif lain adalah mempunyai modul client yang melakukan kegiatan diatas secara otomatis.
Dalam DDBMS yang banyak digunakan, model perangkat lunak dibagi ke dalam tiga level :
Bagaimana membagi fungsi DBMS antara client dan server tidak ada ketentuan. Sehingga banyak pendekatan yang berbeda ditawarkan. Satu kemungkinan adalah memasukkan fungsi dari DBMS terpusat pada level server. Sejumlah DBMS relasional menggunakan pendekatan ini, dimana SQL server disediakan untuk client. Setiap client harus menggunakan query SQL yang tepat dan menyediakan antar muka pemakai dan fungsi antar muka untuk bahasa pemrograman. Karena SQL adalah bahasa standard relasional, berbagai SQL server, meskipun disediakan oleh vendor yang berbeda, dapat menerima perintah SQL. Client juga merujuk pada data dictionary yang didalamnya terdapat informasi pada data distribusi diantara server SQL yang berbeda, sebagai modul untuk dekomposisi query global ke dalam sejumlah query local yang dapat dieksekusi pada berbagai tempat.
Interaksi antara client dan serber selama pemrosesan query SQL adalah sebagai berikut :
- Client melakukan parsing query pemakai dan memecahnya ke dalam sejumlah query independent untuk setiap tempat. Setiap query terseut dikirim ke server yang sesuai.
- Setiap server memproses query lokal dan mengirim relasi hasil ke client.
- Client mengkombinasikan hasil sub query untuk mempruksi hasi dari query asal yang dikirim.
Pada pendekatan ini, server SQL juga disebut transaction server (atau database processor (DP) atau back-end machine), sedangkan client disebut application processor (AP) atau front-end machine. Interaksi antara client dan server ditentukan oleh pemakai pada level client atau melalui modul khusu pada DBMS client yang merupakan bagian dari paket DBMS. Sebagai contoh, pemakai mengetahui apa data yang dikirim setiap server, membagi permintaan query ke sub query secara manual adan mengirimkan sub query secara individu ke tempat yang berbeda. Tabel hasil dikombinasikan secara eksplisit dengan query user pada level client. Alternatif lain adalah mempunyai modul client yang melakukan kegiatan diatas secara otomatis.
Dalam DDBMS yang banyak digunakan, model perangkat lunak dibagi ke dalam tiga level :
- Perangkat lunak server bertanggung jawab pada manajemen data lokal, kebanyakan sama dengan perangkat lunak DBMS
- Perangkat lunak client bertanggung jawab untuk fungsi distribusi; mengakses informasi distribusi data dari katalog DDBMS dan memproses semua permintaan yang membutuhkan akses ke lebih dari satu tempat. Hal ini juga ditangani semua antar muka user.
- Perangkat lunak komunikasi (biasanya dihubungkan dengan sistem operasi terdistribusi) menyediakan primitif komunikasi yang digunakanoleh client untuk mengirim perintah dan data ke tempat yang berbeda sesuai kebutuhan. Hal ini bukan bagian yang terpenting dalam DDBMS, tetapi menyediakan primitf komunikasi dan pelayanan yang esensial.