NoSQL merupakan basis data non relasional dengan
schema-free yang memunculkan pertanyaan bagaimana NoSQL dapat melakukan partisi
untuk data yang berukuran besar, melakukan query, replikasi data, dan mendukung
adanya konsistensi. Bagian ini berisi penjelasan empat model data NoSQL, yaitu
column-oriented, document-oriented, object-oriented dan graph-oriented [21].
Brewer membuat teorema basis data yang
menjelaskan bahwa sebuah DBMS hanya dapat memilih paling banyak dua diantara
tiga karakteristik ada, yaitu konsistensi data, ketersediaan data, dan
toleransi untuk dipecah menjadi beberapa partisi [24].
RDBMS memilih untuk memprioritaskan konsistensi
data dan ketersediaan data, sedangkan mayoritas NoSQL memilih untuk menggunakan
ketersediaan data dan toleransi pemartisian data, karena kebanyakan basis data
NoSQL digunakan pada aplikasi yang harus menyimpan dan memproses banyak data
dengan cepat seperti website jejaring sosial, mesin pencari, dan lain
sebagainya. Sebagai konsekuensi dari pilihan tersebut, NoSQL mengorbankan
kemudahan untuk konsistensi data. Ketidak konsistenan sebuah basis data dapat
menimbulkan kesalahan yang fatal dalam beberapa kasus [6].
Sebagai contoh dalam aplikasi penjualan online
seperti pada Amazon, saat ada dua atau lebih pembeli yang melakukan transaksi
pembelian pada barang yang sama, pada sistem basis data yang tidak konsisten
akan mengijinkan kedua transaksi tersebut. Akibatnya, apabila stok barang yang
bersangkutan hanya satu, maka salah satu dari pembeli akan dirugikan karena
validasi transaksi dan pembayaran tetap berhasil, namun barang tidak
tersedia[6].
Meskipun aplikasi yang menggunakan NoSQL dapat
merekayasa validasi konsistensi data melalui pemrograman, Xiang [25] menawarkan
solusi dengan membuat middleware layer yang menggunakan algoritma hash untuk
mempartisi dan mereplikasi data. Algoritma yang digunakan dapat memastikan
konsistensi data pada basis data NoSQL yang terpartisi pada beberapa node,
bahkan juga mampu mengidentifikasi jika ada salah satu node server yang hilang
(rusak atau tidak terhubung). Sayangnya solusi semacam ini juga mengakibatnya
menurunnya performa server dan meningkatnya waktu pemrosesan query.
Meski demikian, kritikan tersebut juga mendapat
sanggahan dari beberapa praktisi seperti Mark C dkk [27] dan [28]. Para
penyanggah menekankan bahwa pembandingan NoSQL dengan basis data relasional
adalah tidak tepat, karena keduanya memiliki tujuan penggunaan yang berbeda,
basis data relasional untuk aplikasi yang sensitif terhadap konsistensi
sedangkan NoSQL ditujukan untuk pemrosesan data skala besar dan tidak sensitif terhadap
konsistensi. NoSQL juga memang bukan untuk menawarkan solusi yang baru, namun
lebih pada solusi lama yang dapat digunakan untuk menangani permasalahan baru.
Konsep utama dari penerapan NoSQL adalah
bagaimana mengatasi jumlah data yang sangat besar dan ledakan data dalam
aplikasi web sebagai paridigma baru dalam penerapan teknologi basis data.
Permasalahan dalam RDBMS mengenai skalabilitas dan partisi data dapat diatasi
dengan menggunakan NoSQL. NoSQL memiliki beberapa keunggulan seperti basis data
non-relasional (meliputi hirarki, graf, dan basis data object oriented);
MapReduce yang diambil dari fungsi pemrograman diterapkan untuk menghasilkan
dataset yang besar; Schema-free yang memungkinkan dimana tidak terdapat tabel,
kolom, kunci primer dan sekunder, join, dan relasi.
Empat model data NoSQL juga telah berhasil
diinvestigasi dalam penelitian ini, yaitu column-oriented, document-oriented,
object-oriented, dan graph-oriented. Sistem pembagian data dapat dilakukan
dengan memenuhi dua dari tiga teori CAP. Untuk peningkatan horizontal scaling,
NoSQL mengorbankan konsistensi. Meskipun demikian NoSQL merupakan alternatif
dari RDBMS dalam hal pendistribusian data, bukan penanganan masalah secara
keseluruhan terutama transaksi yang tinggi. NoSQL tidak menerapkan konsistensi
dan integritas data, hal ini membuat programmer harus bekerja ekstra dalam
untuk mengatasinya dari sisis pemrograman.
- N. Arif, NoSQL: the End of RDBMS? http://arifn.web.id/blog/2010/05/05/nosql-the-end-of-RDBMS.html, diakses pada 15 February 2011
- Wei, Kang, Sicong, Tan, Qian, Xiao, Amiri, Hadi, ”An Investigation of No-SQL Data Stores”. http://www.comp.nus.edu.sg/~ozsu/cs5225/Projects/CS5225Final_v15.pdf, diakses pada 10 February 2011.
- N. Lynch and S. Gilbert, “Brewer's Conjecture and The Feasibility of Consistent, Available, Partition-tolerant Web Services”, ACM SIGACT News, 2002, vol. 33 Issue 2, pp. 51-59
- Xiang, P., Hou, R., and Zhou, Z., “Cache and Consistency in NOSQL,” 3rd IEEE International Conference on Computer Science and Information Technology ICCSIT, 2010. Vol. 6, pp. 117-120
- Mark C. Chu-Carroll, Databases are hammers; MapReduce is a screwdriver, http://scienceblogs.com/goodmath/2008/01/database_are_hammers_mapreduc.php, diakses pada 10 February 2011.
- Relational Database Experts Jump The MapReduce Shark, http://typicalprogrammer.com/programming/mapreduce/, diakses pada 10 Feb 2011.