Pendahuluan MongoDB – The NoSQL Document Database

Saat data semakin besar, untuk mempertahankan performanya database relasional haus akan sumber daya (resources). Hal ini berakibat langsung ke membengkaknya cost/biaya operasional & infrastruktur yang dibutuhkan. Sehingga biasanya hanya perusahaan besar yang mampu untuk mempertahankan penggunaan database relasional saat datanya besar. Lebih jauh lagi, saat volume data membesar, format (struktur) data yang disimpan-pun semakin beragam (vary). Karena database relasional memiliki schema/struktur yang tetap (fixed), ia tidak lagi menjadi solusi yang feasible saat hal ini terjadi (minimal sangat menyulitkan).  Teknologi NoSQL seperti MongoDB hadir untuk mengatasi permasalahan di Data dengan Volume (besar data), Velocity (laju pertumbuhan data), & variety (Format data) yang besar dan beragam. Terdapat banyak pilihan teknologi NoSQL yang dapat digunakan (read here), namun kali ini akan dibahas dasar penggunaan NoSQL MongoDB. MongoDB memiliki beberapa kelebihan khusus dibandingkan NoSQL lainnya. Beberapa diantaranya adalah Schemaless, Dynamic Query, “Auto Sharding”, Spatial support, Distributed, Performa yang baik, gratis-open source (AGPL 3), OOP friendly, dan masih banyak lagi.

Di catatan kecil kali ini saya akan membahas tentang pengenalan MongoDB untuk pemula. Saya awali dengan pendahuluan MongoDB,  instalasi MongoDB & utility-nya, lalu sebuah contoh kasus yang akan digunakan sepanjang post ini, kemudian Query, indexing, dan juga tidak ketinggalan Driver MongoDB.

Pendahuluan MongoDB

MongoDB yang berasal dari kata humongous (Besar) adalah sebuah “database” berorientasi dokumen (JSON) yang dapat dijalankan di berbagai sistem operasi (Linux, Windows, Mac, dll). MongoDB sebenarnya tidak menyimpan filenya murni dalam bentuk Json, tapi Bson. Bson adalah bentuk binary dari Json, yang diharapkan memiliki performa lebih baik dari Json (mirip dengan Hadoop & HDFS-nya). Detail lebih lanjut tentang file format Bson dapat dibaca disini. Bagi developer (e.g. Java, C++, & PyThon), format Json/Bson ini lebih OOP friendly.

MongoDB digarap perusahaan MongoDB Inc (dulunya 10gen) sejak 2007. MongoDB baru menjadi project Open Source sejak 2009, dan mulai terkenal ketika nama-nama besar seperti FourSquare, eBay, New York Times, dan Craiglist menggunakan MongoDB di dalam system mereka.  Saat ini MongoDB adalah NoSQL paling popular dibanding pesaing-pesaingnya seperti CouchDB, cassandra, atau Neo4J. Sebagai sistem yang masih relatif muda, tentu saja MongoDB tidak terlepas dari berbagai kekurangan. Namun seiring dengan berjalannya waktu MongoDB telah membuktikan komitmennya untuk terus mengembangkan NoSQL yang terpercaya dan memiliki performa yang mumpuni. Salah satu bentuk kepercayaan yang MongoDB dapatkan adalah suntikan dana besar di tahun 2013 ($150 juta) dan proyeksi bahwa MongoDB akan menjadi bisnis miliaran dollar dalam tempo yang tidak terlalu lama. Prediksi tersebut tidak meleset, di Tahun 2015 MongoDB sudah bernilai $1.6 miliar.

Sebelum kita melangkah lebih jauh, mungkin perbedaan/padanan terminology antara MongoDB dengan terminology di database relasional (e.g. MySQL) berikut dapat memudahkan dalam memahami struktur MongoDB.
Relasional_vs_NoSQL
Catatan:  Primary key dengan menggunakan Auto Increment id seperti yang biasanya ada di database relasional tidak diperlukan di MongoDB. Setiap dokumen secara automatis akan memiliki field “_id” dan akan di index oleh MongoDB. _id digunakan MongoDB untuk meyakinkan bahwa setiap dokumen memiliki id yang unik. Format _id adalah BSon 12 byte: 4 byte (waktu epoch), 3 byte (machine id), 2 byte (process id), & 3 byte (counter). Contoh nilai _id : “5584aaca21cacd055a1b8fc1“. Walau _id bukanlah integer (auto increment), tidak usah hawatir mengakses dokumen dengan urutan tertentu, karena di MongoDB terdapat mekanisme “Natural Order”. Sehingga sebagaimana di database relasional kita bisa menggunakan Limit 50,100 di MongoDB kita juga bisa melakukan hal yang serupa.
◄◄ Home ___ ▲Beginning of The Article▲ ___ Instalasi►►

Leave a Reply