Minggu, 03 September 2017

MongoDB Ilu Inu IMU

I Love You
I Need You
I Miss You

+++++++++++++++++++++++

MongoDB adalah salah satu produk database noSQL OPEN SOURCE yang menggunakan struktur data JSON untuk menyimpan datanya.
MongoDB adalah salah satu database noSQL yang paling populer di internet.
MongoDB sering dipakai untuk aplikasi berbasis Cloud, Grid Computing, atau Big Data.

MongoDB lebih cepat dibandingkan MySQL, kini Sudah diimplementasikan pada Foursquare, Disney, Forbes, Sourceforge ataupun Github
tipe database :NoSQL (singkatan dari Not Only SQL) yaitu tidak mengenal istilah relation dan tidak menggunakan konsep schema.
Jika RDBMS menggunakan konsep query ‘Join’ maka Mongodb menyatakan bahwa tabel berdiri sendiri tanpa tergantung dengan tabel lainnya.
Pada RDBMS haruslah  mendefinisikan terlebih dahulu struktur tabel seperti tipe data dan ukurannya,
di konsep NoSQL ini tidak perlu.
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.

MongoDB merupakan database open source berbasis dokumen (Document-Oriented Database) yang awalnya dibuat dengan bahasa C++.
MongoDB sendiri sudah dikembangkan 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.

{
       "nama" : "riadi marta dinata",
       "kontak" : {
           "alamat" : "lp2maray Lenteng Agung Jakarta",
           "kota" : "Jakarta",
           "kodepos" : "12345",
  "telp" : "085279959498",
       }
}



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.
Kelebihan MongoDB

MongoDB hadir dengan beberapa kelebihan yaitu :
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.

4.Penggunaannya sendiri sangat berguna ketika Anda memiliki website dengan database yang jutaan baris, sharding akan membantu memecahnya menjadi beberapa bagian

5.MongoDB juga sudah mendukung C, C++, C#, Erlang, Haskell, Java, JavaScript, .NET(C# F#, PowerShell), Lips, Perl, PHP, Python, Ruby dan Scala
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


Instalasi MongoDB

Sebagai contoh kali ini, kita akan 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
atau
https://www.mongodb.com/download-center#enterprise

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 :
C:\Mongo\DB

Setelah folder di atas dibuat, lalu buka command prompt dan ketikkan perintah berikut ini:
C:\Mongo\bin>mongod –dbpath=C:\Mongo\DB

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 :

C:\Mongo\bin>mongo
MongoDB shell version: 1.8.2
connecting to: test


Untuk melihat database apa saja yang ada di MongoDB, ketikkan perintah berikut :
> show dbs;

Ingin menambahkan database baru? Coba ketik perintah ini
(Anda dapat mengubah nama ‘universitas’ sesuai dengan nama yang Anda inginkan) :
> use universitas
switched to db universitas

Sekarang Anda sudah punya database universitas,
sekarang saatnya kita membuat collection (bisa dianggap tabel),
caranya cukup mudah tak perlu membuat tipe data ataupun panjang data.
Cukup ketik perintah seperti berikut ini :

> db.mahasiswa.save({nama:’Budi’,NIM:’09136363',jurusan:’Sistem Informasi’,Fakultas:’Teknologi Informasi’})

Dari perintah di atas kita sudah memiliki 1 data mahasiswa yaitu Budi.
Intinya ketika kita membuat collection baru, kita juga sudah memiliki 1 data.
Selanjutnya Anda bisa menambah data baru lagi, dengan perintah insert seperti ini :

> db.mahasiswa.insert({nama:’Ani’,NIM:’09325336',jurusan:’Sistem Infomasi’,Fakultas:’Teknologi Informasi’})

Berarti kita sudah punya 2 baris data,
nah Anda juga bisa menampilkan data yang sudah Anda simpan tadi dengan perintah berikut :

> db.mahasiswa.find()
Maka datanya akan tampil seperti ini :

{ “_id” : ObjectId(“459c98a2d342c633c50c8eaa”), “nama” : ”Budi”, “NIM” :”09136363?, “jurusan” : “Sistem Informasi”, “Fakultas” : “Teknologi Informasi” }
{ “_id” : ObjectId(“459c995fd342c633c50c8eab”), “nama” : “Ani”, “NIM” : “09325336?, “jurusan” : “Sistem Informasi”, “Fakultas” : “Teknologi Informasi” }

Nah, kok tiba-tiba muncul id ya? Kalau di MySQL itu namanya Primary Key yang harus dibuat,
tapi di MongoDB, id muncul otomatis berikut datanya.
Selanjutnya kita akan mencoba untuk mengedit data, coba ketik perintah ini :

> person=db.mahasiswa.findOne({NIM:'09136363'})
{
"_id" : ObjectId("459c98a2d342c633c50c8eaa"),
"nama" : "Budi",
"NIM" : "09136363",
"jurusan" : "Sistem Informasi",
"Fakultas" : "Teknologi Informasi"
}
> person.jurusan='Teknik Informatika'
> db.mahasiswa.save(person);

Sedangkan perintah untuk menghapus data bisa dengan cara seperti ini :
db.mahasiswa.remove({NIM:'09136363'})
++++++




Berikut adalah pengelompokan Database NoSQL berdasarkan model penyimpanan data

Document Database contohnya MongoDB, setiap satu object data disimpan dalam satu dokumen. Dokument sendiri bisa terdiri dari key-value, dan value sendiri bisa berupa array atau key-value bertingkat.

Graph Format penyimpanan data dalam struktur graph. Format grap digunakan untuk data yang saling berhubungan seperti jejaring social. Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.

Key – Value contoh database jenis ini adalah Apache Cassandra.

Object Database. Format database yang disimpan dalam object object, Object disini sama dengan pengertian object di Pemrograman beroreintasi object , Contoh databasenya adalah Db4o.

Tipe lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu populer.

Kelebihan NoSQL di banding Relasional Database
NoSQL digunakan menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
Menggunakan OOP dalam pengaksesan atau manipulasi datanya.
NoSQL tidak mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL sangat cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini adalah Dynamic Schema.

Autosharding, istilah sederhananya, jika database noSQL di running cluster server (multiple server) maka data akan tersebar secara otomatis dan merata keseluruh server.

Kekurangan dari Database NoSQL
Hosting pada Nosql Masih cukup mahal , seperti beberapa layanan di luar negeri mencharge biaya 100-200 USD untuk hosting database noSQL. Selain itu, saya belum pernah menemukan hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.

Selain itu, karena bervariasinya produk dan format penyimpanan, berpindah antar satu produk database ke produk noSQL lainnya perlu waktu untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar lagi dari awal, berbeda dengan database RDMS.
Berikut adalah terminologi dan konsep di MongoDB dan perbandingan dengan konsep yang ada di SQL database.

 SQL                      Monggo DB
 database                 Database
 table                    Collection
 row                      Document atau BSON document
 kolom                    Field
 index                    Index
 table join               embeded document dan link




Tidak ada komentar:

Posting Komentar