Gondrong. lihat Ringkasan di bawah.
RDBMS
RDBMS adalah singkatan dari sistem manajemen basis data relasional. Ini adalah sistem untuk mengelola basis data relasional. Data disimpan di sana. Data. Itu tidak mengatakan logika bisnis.
Proses bisnis
Apa yang dimaksud dengan logika bisnis? Bagi saya, ini deskripsi proses bisnis secara logis.
Proses adalah aktivitas bisnis yang terjadi secara teratur, cukup sehingga tidak lagi bersifat ad hoc. Ini berbeda untuk setiap bisnis.
Biarkan saya mengenakan topi bisnis saya dan menjelaskan apa artinya bisnis di sini. Bagi sebagian orang, ini mungkin mengejutkan.
Bisnis
Bisnis adalah jumlah dari kegiatan yang dilakukan untuk mencapai penciptaan nilai, dan lebih khusus lagi nilai yang dapat diperdagangkan. Ini bisa berarti membuat pemanen gabungan, sandwich tuna, atau menyediakan layanan perbankan. Di sebagian besar negara di dunia, bahkan yang berada dalam sistem non-kapitalistik, orang suka mendapatkan nilai terbaik untuk uang mereka, dan karena itu ada persaingan antara penyedia barang dan jasa yang berharga ini. Persaingan umumnya bergantung pada harga, kualitas, dan ketersediaan.
Jalan memutar cepat: Anda membutuhkan 40 juta paku keling dalam 2 hari, Anda tidak akan memesan dari seseorang di internet dengan akun paypal, tidak peduli berapa jauh lebih murah harganya daripada penjual normal Anda.
Memproses Pengetahuan
Seperti yang dapat Anda bayangkan, proses yang terlibat dalam membuat "nilai" ini sebagian besar hidup di kepala eksekutif. Beberapa di antaranya diletakkan di atas kertas dan digunakan sebagai kebijakan dan prosedur perusahaan. Beberapa di antaranya hidup di kepala penasihat perusahaan. Banyak yang hidup di kepala orang-orang yang menjalankan divisi, departemen, tim, dan mereka yang menjalankan mesin, mesin kasir, oven, truk. Sebagian kecil yang membuatnya turun pada persyaratan bisnis untuk perangkat lunak, dan bagian yang lebih kecil dari itu akurat pada saat itu diterapkan dalam sistem komputer.
Pada akhirnya, logika bisnis yang Anda lihat dalam kode bukanlah yang menjalankan bisnis, melainkan yang menjalankan aplikasi untuk bisnis. Otak yang sebenarnya di dalam orang yang sebenarnya memegang proses bisnis yang sebenarnya, dan mereka tidak memiliki masalah memahami bahwa proses di otak mereka lebih akurat daripada proses di komputer. Selain itu, Anda mungkin tidak dapat menjalankan bisnis jika yang Anda miliki hanyalah kebijakan dan prosedur sebagian besar perusahaan. Sangat sering ini sangat tidak akurat, meskipun ada upaya yang sangat besar.
Jadi pada akhirnya, itu adalah logika aplikasi yang dikodekan ke dalam perangkat lunak. Dan orang-orang ingin memasukkannya ke dalam basis data, karena vendor sistem manajemen basis data telah membuat klaim besar.
Logika Aplikasi
Aku bilang tidak. Saya katakan logika aplikasi tetap di dalam aplikasi. Data masuk ke dalam database, dengan cara yang sangat normal, dan kemudian membawa ETL ke rumah dataware untuk melaporkan dan mengebor dan rolluping dan pivoting dan cubing.
Data
Saya juga mengatakan bahwa data hidup lebih lama dari aplikasi, jadi upaya normalisasi data tidak boleh spesifik aplikasi, dan bahkan tidak khusus bisnis, tetapi harus bisnis-umum. Apakah Anda menyimpan kode negara? Anda harus menggunakan INCITS 38: 2009 (http://www.census.gov/geo/www/ansi/statetables.html) karena itu portabel di seluruh bisnis. Ini juga memudahkan banyak aplikasi untuk memanipulasi data.
NoSQL?
Jika Anda memperlakukan database sebagai bagian dari kode aplikasi, dari tata letak tabel hingga pemicu, prosedur tersimpan, dan format data, Anda pada dasarnya menggunakan database perusahaan sebagai BerkleyDB yang dimuliakan, yang merupakan struktur file flat yang dimuliakan, yang benar-benar hanya daftar bertahan. Ini pada dasarnya adalah apa yang dilakukan NoSQL: kembali ke akar, tetapi melakukannya dengan multi-proses, bertahan, dengan cara yang toleran terhadap kegagalan.
Kode Aktual
Tidak, Anda perlu memperlakukan basis data sebagai tempat penyimpanan data umum untuk banyak aplikasi, baik saat ini dan di masa depan. Sekarang kita sampai pada inti argumen saya. Proses bisnis berubah dengan keanehan pasar, politik, dan mode. Sangat sering mereka berubah lebih cepat dari apa yang dapat dikelola oleh pembuat kode dengan bahasa kelas sains komputer (Java, C #, C ++ dll) dan akhirnya ditulis dalam VBA dalam spreadsheet excel di departemen akuntansi atau pemasaran. (Dan hanya jika itu tidak bisa diungkapkan dalam vlookup mewah ...)
Degradasi basis data
Data tidak banyak berubah jika terorganisir dengan baik. Logika bisnis berubah sangat cepat. Dengan memasukkan logika bisnis ke dalam basis data, Anda membuat basis data menjadi kurang berharga, karena akan menjadi usang dan tidak akurat lebih cepat.
Ringkasan
Data harus hidup lebih lama dari aplikasi karena proses bisnis hidup dalam aplikasi dan proses bisnis berubah lebih sering. Termasuk logika bisnis dalam database buruk untuk umur panjang dan nilai keseluruhan.
Peringatan
Saya telah melakukan bagian saya dari dba-ing dan saya sudah membaca jawaban di dba.se tetapi dalam semua kejujuran apa yang mereka bicarakan adalah masalah integritas data dan masalah kinerja. Saya sepenuhnya setuju bahwa orang yang menyentuh data perusahaan harus tahu apa yang mereka lakukan, apakah dba atau programmer atau analis senior SAS dengan akses baca / tulis.
Saya juga mencatat bahwa mereka merekomendasikan coders tahu SQL. Saya setuju. Ini adalah bahasa pemrograman komputer, jadi saya tidak melihat mengapa pemrogram komputer tidak ingin mengetahuinya.
Kemudian, setelah memikirkannya
Saya pikir jalan tengahnya adalah membuat API, dan meminta API untuk mengatur aliran data ke sana kemari. Jika Anda tidak dapat mengizinkan aplikasi terhubung langsung ke tabel, setidaknya Anda dapat membuat mekanisme akses dalam bahasa modern.