Pertanyaan yang sering muncul ketika mendengar NoSQL, terutama bagi developer adalah:
PERLUKAH?
Apa RDBMS yang ada sekarang tidak mencukupi?
Mari kita lihat sejarah kenapa muncul NoSQL...
Sejarah NOSQL
Jika ada teknologi baru, pasti ada permasalahan yang sebelumnya tidak bisa ditangani
Lalu NoSQL?
Horizontal Scaling
Big, Bigger, and Bigger Data
Availability
dan beberapa permasalah lain
HORIZONTAL SCALING
Banyak database instance, dengan isi data yang sinkron
Berbeda dengan Vertical Scaling, yang artinya meningkatkan kemampuan server database sehingga mendukung kinerja yang diharapkan
Permasalahan umum
Ketika aplikasi semakin banyak diakses, resource server database semakin berkurang (memory available, cpu load meningkat, dll), sehingga aplikasi terasa lebih lama
Solusi umum yang dilakukan seringnya adalah peningkatan kemampuan server (memory ditambah, dll)
Beberapa RDBMS menyediakan kemampuan untuk replikasi, tapi apakah data selalu sinkron meskipun aplikasi mengakses (baca tulis) ke database yang berbeda ?
Big, bigger, bigger data
Volume data yang sangat banyak
Pernahkah terbayang bagaimana social media mengelola database mereka dengan jumlah pengguna yang mencapai milyar?
Permasalahan
Semakin banyak data, pencarian akan semakin lama, apalagi jika mencari ke beberapa tabel dengan JOIN
Contoh, ambil data nilai kuliah mahasiswa
select * from nilai_kuliah nk
join mata_kuliah mk on nk.mkid = mk.mkid
join mahasiswa mhs on mhs.mhsid = nk.mhsid
join dosen ds on mk.dsid = ds.dsid
Semakin banyak data, semakin banyak join, waktu yang diperlukan semakin lama
AVAILABILITY
Data harus ada 24jam x 7 hari seminggu x 365 hari
Setiap saat data harus selalu dapat diakses, tidak boleh ada downtime, meskipun ada update database (mulai dari perbaikan data hingga perubahan skema)
Lalu, berikutnya?
Masih ada beberapa permasalahan lain yang dapat diselesaikan dengan NoSQL, seperti skema tabel yang mengikat, relasi antar tabel, dan masih banyak lagi
Detail implementasi NoSQL tiap jenis dapat dilihat di slide lain
Sekian
Demikian sedikit informasi mengenai database NoSQL,
semoga sedikit banyak bermanfaat untuk menambah wawasan