Di sinilah pertemuan pikiran, yaitu, pikiran Pengembang (DV) dan DBA, pasti terjadi. Bekerja dengan Business Logic (BL) dan menyimpannya dalam database dapat memiliki dampak yang dapat memuliakan atau mengerikan implementasinya.
Untuk beberapa produk RDBMS, terdapat perpustakaan / alat / API unggul untuk Logika Bisnis dan Infrastruktur Objek yang dapat dengan cepat dipelajari dan digunakan dalam aplikasi mereka. Untuk RDBMS lainnya, tidak ada perpustakaan / alat / API.
Di masa lalu, aplikasi server klien membuat jembatan menjadi BL melalui Stored Procedures (SP). Untuk produk-produk seperti Oracle dan SQL Server, ini dilakukan lebih awal. Ketika database open source seperti PostgreSQL dan MySQL muncul, mereka yang menggunakannya berisiko melanggar tanah baru dengan prosedur tersimpan di BL. PostgreSQL matang dengan sangat cepat dalam hal ini, karena tidak hanya prosedur tersimpan yang diterapkan tetapi juga kemampuan untuk membuat bahasa pelanggan juga muncul. MySQL pada dasarnya berhenti berkembang dalam dunia prosedur tersimpan dan datang dalam bentuk bahasa yang dipreteli dengan banyak batasan. Jadi, ketika datang ke BL, Anda sepenuhnya bergantung pada MySQL dan bahasa Stored Procedure-nya.
Hanya ada satu pertanyaan: Terlepas dari RDBMS, haruskah BL berada secara keseluruhan atau sebagian dalam basis data?
Pikirkan Pengembang. Ketika hal-hal serba salah dalam suatu aplikasi, proses debug akan membuat Pengembang masuk dan keluar dari database untuk mengikuti saluran data yang mungkin atau mungkin tidak benar sebentar-sebentar. Ini seperti mengkode aplikasi C ++ dan memanggil kode Assembler di tengah. Anda harus beralih dari kode sumber, kelas, dan struct ke interupsi, register dan offset DAN KEMBALI !!! Ini mengambil debugging ke tingkat yang sama.
Pengembang mungkin dapat membuat metode kecepatan tinggi dalam mengeksekusi BL bersamaan dengan konfigurasi bahasa (flag kompiler untuk C ++, pengaturan berbeda untuk PHP / Python, dll) melalui objek bisnis yang berada di memori daripada di database. Beberapa telah mencoba menjembatani ideologi ini untuk kode runnng yang lebih cepat ke dalam database dengan menulis pustaka di mana debugging Stored Procedures dan Pemicu terintegrasi dengan baik dalam Database dan tampaknya dapat digunakan.
Dengan demikian, Pengembang ditantang untuk mengembangkan, men-debug, dan memelihara kode sumber dan BL dalam dua bahasa.
Sekarang pikirkan DBA. DBA ingin menjaga Basis Data tetap ramping dan berarti sebanyak mungkin dalam bidang prosedur tersimpan. DBA dapat melihat BL sebagai sesuatu yang berada di luar Basis Data. Namun, ketika SQL meminta data yang dibutuhkan untuk BL, SQL harus ramping dan berarti.
Sekarang, untuk pertemuan pikiran !!!
Kode pengembang SP dan menggunakan metode iteraktif. DBA melihat SP. DBA menentukan bahwa pernyataan SQL tunggal dapat menggantikan metode iteraktif yang ditulis oleh Pengembang. Pengembang melihat bahwa pernyataan SQL yang disarankan oleh DBA mengharuskan pemanggilan kode terkait BL lainnya atau SQL yang tidak mengikuti rencana eksekusi normal pernyataan SQL.
Sehubungan dengan ini, konfigurasi, tuning kinerja, dan pengkodean SP menjadi fungsi dari kedalaman dan intensitas data BL untuk pengambilan data. Semakin mendalam dan intensif data BL, semakin banyak Pengembang dan DBA harus berada di halaman yang sama untuk jumlah data dan kekuatan pemrosesan yang diberikan ke Database.
KESIMPULAN
Cara pengambilan data harus selalu melibatkan kubu Pengembang dan DBA. Konsesi harus selalu dibuat seperti apa metode pengkodean dan paradigma pengambilan data dapat bekerja bersama, untuk kecepatan dan efisiensi. Jika persiapan data untuk menangani kode sumber dilakukan hanya satu kali sebelum kode mendapatkan data, DBA harus menentukan penggunaan lean dan mean SQL. Jika BL adalah sesuatu yang tidak selaras dengan DBA, kendali kemudian berada di tangan Pengembang. Inilah sebabnya mengapa DBA harus melihat dirinya sendiri dan bagian dari tim proyek dan bukan pulau bagi dirinya sendiri, sementara Pengembang harus membiarkan DBA melakukan fine tuning dari SQL jika memang diperlukan.