Kamis, 12 September 2013
Sekilas Tentang NoSQL
Sebelum lanjut, kita perlu kenali terlebih dahulu konsep NoSQL. Buat apa? Pertanyaan yang bagus. NoSQL (singkatan dari Not Only SQL) sendiri adalah tipe database yang sangat jauh berbeda dengan konsep RDBMS ataupun ODBMS. Perbedaan utamanya sendiri yaitu karena tidak mengenal istilah relation dan tidak menggunakan konsep schema. Kalau biasanya Anda menggunakan query ‘Join’ di sini Anda tidak bisa menggunakannya karena setiap tabel berdiri sendiri tanpa tergantung dengan tabel lainnya alias independen.
Selain itu kalau di dalam konsep DBMS biasanya sebelum insert data Anda diharuskan untuk mendefinisikan terlebih dahulu struktur tabel seperti tipe data dan ukurannya, di konsep NoSQL ini Anda bisa menyimpan data tanpa perlu mendefinisikan tipe data dan ukurannya lagi. Jadi lebih fleksibel bila ada perubahan di masa mendatang. Adapun beberapa database NoSQL yang ada saat ini yaitu Cassandra, Big Table, CouchDB, Redis, Riak, Dynamo dan lainnya. Tentunya yang akan kita bahas di sini secara khusus adalah MongoDB.
Apa itu MongoDB ?
MongoDB merupakan sebuah sistem basis data yang berbasis dokumen (Document Oriented Database). Bagi pengguna RBDMS mungkin agak membingungkan, karena dalam MongoDB tidak ada yang namanya tabel, kolom dan baris. Dalam MongoDB yang ada hanyalah koleksi dan dokumen. Koleksi dalam MongoDB bisa kita anggap sebuah Folder (Directory) dan Dokumen bisa kita anggap berkas (File) dalam Folder (Koleksi) tersebut.
Jika dibandingkan dengan RDBMS seperti MySQL, Koleksi dapat diibaratkan dengan Tabel dan Dokumen dapat diibaratkan dengan Baris dalam Tabel tersebut. Namun berbeda dengan Baris pada RDBMS, dokumen yang terdapat dalam MongoDB dapat memiliki berbeda atribut dengan dokumen lain walaupun berada dalam satu koleksi. Hal ini tidak dapat dilakukan dalam RBMS dimana sebuah baris dalam Tabel tidak mungkin memiliki kolom yang berbeda dengan baris yang lain jika berada dalam satu tabel.
Mengapa MongoDB ?
MongoDB merupakan sistem basis data yang menggunakan konsep key-value, artinya setiap dokumen dalam MongoDB pasti memiliki key. Hal ini berbeda dalam RDMBS yang kita bisa tidak menggunakan primary key ketika membuat sebuah tabel. Sehingga walaupun kita membuat sebuah dokumen tanpa menggunakan primary key, tapi secara otomatis MongoDB memberinya sebuah key. Penggunaan konsep key-value sangat berperan penting, karena hal ini membuat MongoDB menjadi sistem basis data yang sangat cepat jika dibandingkan dengan non key-value seperti RDBMS.
MongoDB mendukung replikasi, selain itu konfigurasi replikasi pada MongoDB sangatlah mudah jika dibandingkan sistem basis data RDBMS (IMHO). Hal ini membuat pemilik sistem yang memiliki traffic membaca tinggi (seperti portal berita, forum dan blog) akan sangat terbantu ketika sistemnya akan menggunakan replikasi.
Selain replikasi, MongoDB juga mendukung sharding. Jika Anda pernah melakukan sharding di RDBMS yang sangat berdarah-darah, maka akan sangat kagum dengan sharding di MongoDB. Kapan kita menggunakan sharding? Saat Anda memiliki website yang sudah sangat besar jumlah penggunanya, datanya mencapat jutaan giga byte. Anda dapat menggunakan sharding, misal membasis basis data Anda menjadi per regional.
Kapan tidak menggunakan MongoDB ?
Hampir semua sistem basis data NoSQL tidak mendukung proses transaksi. Padahal hal ini sangat penting jika kita membangun sistem yang selalu memerlukan proses transaksi seperti sistem Bank misalnya. Oleh karena itu MongoDB sangat tidak cocok jika digunakan untuk membangun sistem berbasis transaksi, karena jika sistem basis data NoSQL (seperti MongoDB) digunakan dalam kasus ini, maka bisa dipastikan akan banyak terjadi kegagalan dalam sistem, terutama saat proses transaksi.
Kapan menggunakan MongoDB ?
MongoDB merupakan basis data yang tidak relasional, hal ini membuat MongoDB sangat cepat saat melakukan proses manipulasi data dari pada sistem basis data relasional, selain itu MongoDB berbasis dokumen yang tidak memiliki struktur data yang teratur seperti tabel. MongoDB sangat cocok untuk membangun sebuah sistem seperti blog, forum, portal berita, social networking, dan website yang tidak membutuhkan proses transaksi seperti sistem bank
Langganan:
Komentar (Atom)