Tuesday, April 24, 2012

Mengenal MongoDB (tak kenal maka tak sayang)



MongoDB...

awal perjumpaan terasa aneh, Mongodb, dari namanya saja sudah aneh, terlebih ketika tau kl dia masuk keluarga NoSQL, eeeiittss, bukan dibaca "No SQL", tapi "Not Only SQL", aneh bukan???

akhirnya krn kebetulan dipekerjaan harus berhubungan dengan species lain dari database tersebut akhirnya terkesima jg dengan hasil yang didapat dan waw... ternyata mantabs...

y dah lanjut aja, tanpa membuang waktu lama ini dia beberapa penjelasan tentang MongoDB

MongoDB merupakan sebuah sistem basis data yang menganut paham NoSQL. NoSQL itu bukan berarti anti menggunakan SQL (No-SQL), tapi NoSQL itu singkatan dari Not Only SQL. Artinya sebuah sistem basis data tidak hanya harus menggunakan perintah SQL untuk melakukan proses manipulasi data. Kali ini kami akan membahas MongoDB dari sudut pandang pengguna sistem basis data relasional seperti MySQL, Oracle dan sejenisnya.

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.

Bahasa Perintah MongoDB
MongoDB tidak menggunakan bahasa yang biasa digunakan RDBMS (SQL atau PL/SQL). MongoDB menggunakan bahasa BSON, dimana BSON merupakan singkatan dari Binary JSON. Jika Anda terbiasa menggunakan JavaScript, pasti tidak akan terlalu sulit menggunakan MongoDB. Dibawah ini adalah contoh perintah MongoDB untuk menyimpan sebuah data Mahasiswa :
data = {
"nim" : "10106031",
"nama" : "Eko Kurniawan Khannedy"
}

db.mahasiswa.insert(data)
view raw mongodb.js This Gist brought to you by GitHub.

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.
Salah satu kelebihan MongoDB lainnya adalah, MongoDB mendukung model pemrograman MapReduce, sebuah konsep yang sangat fenomenal yang pernah dikeluarkan oleh Google dan saat ini banyak diimplementasikan seperti pada Apache Hadoop.

Dukungan Bahasa Pemrograman
Saat ini hampir semua bahasa pemrograman modern mendukung MongoDB, seperti Java, C/C++, Python, Ruby, PHP, C# dan lain-lain. Jika Anda membutuhkan driver MongoDB untuk bahasa pemrograman yang anda gunakan, Anda dapat mencarinya disini http://www.mongodb.org/display/DOCS/Drivers

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.

MongoDB di Dunia Nyata
Saat ini MongoDB sudah banyak digunakan di dunia nyata. Walaupun MongoDB merupakan sistem basis data yang bisa dibilang masih muda (Tidak seperti MySQL dan Oracle), tp MongoDB sudah banyak digunakan pada website-website besar seperti foursquare dan lain-lain.

Dari mana Belajar MongoDB
Jika Anda tertarik mempelajari lebih jauh tentang MongoDB, Anda dapat mencari informasinya disini http://www.mongodb.org/display/DOCS/Home, namun jika Anda fakir bandwitdh, Anda dapat mengunduh dokumentasi MongoDB disini http://dl.mongodb.org/dl/docs/

Selamat belajar :idea: Olways Think Smart :D


nb : teman" silahkan berkunjung ke forum saya :  SaungForum
       untuk pembahasan selengkapnya mengenai mongodb silahkan klik link ini SaungForumMongo

No comments:

Post a Comment