Review NoSQL
Latar Belakang
Pada setiap aplikasi yang dibangun oleh developer
tidak akan lepas dari peran database. Database atau basis data sendiri adalah
kumpulan data yang disimpan secara sistematis di dalam komputer yang dapat
diolah maupun direkayasa menggunakan perangkat lunak untuk menghasilkan
informasi. Basis data merupakan aspek yang sangat penting dalam sistem
informasi dimana basis data merupakan gudang penyimpanan data yang akan diolah
lebih lanjut. Basis data menjadi penting karena dapat mengorganisasi data,
menghidari duplikasi data, hubungan antar data yang tidak jelas dan juga update
yang rumit. Dan beberapa sistem yang telah ada masih mengadopsi cara kerja
single-tenant database. Cara kerja seperti ini cenderung akan membatasi proses
bisnis yang akan berkembang kedepannya.
Perencanaan sumber daya perusahaan, atau sering
disingkat ERP dari istilah bahasa Inggris-nya Enterprise Resource Planning,
adalah sistem informasi yang diperuntukkan bagi perusahan manufaktur maupun
jasa yang berperan mengintegrasikan dan mengotomasikan proses bisnis yang berhubungan
dengan aspek operasi, produksi maupun distribusi di perusahaan bersangkutan.
Ritel/eceran atau disebut pula retail dalam bahasa
inggris adalah salah satu cara pemasaran produk meliputi semua aktivitas yang
melibatkan penjualan barang secara langsung ke konsumen akhir untuk penggunaan
pribadi dan bukan bisnis. Jadi ERP Retail merupakan sebuah sistem informasi
yang menangani kebuhan perusahaan dalam hal pemasaran produk termasuk penjualan
barang hingga sampai ke konsumen.
Isi dari makalah ini adalah membandingkan antara
database relational (SQL) dengan database non-relational (NoSQL) dalam hal
performance, flexibility, dan scalability. Setelah terbukti database mana yang
lebih unggul dari keduanya maka akan diterapkan untuk aplikasi ERP Retail yang
berorientasikan multitenancy. Dengan begitu diharapkan ERP Retail yang dibangun
akan memiliki performa yang optimal dalam hal store data. Juga menjadikan
aplikasi yang bersifat fleksibel agar mampu mensuport penyimpanan data yang
dinamis berdasarkan skema setiap tenant, dan perkembangan proses bisnis yang
akan selalu berkembang kedepannya. Dan menjadi aplikasi yang scalable dalam
artian mampu mengatasi jumlah data yang selalu berkembang dengan distributed
database.
Metode
Metode yang digunakan oleh penulis
adalah dengan melakukan pengujian fleksibilitas yang dilakukan dengan
memasukkan beberapa data berbeda yang membentuk skema dalam database.
Analisis
Isi
dari makalah ini adalah membandingkan antara database relational (SQL) dengan
database non-relational (NoSQL) dalam hal performance, flexibility, dan
scalability. Setelah terbukti database mana yang lebih unggul dari keduanya
maka akan diterapkan untuk aplikasi ERP Retail yang berorientasikan
multitenancy.
Uji coba pada Query Insert
Uji coba pada Join/Agregasi
Uji coba pada Select
Uji coba pada Delete
Uji coba pada Update
Kelebihan dan
Kekurangan
Kelebihan NoSQL di banding Relasional Database
a.
NoSQL bisa
menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara
efesien dalam skala besar (big data/cloud).
b.
Menggunakan OOP
dalam pengaksesan atau manipulasi datanya.
c.
NoSQL tidak
mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL sangat
cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini adalah
Dynamic Schema.
d.
Autosharding,
istilah sederhananya, jika database noSQL di jalankandi cluster server
(multiple server) maka data akan tersebar secara otomatis dan merata keseluruh
server.
Kekurangan dari database NoSQL
a.
Hostingnya
mahal, beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting
database noSQL. Selain itu, saya belum pernah menemukan hosting Cpanel yang
mendukung database MongoDB atau database noSQL lainnya.
b.
Perlu waktu
untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka
anda harus belajar lagi dari awal, berbeda dengan database RDMS.
Kesimpulan
Database
NoSQL terbukti unggul dalam proses transaksi CRUD daripada SQL dengan jumlah
selisih runtime insert 0,167, select 0,009, update 0,44, delete 0,056. Namun
lemah untuk menghadapi transaksi join/agregasi dengan jumlah selisih runtime
0,039. Database NoSQL mampu memenuhi kebutuhan aplikasi ERP Retail yang bisa
mensupport perbedaan skema dari setiap tenant dan mengikuti perkembangan proses
bisnis kedepannya. Database NoSQL bersifat scalable dibuktikan dengan
mendistribusikan 1000 data raw ke dua shard (shard1 dan shard2).
Sumber: