MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Apa itu MongoDB, dan bagaimana cara kerjanya?

MongoDB adalah database NoSQL yang paling umum dan banyak digunakan. Ini adalah DB berorientasi dokumen sumber terbuka. NoSQL digunakan untuk merujuk pada 'non-relasional'. Ini berarti bahwa database MongoDB tidak didasarkan pada relasi tabular seperti RDBMS karena menyediakan mekanisme penyimpanan dan pengambilan data yang berbeda.

Format penyimpanan yang digunakan oleh MongoDB disebut sebagai BSON. Basis data dikelola oleh MongoDB Inc. dan dilisensikan di bawah Lisensi Publik Sisi Server (SSPL).

Di bawah ini adalah struktur dokumen MongoDB sederhana:

{
  title: 'FossLinux',
  by: 'Abraham',
  url: 'https://www.fosslinux.com',
  type: 'NoSQL'
}

Bagaimana cara kerjanya?

MongoDB bekerja dalam dua lapisan, yaitu:

  • Lapisan data
  • Lapisan aplikasi

Lapisan aplikasi biasanya disebut sebagai Lapisan Abstraksi Akhir. Ini berisi dua bagian:backend, bagian server, dan ujung depan, bagian antarmuka pengguna. Bagian frontend adalah tempat yang terlihat di mana pengembang, dengan bantuan MongoDB, berinteraksi dengan seluler atau web. Bagian backend mencakup server yang terutama digunakan untuk menjalankan logika sisi server. Selain itu, bagian server berisi driver dan shell mongo yang membantu interaksi server MongoDB menggunakan kueri.

Kueri dikirim ke server yang terletak di lapisan data. Server MongoDB menerima kemudian meneruskan kueri ke mesin penyimpanan, di mana operasi baca dan tulis pada file data yang sesuai dilakukan. Tujuan utama dari mesin penyimpanan adalah untuk mengelola data.

Catatan: Server MongoDB tidak melakukan operasi tulis dan baca.

Gambar di bawah mengilustrasikan cara kerja MongoDB:

Fitur utama MongoDB

Fitur utamanya meliputi:

1. Pengindeksan

Indeks dimaksudkan untuk meningkatkan kinerja dan kecepatan pencarian database. Kolom dalam dokumen database ini dapat diindeks dengan indeks/indeks primer dan sekunder. Tanpa pengindeksan, setiap dokumen dalam database harus dipindai untuk memilih yang cocok dengan kueri, yang terkadang cenderung tidak efisien. Oleh karena itu, pengindeksan harus ada untuk pencarian dokumen yang efisien, dan MongoDB menggunakannya untuk memproses traktat data besar secara ringkas.

MongoDB memungkinkan penggunanya untuk mengindeks bidang apa pun yang telah diindeks dengan indeks sekunder dan primer. Hal ini membuat pencarian kueri menjadi lebih cepat, sehingga meningkatkan kinerja secara keseluruhan.

2. Penyeimbangan beban

MongoDB menggandakan data untuk menjaga sistem tetap berjalan bahkan jika terjadi kegagalan perangkat keras. Selain itu, proses ini memungkinkan MongoDB untuk menjalankan beberapa server sehingga menyeimbangkan beban.

3. Kueri ad-hoc

MongoDB mendukung bidang, kueri rentang, dan pencarian ekspresi secara teratur. Kueri ini mengembalikan bidang dokumen tertentu, dan juga menyertakan fungsi JavaScript yang ditentukan pengguna. Kueri juga dapat dikonfigurasi untuk mengembalikan sampel acak dari hasil dengan ukuran tertentu.

4. Replikasi

Kumpulan replika yang disediakan MongoDB terdiri dari dua atau lebih salinan data. Kumpulan ini dapat bertindak sebagai replika primer atau sekunder kapan saja. Kumpulan replika utama melakukan baca dan tulis sementara kumpulan sekunder memelihara salinan data replika utama menggunakan replikasi bawaan. Jika replika utama gagal, kumpulan replika secara otomatis melakukan proses pemilihan untuk menentukan sekunder mana yang harus menjadi primer. Replika sekunder dapat melayani operasi baca secara opsional, tetapi data pada akhirnya konsisten secara default.

5. Penyimpanan file

Basis data ini memaparkan fungsi untuk manipulasi file dan konten kepada pengembang. Mongo DB dapat digunakan sebagai sistem file yang dikenal sebagai sistem file Grid (GridFS). Fungsi ini membagi file menjadi beberapa bagian dan menyimpan setiap bagian sebagai dokumen terpisah.

6. Agregasi

Untuk kegunaan yang efisien, MongoDB menyediakan kerangka kerja agregasi. Fitur ini memungkinkan pengembang untuk mengelompokkan data proses dan mendapatkan satu hasil bahkan setelah menjalankan operasi yang berbeda pada data grup. Ada tiga cara MongoDB menyediakan kerangka kerja agregasi:

  • Fungsi pengurang peta
  • Jalur agregasi
  • Agregasi tujuan tunggal.

Periksa gambar di bawah untuk melihat sekilas cara kerja agregasi di MongoDB:

7. Basis Data Tanpa Skema

Fitur tanpa skema memberi MongoDB lebih banyak fleksibilitas. Satu koleksi dapat menyimpan berbagai dokumen di MongoDB. Fakta bahwa ia tidak memiliki skema memungkinkannya untuk menyimpan dokumen terpisah dengan konten, bidang, dan ukuran lain dalam koleksi yang sama.

8. GridFS

Ini adalah fitur yang digunakan untuk menyimpan dan mengambil file di MongoDB. Ini membagi dokumen menjadi beberapa bagian yang dikenal sebagai potongan kemudian menyimpannya dalam dokumen yang berbeda. Semua potongan kecuali potongan terakhir memiliki ukuran penyimpanan default sekitar 255KB. GridFS sangat berguna untuk file lebih dari 16MB.

Catatan: Ketika GridFS ditanyai untuk sebuah file, ia mengumpulkan semua potongan terpisah yang diperlukan untuk membentuk file asli. Di bawah ini adalah metodologi kerja GridFS yang disederhanakan:

Komponen MongoDB

Komponen inti MongoDB dan penggunaannya meliputi:

  1. Koleksi – Mereka adalah satu set dokumen MongoDB. Rekan RDBMS mereka adalah tabel. Penting untuk dipahami bahwa koleksi tidak memaksakan struktur apa pun. Koleksi selalu ada dalam satu DB.
  2. Dokumen – Ini adalah kumpulan data yang disimpan dalam format BSON. Mitra RDBMS-nya adalah Row. Catatan di MongoDB dikenal sebagai Dokumen. Dokumen di MongoDB berisi nama bidang dan nilainya yang sesuai.
  3. Lapangan – Ini adalah elemen tunggal dalam dokumen MongoDB yang berisi nilai sebagai bidang dan pasangan nilai. Dalam database relasional, bidang dianalogikan dengan kolom. Bidang dapat disebut sebagai pasangan nama-nilai dalam dokumen secara sederhana.
  4. _id – Setiap dokumen MongoDB membutuhkan bidang ini. Bidang _id dapat disamakan dengan kunci utama dalam database relasional. Ini mewakili contoh atau nilai unik dalam dokumen MongoDB. Jika Anda dengan sengaja membuat dokumen di MongoDB tanpa bidang _id, dokumen itu akan dibuat secara otomatis.
  5. Kursor – Ini adalah pointer yang menunjukkan hasil set kueri. Melalui bantuan kursor, klien dapat mengambil hasil.
  6. JSON – Ini adalah notasi JavaScript. Ini adalah teks biasa, format yang dapat dibaca manusia yang digunakan untuk mengekspresikan data terstruktur. Ribuan bahasa pemrograman mendukung JSON.
  7. Basis Data – Seperti di RDBMS, di mana database adalah wadah tabel, di MongoDB, database adalah wadah koleksi. Setiap database berisi kumpulan filenya sendiri pada sistem file. Oleh karena itu, server MongoDB dapat menyimpan lebih dari satu database.

Edisi MongoDB

MongoDB telah dirilis dalam berbagai edisi, yaitu;

  • Server Komunitas MongoDB –  Ini adalah versi sumber terbuka MongoDB yang tersedia secara gratis untuk pengguna Linux, Windows, dan macOS.
  • Server MongoDB Enterprise –  Ini adalah versi komersial MongoDB dan dapat ditemukan sebagai bagian dari paket langganan MongoDB Enterprise Advanced.
  • Atlas MongoDB – Biasa disebut sebagai MongoDB Cloud. MongoDB Atlas adalah paket MongoDB berdasarkan permintaan yang sepenuhnya berjalan dan dikelola di platform Microsoft Azure, Google Cloud, dan AWS. Ini adalah versi MongoDB Enterprise yang dihosting di cloud. Edisi Atlas berisi semua fitur server MongoDB Enterprise dan banyak lagi. Oleh karena itu, ini menyiratkan bahwa MongoDB Atlas jauh lebih maju daripada semua edisi MongoDB lainnya.

Mengapa seseorang harus menggunakan MongoDB?

  1. Database relasional berisi data terstruktur, tetapi bagaimana dengan data tidak terstruktur? Pengguna masih dapat menambahkan berbagai bentuk data acak ke MongoDB bahkan tanpa menyatakan tipenya.
  2. Pengguna dapat memuat data volume besar dengan metode sharding bawaan, yang memisahkan data dan menyebarkannya dengan mudah ke berbagai server, berkat ketersediaan dan fleksibilitas MongoDB di lingkungan berbasis cloud.
  3. Skema dinamis MongoDB memungkinkan pengguna untuk bereksperimen dan mempelajari hal-hal baru dengan cepat. Apa pun dapat dimasukkan ke dalam MongoDB dengan cepat dan murah.
  4. Memudahkan pengumpulan data berbasis lokasi tanpa memerlukan prosedur yang rumit.
  5. Jutaan perangkat yang terhubung secara teratur menghasilkan data di Internet, sehingga sulit untuk mengekstrak dan memprosesnya, tetapi MongoDB dapat melakukannya dalam satu database.
  6. MongoDB dapat menyimpan berbagai macam data dari beberapa sumber untuk mendukung situs web berbasis CMS. Informasi ini mencakup tweet, komentar, pesan multimedia, dan jenis informasi lainnya.
  7. Ini adalah pendamping yang sangat baik untuk pengembangan aplikasi seluler.
  8. Ini dapat memberikan analisis klien waktu nyata kepada pengguna, memberikan pengalaman khusus yang sangat dibutuhkan.
  9. Ini adalah database murah. Jika Anda adalah bisnis mikro atau kecil, MongoDB adalah opsi penyimpanan yang lebih baik karena mudah dikelola dan disiapkan.
  10. Mesin telusur canggih di MongoDB akan memberi tahu pengguna dari mana data itu berasal.

Pro dan kontra dari MongoDB

Keuntungan

  1. MongoDB jauh lebih unggul daripada database relasional jika seseorang memiliki sejumlah besar data dan ingin menyebarkannya ke berbagai server untuk penyeimbangan beban.
  2. Kueri penelusuran di MongoDB lebih cepat karena harus diinterpretasikan ke dalam satu server untuk akses.
  3. Ini menawarkan keserbagunaan, yang menyiratkan bahwa mereka harus menggunakan MongoDB untuk menyimpan data tidak terstruktur karena ini adalah cara yang lebih mudah untuk melakukannya.

Kekurangan

  1. Di MongoDB, tidak ada cara untuk menggabungkan tabel; oleh karena itu, seseorang harus melakukannya secara manual setiap kali dia perlu menggunakan fitur ini, yang mengakibatkan pengkodean yang tidak sedap dipandang dan memakan waktu.
  2. Ini menggunakan banyak memori karena harus menyimpan kunci untuk setiap dokumen karena kemungkinan data yang bentrok.
  3. Saat Anda mulai menggunakan satu fitur, fitur tersebut mengunci seluruh database, menyebabkan masalah konkurensi.
  4. Ini tidak melakukan ini secara otomatis; maka pengguna harus secara manual memastikan bahwa operasi tersebut adalah transaksi.

10 FAQ MongoDB Teratas

Bagian ini akan memberikan jawaban atas beberapa pertanyaan umum MongoDB. Anda dapat memeriksanya karena sebagian besar pertanyaan umum telah dijawab, dan Anda mungkin beruntung menemukan solusi untuk masalah Anda di sini.

1. Bagaimana saya bisa belajar MongoDB?

Cara termudah dan paling umum untuk mempelajari MongoDB adalah melalui kursus pelatihan online yang disediakan oleh MongoDB untuk pengembang. Kursus dikembangkan dan diinstruksikan oleh insinyur ahli MongoDB yang fasih dengan MongoDB. Kursusnya gratis, dan mencakup setiap aspek yang perlu Anda ketahui untuk menjadi guru MongoDB. Sebagian besar ahli telah belajar menggunakan metode ini.

Karenanya Anda tidak akan menjadi pengecualian yang sangat baik jika Anda mengikutinya. Kursus Online menyediakan aplikasi dunia nyata yang membantu pengguna memahami lebih banyak tentang materi pelajaran ini. Pelatihan online bersifat mandiri, artinya Anda menentukan berapa lama waktu yang dibutuhkan untuk mempelajarinya. Selain itu, kursus adalah latihan tambahan yang membantu pemula belajar dan berlatih lebih banyak di MongoDB. Kunjungi Universitas MongoDB untuk mendapatkan banyak kursus gratis dan pelajari MongoDB.

2. Apakah Server MongoDB gratis untuk digunakan?

Ya. Server MongoDB gratis untuk digunakan tergantung pada paket yang Anda pilih untuk digunakan. Misalnya, server komunitas dapat diakses oleh semua pengguna. Namun, jika Anda menginginkan lebih banyak fungsi, Anda dapat menggunakan versi berbayar seperti edisi MongoDB Enterprise atau Atlas.

3. Jelaskan perbedaan antara MongoDB dan database relasional?

Sebagian besar database relasional seperti MySQL, Oracle, SQL Server, dan Postgres dibangun di atas arsitektur yang awalnya dirancang sejak lama (lebih dari 40 tahun). Persyaratan aplikasi pada waktu itu berbeda dengan persyaratan aplikasi modern.

MongoDB dibangun di atas arsitektur sistem terdistribusi, tidak seperti database relasional, yang memungkinkan pengguna untuk meningkatkan skala database mereka di berbagai instance dengan cepat. untuk analisis mendalam, lihat perbedaan antara MongoDB dan MySQL (database relasional.) Tujuan utama merancang MongoDB adalah untuk meningkatkan produktivitas. Fleksibilitas skema adalah yang dicari sebagian besar pengguna, dan itu adalah salah satu fitur fantastis yang ditawarkan oleh MongoDB.

4. Bagaimana cara mendapatkan lisensi komersial MongoDB?

Untuk mendapatkan lisensi komersial MongoDB, Anda dapat membelinya dari MongoDB Enterprise Advanced.

5. Jelaskan bagaimana data disimpan di MongoDB?

Di MongoDB, data disimpan dalam dokumen BSON yang menggunakan struktur data format JSON. Dokumen berisi lebih dari satu bidang, dan setiap bidang memiliki nilai tipe data tertentu yang mencakup data biner, larik, dan sub-dokumen. Dokumen yang memiliki struktur serupa disimpan dan diatur sebagai koleksi.

6. Di mana seseorang dapat menjalankan MongoDB?

Anda dapat mengunduh, menginstal, dan menjalankan MongoDB dari mana saja. Selama Anda menyelesaikan kebebasan penguncian platform, Anda dapat menjalankan MongoDB dari mana saja. Misalnya, versi MongoDB Atlas memberi pengguna layanan yang sepenuhnya disesuaikan dan dikelola di AWS, Google Cloud, dan Azure yang bekerja dengan prinsip bayar sesuai penggunaan. MongoDB Ops Manager adalah salah satu cara alternatif terbaik untuk menjalankan MongoDB di infrastruktur Anda. Ini memudahkan dan mempercepat tim untuk memantau, mencadangkan, menskalakan, dan menerapkan MongoDB.

7. Jelaskan mengapa MongoDB berguna?

MongoDB dibangun berdasarkan tiga prinsip desain utama yang memungkinkan pengguna secara kolektif membangun aplikasi yang lebih cepat dan berkualitas tinggi. Tiga prinsip desain inti adalah:

Desain Sistem Terdistribusi memungkinkan pengguna mengalokasikan data ke tempat yang mereka inginkan secara cerdas.
Pengalaman terpadu – memberikan kebebasan kepada pengguna untuk berlari di mana saja. Prinsip desain inti ini memungkinkan penghapusan vendor lock-in sekaligus memungkinkan pengguna untuk membuktikan aplikasi mereka di masa mendatang.
Model data dokumen – Fitur ini memberi pengguna cara terbaik dan sederhana untuk bekerja dengan data.

8. Kapan seseorang harus menggunakan MongoDB?

MongoDB adalah database NoSQL serbaguna yang dapat digunakan di seluruh aplikasi analitis dan berbagai aplikasi OLTP lainnya. Berbagai macam aplikasi dapat ditangani dengan MongoDB Atlas dan Server MongoDB.

9. Jelaskan Bagaimana MongoDB mengamankan data klien?

MongoDB berisi fitur ekstensif yang mengamankan, mendeteksi, mengontrol, dan mempertahankan data klien. Berikut adalah beberapa fitur utama yang membantu mengamankan data klien:

Otorisasi –
RBAC (Kontrol Akses Berbasis Peran) memungkinkan pengguna untuk mengonfigurasi izin terperinci yang memungkinkan pengguna atau hak istimewa berbasis aplikasi yang diperlukan untuk melakukan tugas mereka.

Audit sangat penting untuk kepatuhan terhadap peraturan karena memungkinkan admin keamanan menggunakan log audit asli MongoDB untuk merekam perubahan dan aktivitas basis data yang diberikan.

Otentikasi – MongoDB menawarkan mekanisme solid tantangan-respons yang menyederhanakan kontrol akses database berdasarkan SCRAM-256 bersama dengan pengenalan infrastruktur keamanan perusahaan terintegrasi. Selain itu, beberapa fitur yang Anda dapatkan adalah Windows Active Directory, sertifikat x.509, LDAP, dan Kerberos.

Enkripsi Di Mana Saja – Saat bergerak, data MongoDB dapat dienkripsi di seluruh jaringan, dan saat diam, data dapat dienkripsi pada disk atau cadangan. Terakhir, data MongoDB dapat dienkripsi dalam database saat digunakan.

Kesimpulan

Artikel ini secara komprehensif mencakup semua aspek yang perlu diketahui tentang MongoDB. Seiring waktu, pengguna mengejar produktivitas yang cepat, yang ditawarkan MongoDB kepada penggunanya. Tidak seperti database relasional, seperti yang telah disebutkan dalam artikel, MongoDB memberikan ruang bagi penggunanya untuk memperluas database mereka dengan cepat.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Metode meteor vs. aturan tolak/izinkan

  2. C# MongoDB.Driver GetServer Hilang, Apa Sekarang?

  3. Bagaimana cara saya terhubung ke mongodb dengan node.js (dan mengautentikasi)?

  4. Hindari parser string URL saat ini adalah peringatan yang tidak digunakan lagi dengan menyetel useNewUrlParser ke true

  5. Mongoose - RangeError:Ukuran Tumpukan Panggilan Maksimum Melebihi