Apa itu Mongo DB, Perkenalan dan Teknologi yang digunakannya.

Pada artikel sebelumnya kita telah membahas database noSQL dan jenis-jenisnya. saya ingin menyegarkan kembali ingatan anda tentang database noSQL dengan model document singkatnya database model ini direpresentasikan dalam bentuk objek document dengan penulisan format Json.

Hubungannya dengan mongoDB adalah bahwa database mongoDB menganut konsep Document database, dan dalam pembuatannya mongoDB ditulis dengan menggunakan bahasa pemograman C++.

 

Jika anda terbiasa dengan database SQL yang berupa tabel saling berelasi mungkin sedikit mengalami kesulitan untuk beradaptasi dengan MongoDB. Karena saya mengalami hal serupa saya memerlukan waktu untuk membiasakan diri menggukan database model document. Disamping itu pula saya menganggap standart database relational lebih mudah untuk menetapkan aturan dan kiteria yang kita perlukan. Dan cukup memperhatikan normalisasi pada database agar tidak terjadi redudansi data (duplikasi data).

 

Namun setiap teknologi yang ada akan membawa plus-minus nya masing-masing. Penggunaan database SQl / relational database cenderung kaku dan tidak flexible, Jauh berbeda dengan model database document yang memberikan flexibelitas yang tinggi dalam pengelolaan data karena penyimpanan dan pemanipulasiannya terjadi dalam objek.

 

Perhatikan gambar dibawah ini untuk mengingatkan kembali ingatan anda kembali tentang pembahasa kita tentang database document dan flexiblelitas penggelolaan data dalam sebuah objek.

 

contoh penulisan objek dokumen dengan format penulisan Json.

 

Document dan Koleksi pada MongoDB

 

Kita akan membuat suatu analogi agar tidak bingung untuk memahami document dan koleksi pada MongoDB. Karena MongoDB menggunakan konsep model document. Jadi kumpulan beberapa document dalam satu file yang sama dapat dianalogikan layaknya table pada database SQL / relational database. Sedangkan Document sendiri dapat dinyatakan seperti record. Properti dalam objek dapat dinyatakan seperti kolom dan terakhir adalah setiap properti memiliki value mereka masing-masing.

 

contoh analogi document pada MongoDB

 

JSON (Javascript Object Notation)

 

Json merupakan representasi dari database model document jadi kita akan membahas bagaimana cara penulisan data dengan format json. Atau anda dapat menuju link di bawah ini untuk membaca langsung pada dokumentasi dari Json.

 

documentasi resmi Json

 

mengapa dinamakan Json? apakah Json adalah Javascript?

 

mari kita jawab satu persatu, dinamakan JSon karena format penulisannya mengadopsi penulisan data object pada javascript sehingga format ini di namakan notasi objek javascript, bagi anda yang sudah familiar dengan bahasa objek javascript pasti tidak akan mengalami kebingungan lagi untuk memahaminya.

 

Pertanyaan yang kedua. Sama sekali Json bukan bagian dari javascript! Json merupakan format penulisan yang mandiri dan dapat berdiri sendiri karena dengan hadirnya Json ini dapat menjadi jembatan dari sekian banyak bahasa pemograman untuk saling berkomunikasi karena hampir semua bahasa pemograman modern mendukung format penulisan data json.

 

Struktur penulisan json terbagi menjadi dua yaitu:

 

1. Struktur Berupa objek
yaitu penulisannya di awali dengan tanda buka kurung kurawal dan di akhiri oleh tutup kurawal, dimana setiap value diikat oleh properti/atribut. dan setiap objek atau properti dipisahkan dengan koma (,)

 

sumber: https://www.json.org/

 

bagi anda yang masih bingung bisa melihat potongan kode berikut ini

[{
  "nama" : "iqbal",
  "umur" : 23
}, 
{
  "nama" : "niyaz",
  "umur" : 2
}]

 

 

2. Struktur Berupa Array

 

Sama seperti penulisan array pada umumnya yang diawali dengan kurung buka siku [ dan diakhiri dengan kurung tutup siku ]. Menurut saya array adalah cara yang baik untuk mengelolah data. Semoga kedepannya saya bisa menulis tutorial kusus mengenai hal ini.

 

untuk penggambarannya dapat di lihat gambar berikut ini.

 

sumber: https://www.json.org/

 

value dalam array dapat berupa objek, karena kebiasaan saya dalam membuat aplikasi dengan format Json meletakan data kedalam array.

 

Sedangkan value pada Json dapat berupa objek, array, number, string, boolean dan Null. Untuk objek dan array dapat juga berupa nested object (objek bersarang) atau nested array (array bersarang).

 

sumber: https://www.json.org/

 

BSON (Binary Json)

 

Dokumen-dokumen yang disimpan dalam sebuah disk (hdd, ssd atau sebuah server) akan di tulis dengan format binary json. Untuk anda yang masih belum familiar dengan Bson anda dapat mengunjungi link berikut ini

 

the BSON specification

 

Format biner Bson memiliki fitur yang ringan dibandingkan dengan format biner yang lainnya, karena bson memiliki karakteristik ligthwight (ringan) ini menjadi hal penting melakukan transformasi data ke sebuah web. Selain itu Bson memiliki karakteristik Traversal (mudah dilalui) dan yang terakhir adalah karakteristik bson yang Efecient (efesien) yang menjadikannya memilki peforma yang sangat cepat dan mudah dinavigasi saat encode dan decode data.

 

berikut ini adalah beberapa tipe dari data yang di representasikan dalam format Bson:

 

  • String UTF-8 (string)
  • Integer 32-bit (int32)
  • Integer 64-bit (int64)
  • Floating point / bilangan pecahan (double)
  • Document (document)
  • Array (document)
  • Binary data (binary)
  • Boolean false (\x00 or byte 0000 0000)
  • Boolean true (\x01 or byte 0000 0001)
  • Null value ()
  • Regular expression (cstring)
  • JavaScript code (string)
  • JavaScript code w/scope (code_w_s)
  • • ObjectId (byte*12)

 


 

Kesimpulan

 

Dari penjelasan di atas kita akan menarik kesimpulan mengapa kita perlu mempelajari mongoDB guna membangun aplikasi yang moderen.

 

  1. MongoDB menganut model document database ini yang menjadikan mongoDB dalam mengelolah data menjadi lebih flexible berdasarkan kebutuhan dari aplikasi
  2. MongoDB menggunakan format penulisan Json yang mana hampir semua bahasa pemogramanan moderen mendukung penuh format pernulisan ini.
  3. MongoDB menggunakan format penyimpanan data dalam sebuah disk dalam bentuk BSON (Binary Json) yang memiliki karakterisktik, ligthweight (ringan), traversable (mudah dilalui) dan efecient (efesien).

sumber:

https://medium.com/@iqbal.abuniyaz/apa-database-nosql-dan-jenis-jenis-database-nosql-4a355977d763