Sebelum membahas MongoDB, kita perlu kenali dulu konsep NoSQL. NoSQL singkatan dari Not Only SQL. NoSQL sendiri adalah tipe database yang sangat jauh berbeda dengan konsep RDBMS atau ODBMS. Perbedaan utamanya sendiri adalah karena tidak mengenal istilah relation dan tidak menggunakan konsep skema. kalau biasanya menggunakan query "Join" disini tidak bisa menggunakannya karena setiap tabel berdiri sendiri tanpa tergantung dengan tabel lainnya (independen).
Selain itu kalau di dalam konsep DBMS biasanya sebelum insert data diharuskan untuk mendefinisikan terlebih dahulu struktur tabel seperti tipe data dan ukurannya, di konsep NoSQL ini 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 MongoDB, Cassandra, Big Table, CouchDB, Redis, Riak, Dynamo dan lainnya. Tentunya yang akan di bahas di sini secara khusus adalah MongoDB..
Perbedaan NoSQL dengan SQL :
1. Perbedaan
utama yang menyolok antara SQL dan NoSQL ada di dalam cara penulisan database
mereka. Jika SQL menggunakan relasional sebagai penyambung antara data – data
di dalam tabel database mereka. Dan NoSQL tidak menggunakan Relasional sebagai
cara mereka untuk menyambungkan antar data mereka. NoSQL menggunakan 4 metode
dalam cara mereka untuk menstored data, Key Values stores, Document oriented,
Table Oriented, dan terakhir Graph Oriented.
2. Perbedaan
yang kedua NoSQL tidak menggunakan Schema relational, jika di dalam SQL kita
harus mendefinisikan table yang akan digunakan. Berbeda dengan SQL, NoSQL tidak
perlu untuk mendefinisikan terlebih dahulu Table yang akan digunakan.
3. Ketiga NoSQL
memiliki kemampuan elastisa yang lebih
baik dibandingkan SQL. Untuk menambah jumlah server basis data di dalam NoSQL lebih mudah.
4. Integrated
Caching, NoSQl memiliki kemampuan untuk mentransformasikan data dengan lebih
cepat hal ini dikarenakan NoSQL menggunakan cache-nya di dalam sistem memori.
MongoDB
- Apa itu MongoDB?
MongoDB merupakan database open source berbasis dokumen
(Document-Oriented Database) yang awalnya dibuat dengan bahasa C++. MongoDB
sendiri sudah dikembangkan oleh 10gen sejak Oktober 2007, namun baru
dipublikasikan pada Februari 2009. Selain karena performanya 4 kali lebih
cepat dibandingkan MySQL serta mudah diaplikasikan, karena telah tergabung juga
sebagai modul PHP.
Dalam konsep MongoDB tidak ada yang namanya tabel, kolom ataupun baris yang ada hanyalah collection (ibaratnya tabel), document (ibaratnya record). Data modelnya sendiri disebut BSON dengan struktur mirip dengan JSON. Strukturnya cukup mudah dibaca, contohnya seperti ini.
Dalam konsep MongoDB tidak ada yang namanya tabel, kolom ataupun baris yang ada hanyalah collection (ibaratnya tabel), document (ibaratnya record). Data modelnya sendiri disebut BSON dengan struktur mirip dengan JSON. Strukturnya cukup mudah dibaca, contohnya seperti ini.
{
"nama" : "Ika", "kontak" : { "alamat" : "Jl. Imogiri Barat Km. 5", "kota" : "Yogyakarta", "kodepos" : "55187", "telp" : "62857432", } }
Dengan konsep key-value yang ada pada MongoDB, setiap
document otomatis memiliki index id yang unik. Hal ini membantu mempercepat
proses pencarian data secara global.
MongoDb
ditulis menggunakan C++, pertama kali di rilis tahun 2009. Saat ini Mongodb
telah banyak digunakan dan salah satu penggunanya, MTV Networks, Craiglist,
Foursquare, UIDA Aadhaar.
Mongodb
dikembangkan oleh 10gen. Pertama kali di kembangkan dimulai tahun Oktober 2007.
Dan dipublish pada februari 2009, saat ini Mongodb telah rilis mencapai 2.2.2
saat November 2012. MongoDB dirilis menggunakan GNU Affero General Public
License.
1. Performa yang ditawarkan MongoDB lebih cepat dibandingkan
MySQL ini disebabkan oleh memcached dan format dokumennya yang berbentuk
seperti JSON
2. Replikasi, adalah fitur yang sangat bermanfaat untuk backup
data secara realtime. MongoDB sangat cocok digunakan untuk portal berita
ataupun blog, namun belum cocok untuk digunakan pada sistem informasi yang
berkaitan dengan keuangan karena MongoDB tidak mendukung transaction SQL
3. Auto-sharding, merupakan fitur untuk memecah database yang
besar menjadi beberapa bagian demi optimalisasi performa database.
Penggunaannya sendiri sangat berguna ketika memiliki website dengan
database yang jutaan baris, sharding akan membantu memecahnya menjadi beberapa
bagian
4. MongoDB juga sudah mendukung C, C++, C#, Erlang, Haskell,
Java, JavaScript, .NET(C# F#, PowerShell), Lips, Perl, PHP, Python, Ruby dan
Scala
5. Cross-platform, sehingga dapat digunakan di Windows, Linux,
OS X dan Solaris
6. Proses CRUD (Create, Read, Update, Delete) terasa sangat
ringan
7. Map/Reduce, akan sangat membantu ketika kita melakukan
operasi agregasi. Dimana semua entry datangnya dari collection dan outputnya
pun akan menjadi collection juga. Kalau di MySQL biasanya kita menggunakan
query GROUP BY
8. GridFS, spesifikasi yang digunakan untuk menyimpan data yang
sangat besar
1. MongoDB
harus diinstall di sebuah server.
2. MongoDB
belum support di banyak hosting.
3. Tidak
cocok untuk aplikasi proses transaksi.
1. Model
document-oriented storage
2. Dukungan
penuh untuk indexing data
3. Mendukung replikasi
database dan trafik data tinggi
4. Auto-sharding
(partisi database otomatis)
5. Mendukung fitur map and reduce
Sebagai contoh kali ini mencoba untuk
menginstalasi MongoDB di Windows. Sebelum memulai, Anda harus mengunduh dari
link berikut ini (tersedia untuk 32-bit dan 64-bit) http://www.mongodb.org/downloads
Setelah diunduh silahkan diekstrak di drive C (bisa juga di drive lainnya). Buatlah folder sebagai lokasi penyimpanan database misalnya folder DB, dengan path seperti ini :
Setelah folder di atas dibuat, lalu buka command prompt dan ketikkan perintah berikut ini:
Perintah di atas digunakan untuk menjalankan MongoDB, jangan tutup jendela command prompt, tapi buka 1 lagi yang baru ( jadi ada 2 jendela command prompt dibuka). Ketik perintah berikut ini :
Untuk melihat database apa saja yang ada di MongoDB, ketikkan
perintah berikut :
Demikian sedikit ulasan mengenai MongoDB. Semoga bermanfaat :) Sumber: |