MongoDB

Apa itu MongoDB dan Apa saja Fitur di Dalamnya?

Di dunia per-NonSQL-an, mungkin kamu mengenal MongoDB. Database yang katanya mudah skalabilitasnya. Apakah benar?

Artikel ini akan membahas mengenai apa itu MongoDB, fitur MongoDB, contoh data pada MongoDB, mengapa MongoDB, serta kelebihan dan kekurangan MongoDB. Simak terus sampai akhir ya.

Apa itu MongoDB ?

MongoDB adalah database non relasional (NoSQL) yang berorientasi dokumen yang digunakan untuk penyimpanan data dengan volume yang besar.

MongonDB tidak seperti database relasional tradisional yang menggunakan tabel dan baris untuk menyimpan data, akan tetapi menggunakan koleksi (collections) dan dokumen (documents). Untuk selanjutnya Ngoolie.id akan menggunakan istilah bahasa inggris untuk menyebut collections dan documents.

Documents pada MongoDB adalah unit dasar dari data yang terdiri dari sekumpulan nilai kunci. Mudahnya documents ini mirip seperti baris pada tabel, akan tetapi tidak semata-mata bisa diartikan sebagai baris. Documents MongoDB dapat tersusun dari beberapa informasi data yang saling berelasi, dan jika kita pecah ke bagian terkecilnya bisa jadi akan terbentuk beberapa baris data. Kita akan membahas lebih detail pada contoh nanti.

Collections pada MongoDB berisi sekumpulan dokumen dan fungsi yang setara dengan tabel database relasional. Umumnya collections MongoDB menyimpan documents yang memiliki fungsional sama, meskipun secara skema data di dalam masing-masing documents bisa jadi berbeda-beda. Kita akan membahas lebih detail pada contoh nanti.

Ilustrasi MongoDB

MongoDB diklaim terkenal karena kemampuan penskalaan horizontal (horizontal scaling) dan penyeimbangan muatannya (load balancing), yang telah memberi pengembang aplikasi tingkat fleksibilitas dan skalabilitas yang belum pernah terjadi sebelumnya.

Platform database MongoDB telah diunduh lebih dari 200 juta kali dengan lebih dari 1,8 juta pendaftaran Universitas MongoDB. Ada driver untuk lebih dari 10 bahasa, dengan lusinan lainnya ditambahkan oleh komunitas. Dan bagusnya lagi, MongoDB sepenuhnya gratis untuk digunakan.

Fitur MongoDB

Mari kita bahas satu per satu fitur teknikal yang ada pada MongoDB:

  • Model Documents

Penggunakan model documents yang dikelompokkan ke dalam grup collections telah membuat MongoDB memiliki fleksibilitas yang tinggi. Alih-alih developer harus pusing memikirkan bagaimana memecah data ke dalam banyak tabel yang rigid, dengan MongonDB developer lebih fokus pada data yang disimpan dan diproses. Sehingga, dengan MongoDB developer bisa lebih produktif.

Documents MongoDB juga disimpan dalam format BSON (binary-encoded JSON ). Karena disimpan dalam format binary, ini membuat performanya lebih cepat dibanding JSON.

  • Sharding

Sharding adalah proses pemisahan kumpulan data yang lebih besar di beberapa instance terdistribusi, atau “pecahan”. Ketika diterapkan pada kumpulan data yang sangat besar, sharding membantu database mendistribusikan dan mengeksekusi dengan lebih baik kueri yang mungkin bermasalah dan rumit. Tanpa sharding, penskalaan aplikasi web yang terus berkembang dengan jutaan pengguna harian hampir tidak mungkin dilakukan.

Sharding di MongoDB memungkinkan skalabilitas horizontal yang jauh lebih besar. Penskalaan horizontal berarti bahwa setiap shard di setiap klaster menampung sebagian dari kumpulan data yang dimaksud, yang pada dasarnya berfungsi sebagai database terpisah. Menggabungkan data pecahan yang didistribusikan membentuk satu database komprehensif yang jauh lebih cocok untuk menangani kebutuhan aplikasi yang populer dan terus berkembang tanpa downtime.

Semua operasi klien di lingkungan sharding ditangani melalui proses ringan yang disebut mongos. Mongos dapat mengarahkan kueri ke shard yang benar berdasarkan kunci shard. Pecahan yang tepat juga berkontribusi secara signifikan untuk penyeimbangan muatan yang lebih baik.

  • Replication

Saat data Anda hanya berada di satu server, data tersebut terpapar ke beberapa potensi titik kegagalan, seperti server mogok, gangguan layanan, atau bahkan kegagalan perangkat keras. Salah satu dari peristiwa ini akan membuat akses data Anda hampir tidak mungkin dilakukan.

Replikasi memungkinkan Anda menghindari kerentanan ini dengan menggunakan beberapa server untuk pemulihan bencana dan pencadangan. Penskalaan horizontal di beberapa server sangat meningkatkan ketersediaan data, keandalan, dan toleransi kesalahan. Secara potensial, replikasi dapat membantu menyebarkan beban baca ke anggota sekunder kumpulan replika dengan menggunakan preferensi baca.

Di MongoDB, set replika digunakan untuk tujuan ini. Server atau node utama menerima semua operasi tulis dan menerapkan operasi yang sama di seluruh server sekunder, mereplikasi data. Jika server utama pernah mengalami kegagalan kritis, salah satu dari server sekunder dapat dipilih untuk menjadi node utama yang baru. Dan jika node utama sebelumnya kembali online, ia melakukannya sebagai server sekunder untuk node utama yang baru.

MongoDB Atlas, platform DBaaS (Database-as-a-Service) MongoDB, memiliki minimal tiga set replika anggota. Mereka dapat menjangkau beberapa wilayah atau bahkan beberapa penyedia cloud pilihan Anda.

  • Authentication

Otentikasi adalah fitur keamanan penting di MongoDB. Otentikasi memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses database. Tanpa autentikasi, siapa pun dapat mengakses data Anda.

MongoDB menyediakan sejumlah mekanisme otentikasi bagi pengguna untuk mengakses database. Yang paling umum adalah Salted Challenge Response Authentication Mechanism (SCRAM), yang merupakan fitur bawaan. Saat digunakan, SCRAM mengharuskan pengguna untuk menyediakan database otentikasi, nama pengguna, dan kata sandi.

  • Database Triggers

Trigger di MongoDB Atlas adalah fitur canggih yang memungkinkan Anda mengeksekusi kode saat peristiwa tertentu terjadi di basis data Anda. Misalnya, Anda bisa menggunakan trigger untuk menjalankan skrip saat dokumen disisipkan, diperbarui, atau dihapus. Trigger juga dapat dijadwalkan untuk dieksekusi pada waktu tertentu.

MongoDB Atlas memungkinkan Anda membuat dan mengelola trigger dengan cara yang sederhana dan intuitif. Anda dapat mengontrol trigger Anda melalui UI Atlas.

Trigger adalah cara terbaik untuk melakukan audit, memastikan konsistensi data dan integritas data, dan untuk melakukan pemrosesan peristiwa yang kompleks.

  • Time Series Data

Data time series paling sering dihasilkan oleh perangkat, seperti sensor, yang merekam data dari waktu ke waktu. Data disimpan dalam kumpulan dokumen, yang masing-masing berisi stempel waktu dan nilai. MongoDB menyediakan sejumlah fitur untuk membantu Anda mengelola data time series.

Koleksi time series asli di MongoDB dirancang agar hemat penyimpanan dan bekerja dengan baik dengan urutan pengukuran. Anda memiliki sejumlah parameter untuk mengontrol penyimpanan data time series, termasuk perincian (rentang waktu antar pengukuran) dan ambang kedaluwarsa data lama.

  • Ad-Hoc Queries

Saat awal mendesain skema database, kita tidak tahu kedepan kueri yang seperti apa yang akan dijalankan oleh user. Kueri Ad-Hoc adalah kueri sesaat yang nilainya bergantung pada variabel. Setiap kali kueri ad-hoc dijalankan, hasilnya akan berbeda, tergantung pada variabel yang dimaksud.

Mengoptimalkan cara kueri ad-hoc ditangani dapat membuat perbedaan yang signifikan pada skala pengukuran, ketika ribuan hingga jutaan variabel mungkin perlu dipertimbangkan. Inilah mengapa MongoDB, skema database fleksibel yang berorientasi pada dokumen, menonjol sebagai platform database cloud pilihan untuk aplikasi perusahaan yang memerlukan analitik real-time. Dengan dukungan kueri ad-hoc yang memungkinkan pengembang untuk memperbarui kueri ad-hoc secara real time, peningkatan kinerja dapat mengubah permainan.

MongoDB mendukung kueri bidang, kueri geo, dan pencarian ekspresi reguler. Kueri dapat mengembalikan bidang tertentu dan juga memperhitungkan fungsi yang ditentukan pengguna. Ini dimungkinkan dengan indeks MongoDB, dokumen BSON, dan MongoDB Query Language (MQL). MongoDB juga mendukung agregasi melalui Kerangka Agregasi.

  • Indexing

Indeks dimaksukan untuk meningkatkan kecepatan dan kinerja pencarian. Kegagalan untuk menentukan indeks yang sesuai biasanya akan menyebabkan banyak sekali masalah aksesibilitas, seperti masalah dengan eksekusi kueri dan penyeimbangan muatan.

Tanpa indeks yang tepat, database terpaksa memindai dokumen satu per satu untuk mengidentifikasi dokumen yang cocok dengan pernyataan kueri. Tetapi jika ada indeks yang sesuai untuk setiap kueri, permintaan pengguna dapat dieksekusi secara optimal oleh server. MongoDB menawarkan berbagai indeks dan fitur dengan tata urutan khusus bahasa yang mendukung pola akses kompleks ke kumpulan data.

Khususnya, indeks MongoDB dapat dibuat sesuai permintaan untuk mengakomodasi pola kueri dan persyaratan aplikasi yang real-time dan selalu berubah. Mereka juga dapat dideklarasikan pada bidang apa pun di dalam dokumen Anda, termasuk yang terdapat di dalam array.

  • Load Balancing

Pada akhirnya, penyeimbangan muatan yang optimal tetap menjadi salah satu cawan suci manajemen database skala besar untuk aplikasi perusahaan yang berkembang. Mendistribusikan jutaan permintaan klien dengan benar ke ratusan atau ribuan server dapat menyebabkan perbedaan kinerja yang nyata.

Untungnya, melalui fitur penskalaan horizontal seperti replikasi dan sharding, MongoDB mendukung penyeimbangan muatan berskala besar. Platform ini dapat menangani beberapa permintaan baca dan tulis bersamaan untuk data yang sama dengan kontrol konkurensi terbaik di kelasnya dan protokol penguncian yang memastikan konsistensi data. Tidak perlu menambahkan penyeimbang beban eksternal—MongoDB memastikan bahwa setiap pengguna memiliki tampilan yang konsisten dan pengalaman berkualitas dengan data yang perlu mereka akses.

Baca juga: Kelebihan dan Kekurangan MongoDB

Kesimpulan

MongoDB adalah database non relasional yang berorientasi dokumen dalam penyimpanan datanya yang mana umumnya digunakan untuk menyimpan data dengan volume besar.

Documents adalah satuan terkecil dari kumpulan data yang disimpan pada MongoDB, dimana kumpulan dokumen yang memiliki fungsi yang setara akan dikelompokkan dalam collections.

Fitur MongoDB antara lain adalah Model Documents, Replication, Sharding, Authentication, Trigger, Time Series Data, Indexing, Ad-Hoc Queries, dan Load Balancing.