Oleh William: praktisi Database, certified Oracle tingkat dasar, CCNA, user D7.
Latar Belakang --------------- Menarik saya perhatikan bahwa terjadi komunikasi aktif mengenai apakah design C/S (Client Server) itu sesungguhnya? Sehingga saya tertarik untuk menjelaskan arsitektur C/S ditinjau dr segi teroritis dan implementasinya. Pengertian C/S --------------- C/S adalah suatu design database yang melibatkan Client dan Server secara interaktif dan independent. Client bertindak sebagai peminta data (dengan mengirimkan serangkaian command), menampilkan data (dalam bentuk table atau grafik), dan mengolah data secara local. Sedangkan Server bertindak sebagai penerima command dari Client, mengirimkan data ke client, mengatur lalu lintas data dan sekurity-nya. Jadi dalam arsitektur C/S bukan berarti Client tidak mengolah data sama sekali, perlu diingat bahwa data di Client diolah untuk kepentingan lokal saja bukan secara global. Perkembangan Database Server --------------------------------- Beberapa DB Server saat ini sudah dilengkapi dengan fasilitas SP (Store Procedure), Trigger, View/Derivated Table, Merge dan sebagainya yang diletakkan di tingkat Server. Sebuah DB Server tidak harus memiliki fasilitas tersebut dalam konteks C/S. Sebab command dari Client bisa dikirimkan berupa serangkaian perintah SQL atau sejenisnya. Yang penting di sini adalah "untuk mendapatkan data parsial tidak harus mengirimkan semua data" seperti yang terjadi pada Clipper dan dBase. Programmer Delphi umumnya memilih membuat SP yang sederhana di db Server kemudian pemrosesan data yang rumit diselesaikan ditingkat Delphi. Hal ini dimaksudkan agar program bisa portable dan sedikit modifikasi jika diterapkan pada db Server yang berbeda. Impelementasi C/S ------------------- Kenyataannya tidak ada seorangpun programmer dan db Admin yang mampu menerapkan design C/S 100%. Seringkali command yang rumit mampu diselesaikan dengan cepat melalui filter dan serangkaian perintah Dlphi dari pada membuat query ulang pada server, apalagi denga membuat SP. Menyerahkan segala kontrol pada Server, seperti memeriksa apakah entry user berupa Numerik, menimbulkan overhead pada jaringan dan Server. Bukankah kita umumnya memilih memeriksa apakah Entry tersebut Numerik di tingkat Client kemudian mengirimkan pesan error jika entry ternyata mengandung nilai non-numerik? Jika Entry kontrol diserahkan pada server maka error akan diketahui setelah server menerima data tersebut dan kemudian server mengirim pesan error ke client dan client menampilkan pesan error tsb ... jelas hal ini tidak praktis. Meskipun kita bisa menerapkan konstrain pada tabel untuk memastikan suatu nilai numerik tetapi hal ini jarang dimanfaatkan sebab akan terjadi perlambatan terutama saat terjadi input data yang besar dan bersamaan yang dikenal dengan istilah INSERT BULK, terlebih lagi penerapan Trigger seringkali dihindari. Konstrain dan Trigger menimbulkan masalah yang kompleks manakala dihadapkan pada situasi restore database, restore database mau tidak mau harus dilakukan secara keseluruhan daripada parsial untuk menghindari penolakan dari Konstrain atau Trigger. Sedangkan View table seringkali digantikan oleh join table yang hasilnya ditampung ke dalam Dataset. Konsep Dataset yang ada pada Delphi sungguh luar biasa, bahkan VB .Net pun terpaksa mengadopsi konsep ini. Kesimpulan ------------ Kemampuan Delphi yang luar biasa dan kemampuan Db Server yang juga luar biasa, memerlukan kebijaksanaan programmer dan db Admin untuk memanfaatkan kemampuan ini. Kombinasi antara arsitektur C/S dan kemampuan olah data oleh Delphi melalui serangkaian procedure/function-nya merupakan solusi yang efektif untuk memecahkan masalah. Jangan semuanya ditumpukan pada Server jika ternyata ada jalan yang lebih fleksibel. Teoritis C/S memang perlu dipahami tetapi Realita aplikasi database memerlukan lebih daripada sekedar teori. ------------------------ Yahoo! Groups Sponsor ---------------------~--> Rent DVDs Online - Over 14,500 titles. No Late Fees & Free Shipping. Try Netflix for FREE! http://us.click.yahoo.com/JYdFFC/XP.FAA/3jkFAA/i7folB/TM ---------------------------------------------------------------------~-> Berlangganan: [EMAIL PROTECTED] Stop Berlangganan: [EMAIL PROTECTED] Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED] Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
