Apa itu MongoDB? Pengenalan, Senibina, Ciri & Contohnya

Isi kandungan:

Anonim

Apa itu MongoDB?

MongoDB adalah pangkalan data NoSQL berorientasikan dokumen yang digunakan untuk penyimpanan data dengan jumlah tinggi. Daripada menggunakan jadual dan baris seperti dalam pangkalan data hubungan tradisional, MongoDB menggunakan koleksi dan dokumen. Dokumen terdiri daripada pasangan nilai-kunci yang merupakan unit asas data di MongoDB. Koleksi mengandungi set dokumen dan fungsi yang setara dengan jadual pangkalan data hubungan. MongoDB adalah pangkalan data yang muncul pada pertengahan tahun 2000-an.

Dalam tutorial ini, anda akan belajar-

  • Ciri-ciri MongoDB
  • Contoh MongoDB
  • Komponen Utama Senibina MongoDB
  • Mengapa Menggunakan MongoDB
  • Pemodelan Data di MongoDB
  • Perbezaan antara MongoDB & RDBMS

Ciri-ciri MongoDB

    1. Setiap pangkalan data mengandungi koleksi yang seterusnya berisi dokumen. Setiap dokumen boleh berbeza dengan pelbagai bidang. Ukuran dan kandungan setiap dokumen boleh berbeza antara satu sama lain.
    2. Struktur dokumen lebih sesuai dengan bagaimana pembangun membina kelas dan objek mereka dalam bahasa pengaturcaraan masing-masing. Pembangun akan sering mengatakan bahawa kelasnya bukan baris dan lajur tetapi mempunyai struktur yang jelas dengan pasangan nilai-kunci.
    3. Baris (atau dokumen seperti yang disebut dalam MongoDB) tidak perlu mempunyai skema yang ditentukan sebelumnya. Sebaliknya, ladang boleh dibuat dengan cepat.
    4. Model data yang terdapat dalam MongoDB membolehkan anda menggambarkan hubungan hierarki, menyimpan susunan, dan struktur lain yang lebih kompleks dengan lebih mudah.
  1. Skalabiliti - Persekitaran MongoDB sangat terukur. Syarikat di seluruh dunia telah menentukan kumpulan dengan beberapa daripadanya menjalankan 100+ nod dengan sekitar berjuta-juta dokumen dalam pangkalan data

Contoh MongoDB

Contoh di bawah menunjukkan bagaimana dokumen dapat dimodelkan di MongoDB.

  1. Medan _id ditambahkan oleh MongoDB untuk mengenal pasti dokumen dalam koleksi secara unik.
  2. Yang dapat anda perhatikan ialah Data Pesanan (OrderID, Product, dan Quantity) yang biasanya dalam RDBMS akan disimpan dalam jadual yang terpisah, sementara di MongoDB sebenarnya disimpan sebagai dokumen yang tersemat dalam koleksi itu sendiri. Ini adalah salah satu perbezaan utama bagaimana data dimodelkan di MongoDB.

Komponen Utama Senibina MongoDB

Berikut adalah beberapa istilah umum yang digunakan dalam MongoDB

  1. _id - Ini adalah bidang yang diperlukan dalam setiap dokumen MongoDB. Medan _id mewakili nilai unik dalam dokumen MongoDB. Medan _id adalah seperti kunci utama dokumen. Sekiranya anda membuat dokumen baru tanpa medan _id, MongoDB akan membuat medan secara automatik. Jadi sebagai contoh, jika kita melihat contoh jadual pelanggan di atas, Mongo DB akan menambahkan 24 digit pengecam unik untuk setiap dokumen dalam koleksi.
_ID ID pelanggan Nama Pelanggan OrderID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Koleksi - Ini adalah kumpulan dokumen MongoDB. Koleksi adalah setara dengan jadual yang dibuat dalam RDMS lain seperti Oracle atau MS SQL. Koleksi ada dalam satu pangkalan data. Seperti yang dapat dilihat dari koleksi pengenalan tidak menerapkan struktur apa pun.
  2. Kursor - Ini adalah petunjuk kepada set hasil pertanyaan. Pelanggan boleh melakukan iterasi melalui kursor untuk mendapatkan hasil.
  3. Pangkalan Data - Ini adalah bekas untuk koleksi seperti di RDMS di mana ia adalah bekas untuk jadual. Setiap pangkalan data mendapat set failnya sendiri pada sistem fail. Pelayan MongoDB dapat menyimpan pelbagai pangkalan data.
  4. Dokumen - Rekod dalam koleksi MongoDB pada dasarnya disebut dokumen. Dokumen, pada gilirannya, akan terdiri daripada nama dan nilai bidang.
  5. Medan - Pasangan nilai-nama dalam dokumen. Dokumen mempunyai medan sifar atau lebih. Medan serupa dengan lajur dalam pangkalan data hubungan.

    Gambar rajah berikut menunjukkan contoh Medan dengan pasangan nilai Utama. Jadi dalam contoh di bawah CustomerID dan 11 adalah salah satu pasangan nilai kunci yang ditentukan dalam dokumen.

  1. JSON - Ini dikenali sebagai Notasi Objek JavaScript. Ini adalah format teks biasa yang dapat dibaca oleh manusia untuk menyatakan data berstruktur. JSON kini disokong dalam banyak bahasa pengaturcaraan.

Sekadar catatan ringkas mengenai perbezaan utama antara medan _id dan bidang koleksi biasa. Medan _id digunakan untuk mengenal pasti dokumen secara unik dalam koleksi dan secara automatik ditambahkan oleh MongoDB semasa koleksi dibuat.

Mengapa Menggunakan MongoDB?

Berikut adalah beberapa sebab mengapa seseorang harus mula menggunakan MongoDB

  1. Berorientasikan dokumen - Oleh kerana MongoDB adalah pangkalan data jenis NoSQL, dan bukannya mempunyai data dalam format jenis hubungan, ia menyimpan data dalam dokumen. Ini menjadikan MongoDB sangat fleksibel dan dapat disesuaikan dengan keadaan dan keperluan dunia perniagaan yang sebenar.
  2. Pertanyaan ad hoc - MongoDB menyokong pencarian mengikut bidang, pertanyaan jarak, dan carian ekspresi biasa. Pertanyaan boleh dibuat untuk mengembalikan bidang tertentu dalam dokumen.
  3. Pengindeksan - Indeks dapat dibuat untuk meningkatkan prestasi carian dalam MongoDB. Segala bidang dalam dokumen MongoDB dapat diindeks.
  4. Replikasi - MongoDB dapat menyediakan ketersediaan yang tinggi dengan set replika. Set replika terdiri daripada dua atau lebih contoh DB mongo. Setiap anggota set replika boleh bertindak sebagai replika primer atau sekunder pada bila-bila masa. Replika utama adalah pelayan utama yang berinteraksi dengan klien dan melakukan semua operasi baca / tulis. Replika Sekunder mengekalkan salinan data primer menggunakan replikasi terbina dalam. Apabila replika utama gagal, set replika secara automatik beralih ke sekunder dan kemudian menjadi pelayan utama.
  5. Load balancing - MongoDB menggunakan konsep sharding untuk skala secara mendatar dengan membelah data di beberapa instance MongoDB. MongoDB dapat menjalankan beberapa pelayan, mengimbangi beban dan / atau pendua data untuk memastikan sistem tetap berjalan dan berjalan sekiranya berlaku kegagalan perkakasan.

Pemodelan Data di MongoDB

Seperti yang telah kita lihat dari bahagian Pengenalan, data di MongoDB mempunyai skema yang fleksibel. Tidak seperti dalam pangkalan data SQL, di mana anda mesti menyatakan skema jadual sebelum memasukkan data, koleksi MongoDB tidak menerapkan struktur dokumen. Fleksibiliti seperti inilah yang menjadikan MongoDB begitu kuat.

Semasa memodelkan data di Mongo, ingatlah perkara berikut

  1. Apa keperluan aplikasi - Lihatlah keperluan perniagaan aplikasi dan lihat data apa dan jenis data yang diperlukan untuk aplikasi tersebut. Berdasarkan ini, pastikan struktur dokumen diputuskan dengan sewajarnya.
  2. Apakah corak pengambilan data - Sekiranya anda menjangkakan penggunaan pertanyaan yang berat maka pertimbangkan penggunaan indeks dalam model data anda untuk meningkatkan kecekapan pertanyaan.
  3. Adakah penyisipan, kemas kini dan penyingkiran kerap berlaku di pangkalan data? Pertimbangkan semula penggunaan indeks atau masukkan sharding jika diperlukan dalam reka bentuk pemodelan data anda untuk meningkatkan kecekapan keseluruhan persekitaran MongoDB anda.

Perbezaan antara MongoDB & RDBMS

Berikut adalah beberapa perbezaan istilah utama antara MongoDB dan RDBMS

RDBMS MongoDB Beza
Jadual Koleksi Dalam RDBMS, tabel berisi lajur dan baris yang digunakan untuk menyimpan data sedangkan, di MongoDB, struktur yang sama ini dikenal sebagai koleksi. Koleksi ini mengandungi dokumen yang pada gilirannya berisi Fields, yang pada gilirannya adalah pasangan kunci-nilai.
Baris Dokumen Dalam RDBMS, baris mewakili satu item data tersusun secara tersirat dalam jadual. Di MongoDB, data disimpan dalam dokumen.
Ruangan Padang Dalam RDBMS, lajur menunjukkan sekumpulan nilai data. Ini di MongoDB dikenali sebagai Fields.
Bergabung Dokumen terbenam Dalam RDBMS, data kadang-kadang tersebar di pelbagai jadual dan untuk menunjukkan pandangan lengkap dari semua data, gabungan kadang-kadang dibentuk di seluruh meja untuk mendapatkan data. Di MongoDB, data biasanya disimpan dalam satu koleksi, tetapi dipisahkan dengan menggunakan dokumen Terbenam. Oleh itu, tidak ada konsep bergabung dalam MongoDB.

Selain perbezaan istilah, beberapa perbezaan lain ditunjukkan di bawah

  1. Pangkalan data hubungan terkenal untuk menegakkan integriti data. Ini bukan syarat eksplisit dalam MongoDB.
  2. RDBMS menghendaki data dinormalisasi terlebih dahulu sehingga dapat mencegah catatan anak yatim dan pendua Normalisasi data kemudian memerlukan lebih banyak jadual, yang kemudian akan menghasilkan lebih banyak jadual bergabung, sehingga memerlukan lebih banyak kunci dan indeks.

    Apabila pangkalan data mula berkembang, prestasi dapat menjadi isu. Sekali lagi ini bukan syarat eksplisit dalam MongoDB. MongoDB fleksibel dan tidak memerlukan data dinormalisasi terlebih dahulu.