Tuesday, November 22, 2011

MongoDB : Introducing

MongoDB adalah sebuah Database yang bersifat Open Source yang memiliki High Performance.


MongoDB sebuah database dengan konsep manajemen database berorietasi Dokumen Yang dibuat menggunakan bahasa pemrograman C++.

Database Berorientasi Dokumen adalah sebuah program komputer yang dirancang untuk menyimpan, mengambil dan mengelola data yang berorientasi dokumen. 

Database berorientasi Dokumen adalah salah satu dari kategori database yang di kenal dengan istilah populer NoSQL.

NoSQL singkatan dari Not Only SQL. Artinya sebuah sistem basis data yang tidak harus menggunakan perintah SQL (Structrue Query Language) untuk melakukan proses manipulasi data.

Development MongoDB dimulai pada bulan Oktober 2007 oleh Perusahaan Developer Software di New York bernama 10Gen yang secara resmi mongoDB Realese pertama kali pada tahun 2009. Website resmi MongoDB dapat diakses di www.mongodb.org

MongoDB tersedia dalam berbagai Operating System yang dapat dilihat di www.mongodb.org/downloads dan menyediakan driver untuk berbagai bahasa pemrograman dapat dilihat di http://www.mongodb.org/display/DOCS/Drivers

Konsep Database berorientasi dokumen berasal dari layaknya sebuah dokumen yang secara umum, dokumen melakukan enkapsulasi dan encoding data dalam beberapa format standar seperti XML, YAML, JSON, BSON, atau bentuk biner seperi PDF, MS Word, Excel dll.

Sintak yang digunakan dalam melakukan manipulasi data pada database MongoDB menggunakan BSON. 

BSON singkatan dari Binary JSON, Sintak dari BSON mewakili dari sebuah struktur data yang sederhana. Website resmi BSON dapat dilihat di bsonspec.org

Pada MongoDB tidak ada namanya table, field dan record seperti pada Database Relational (MySQL, Oracle, dsb), tetapi yang ada pada mongoDB terdapat terminologi sebagai berikut.
  • Collection dapat dianalogikan Table pada database relational (MySQL, Oracle, dsb)
  • Dokumen dapat dianalogikan Record pada database relational (MySQL, Oracle, dsb). 
Atribute Dokumen pada MongoDB bersifat fleksible jumlahnya, sebagai contoh sebuah dokumen dapat terdiri dari 3 atribute dan dokumen yang lainnya lebih dari 3 atribute dialam collection yang sama. Tidak seperti pada database relational yang jumlah atribute bersifat statis untuk semua record pada table yang sama. 

MongoDB merupakan sistem database yang menggunakan konsep key-value artinya setiap dokumen/record pada pada mongoDB memiliki Key.

MongoDB memiliki fitur Replikasi yang sangat bermanfaat untuk sebuah sistem dalam  proses backup data secara realtime.

MongoDB memiliki fitur Sharding yaitu sebuah fitur untuk memecah database yang besar menjadi beberapa bagian dengan tujuan meningkatkan performance. 

Sebagai contoh adalah memecah database sebuah website network sosial menjadi menjadi beberapa buah berdasarkan benua (Asia, Eropa, Amerika, Australia).

Mungkin pada masa sekarang semua database berjenis NoSQL tidak mendukung proses transaksi (Tidak ada roolback jika di MySQL). 

Fitur transaksional sangat diperlukan pada pada proses transaksi sensitif, seperti hal yang bekaitan dengan keuangan, karena Fitur transaksional memiliki peran menjaga validitas sebuah data. 

MongoDB belum cocok untuk digunakan dalam kasus sistem berbasis transaksi karena memiliki kemungkinan kegagalan.

MongoDB sangat cocok untuk membangun sistem seperti website berita, blog, forum, portal, sosial networking atau sebuah sistem yang high trafik dan tidak memerlukan proses transaksi karena memberikan performance yang sangat baik.

Berikut ini adalah hasil banckmark melakukan insert data sebanyak 1 juta record antara MongoDB, MySQL With Engine InnoDB, MySQL with MyISAM.


Hasil banckmark diatas berdasarkan artur.ejsmont.org. Atau kita bisa juga liat hasil backmark yang di bikin oleh orang lain di obvioushints.blogspot.com dan gist.github.com

Kesimpulan hasil banckmark adalah MangoDB memberikan kinerja yang baik dan dapat menjadi alternatif database untuk sistem yang high trafik.

MongoDB telah banyak yang menggunakan seperti foursquare, kompasiana, disney, sap, forbes, sourceforge, github, dll

No comments:

Post a Comment