1.07.2015

Apa Itu MongoDB dan JSON Document Store?


Beberapa hari yang lalu saya membuat tulisan tentang MongoDB University, pelatihan mongodb yang diselenggarakan oleh pembuatnya sendiri. Dan pelatihannya mulai dari kemarin, karena perbedaan zona waktu, sehingga baru kemarin malam saya mendapatkan email tentang materi yang harus dipelajari untuk minggu ini, kuis, dan tugas yang harus diselesaikan. Dan salah satu materi tahap awal berjudul "What is MongoDB?".


MongoDB adalah sebuah non-relational data store. Dikatakan non-relational karena mongodb ini tidak menyimpan datanya pada sebuah tabel seperti yang dilakukan oleh relational database lainnya dan mongodb menyimpannya dalam bentuk JSON Documents. Lalu apa itu JSON?

JSON adalah singkatan dari Javascript Object Nation. Dimana terdapat atribut 'key' dan 'value' didalamnya. Contonya seperti ini:

{'name' : 'Asep Maulana Ismail'}

Contoh diatas merupakan contoh sederhana dari JSON Document, dimana dia memiliki key 'name' yang bernilai 'Asep Maulana Ismail'. Dan kita juga bisa membuat dokumen JSON yang lebih kompleks. Contohnya seperti ini:

{
    'a': 15,
    'b': 6,
    'c': 92
}

Dokumen JSON diatas memiliki 3 atribut 'key' (ditandai dengan kutip satu) yang berbeda yaitu 'a' yang bernilai 15, 'b' yang bernilai 6, dan 'c' yang bernilai 92.

Dan contoh dokumen JSON diatas akan disimpan didalam mongodb. Dikatakan non-relational karena seperti yang kita lihat, struktur data tersebut hampir sama dengan struktur data sebuah tabel, tapi dokumen JSON dapat memiliki hierarki. Contoh data yang memiliki hierarki adalah seperti ini:

{
    'a': 15,
    'b': 6,
    'fruits': ['apple', 'pear', 'banana']
}

Dokumen JSON diatas memiliki atribut 'fruits' yang merupakan sebuah array yang berisi 'apple', 'pear', dan 'banana'. Dan ini tidak dapat dilakukan oleh relational table. Itulah yang disebut JSON Document Store. Dan faktanya, itulah yang membuat penerapan dalam program lebih mudah.

Dan ada satu lagi yang menarik pada mongodb adalah schemaless. Apa artinya?

Schemaless artinya dua dokumen (atau record) tidak harus memiliki schema/struktur yang sama. Jika dokumen pertama seperti ini:

{'a': 15, 'b': 6}

maka pada dokumen kedua, kita bisa membuat schema yang berbeda seperti ini:

{'a': 15, 'b': 6, 'c': 92}

Semoga bermanfaat.

0 comments:

Post a Comment