logo mongodb sayagusti

Data Model MongoDB vs Relasional

Salah satu jenis basis data NoSQL yang termasuk kategori dokumen adalah MongoDB. Tapi, maksudnya kategori dokumen itu apa ? Bicara soal dokumen, mungkin yang terbayang adalah suatu file yang terdiri dari banyak baris berisi tulisan.

Betul, bentuk data model yang seperti itulah yang membuat MongoDB masuk kategori dokumen. Sebagian orang sudah sering melihat dan mengetahui cara menyajikan data dengan tabel. Lalu apa perbedaannya dengan dokumen ? Apa dokumen bisa diterjemahkan ke dalam tabel ? Bagaimana kuerinya ?

Data pada MongoDB memiliki struktur yang sama dengan JSON (Java Script Object Notation) yang bentuk sederhananya bisa dilihat pada gambar di bawah :

Gambar 1. Contoh JSON

Jawaban dari pertanyaan “kenapa MongoDB masuk kategori dokumen ?” ada pada penjelasan di atas. Kalau belum paham, ayo lanjut dulu.

Ada tiga alasan mengapa format JSON digunakan:
JSON tidak terikat bahasa tertentu. Meskipun terdapat kata JavaScript, tetapi file .json dapat diolah dengan bahasa apa saja
– Bagi yang sudah familiar dengan pemrograman, sintaks JSON mirip seperti struktur data beberapa bahasa pemrograman misalnya C++ dan Java
Format JSON memang dirancang untuk penyimpanan data. Ya begitulah

Kembali lagi ke gambar 1, dari situ dapat kita pisahkan yang mana field dan yang mana value. Apa maksudnya ? Jadi, value adalah yang disebelah kanan titik dua (:). Terdapat enam jenis tipe value JSON:

  • String
  • Angka
  • Boolean
  • Null
  • Array
  • Dokumen
Gambar 2. Jenis value pada JSON

Sedangkan field adalah yang disebelah kiri tanda titik dua (:). Field hanya memiliki satu jenis tipe yaitu string.
Bentuk JSON di atas bila direpresentasikan ke dalam tabel menjadi seperti ini :

Gambar 3. Bentuk tabel

Semoga gambar 3 di atas bisa memberi pencerahan tentang perbedaan struktur dokumen dan tabel. Sebelum lanjut, kenapa contoh yang ditunjukkan oleh kedua gambar tidak disertai tanda kutip di bagian field ? Padahal bentuk standar string ada tanda kutipnya.
Jawabannya karena tanda kutip tidak wajib digunakan bila field terdiri dari huruf alfabet. Tanda kutip harus dituliskan bila field adalah angka atau karakter, pokoknya selain alfabet.

Bagaimana dengan kuerinya ? Kita gunakan dokumen pada gambar 1 sebagai contoh.

Gambar 4. Perbandingan kueri

Kueri yang setara dengan join pada SQL hanya membutuhkan satu baris saja dengan MongoDB. Hal inilah yang membuat MongoDB dapat dibilang nyaris tanpa skema. MongoDB juga tidak ada istilah primary key seperti pada basis data relasional, namun setiap dokumen memiliki pengenal yang disebut _id yang unik meskipun fungsinya berbeda dari primary key.

Sekian dulu, semoga bermanfaat. Lain kali saya bahas contoh kueri SQL dan MongoDB menggunakan command shell.

 

 

Waaw… Keren sekali !

One thought on “Data Model MongoDB vs Relasional”

  1. The relevant technical considerations, such as differences between the relational and document data models and the implications for schema design.

Komentarin dooong...

Your email address will not be published. Required fields are marked *