‫Instruktur: Sama seperti di
‫bagian sebelumnya, sebelum kita menyelami teknologi
‫baru, mari kita pelajari apa itu semua.
‫Jadi dalam hal ini, mari kita pelajari apa sebenarnya
‫MongoDB itu, cara kerjanya, dan
‫tinjauan singkat tentang perbandingannya dengan database yang lebih tradisional.
‫Dan mari kita mulai dengan gambaran sederhana.
‫Jadi MongoDB jelas merupakan database, dan
‫itu disebut database NoSQL.
‫Sekarang beberapa orang juga mengatakan Tidak S Q
‫L, tapi saya akan terus mengatakan "tidak ada sekuel", oke?
‫Sekarang, jenis database lainnya,
‫yang lebih tradisional, adalah database relasional,
‫yang sering dibandingkan dengan NoSQL.
‫Bagaimanapun, di Mongo, yang juga bisa kita katakan sebagai ganti
‫MongoDB, setiap database dapat berisi satu atau lebih koleksi.
‫Jadi, jika Anda benar-benar berasal
‫dari salah satu sistem basis data relasional yang
‫lebih tradisional ini, Anda dapat menganggap kumpulan sebagai tabel data.
‫Kemudian, setiap koleksi dapat berisi satu
‫atau lebih struktur data yang disebut dokumen, dan
‫sekali lagi, dalam database
‫relasional, dokumen akan menjadi baris dalam tabel.
‫Jadi setiap dokumen berisi data
‫tentang satu entitas tunggal, misalnya, satu
‫posting blog atau satu pengguna atau satu ulasan, atau
‫apa pun, sebenarnya.
‫Anda mengerti maksudnya, kan?
‫Sekarang koleksinya seperti struktur induk yang
‫berisi semua entitas ini.
‫Misalnya, koleksi blog untuk semua
‫posting, koleksi pengguna, atau koleksi ulasan.
‫Dan Anda juga dapat melihat di sini
‫bahwa dokumen tersebut memiliki format data yang sangat mirip dengan JSON,
‫yang akan membuat pekerjaan kita
‫jauh lebih mudah ketika kita mulai menangani dokumen-dokumen ini.
‫Dan tentunya kita akan banyak membicarakan hal
‫ini nanti, tapi untuk sekarang, mari kita pelajari fitur-fitur utama Mongo.
‫Jadi, menurut situs web MongoDB,
‫MongoDB adalah database dokumen dengan skalabilitas dan
‫fleksibilitas yang Anda inginkan,
‫dan dengan kueri dan pengindeksan yang Anda butuhkan.
‫Sekarang, kedengarannya agak berlebihan, jadi mari
‫kita coba memahami apa artinya ini sebenarnya.
‫Jadi, seperti yang kita lihat sebelumnya, MongoDB adalah database berbasis dokumen,
‫sehingga menyimpan data dalam dokumen
‫yang merupakan struktur data berpasangan nilai bidang seperti JSON.
‫Jadi sekali lagi, ini menyimpan data dalam dokumen
‫ini, bukan baris dalam
‫tabel seperti di database relasional tradisional.
‫Oleh karena itu database NoSQL
‫dan bukan yang relasional.
‫Selain itu, MongoDB memiliki skalabilitas bawaan, membuatnya
‫sangat mudah untuk mendistribusikan data ke
‫beberapa mesin saat aplikasi Anda
‫mendapatkan lebih
‫banyak pengguna dan mulai menghasilkan banyak data.
‫Jadi apa pun yang Anda lakukan, MongoDB akan sangat memudahkan
‫Anda untuk berkembang.
‫Selanjutnya, fitur besar lainnya dari MongoDB adalah
‫fleksibilitasnya yang luar biasa.
‫Jadi tidak perlu mendefinisikan skema data dokumen sebelum
‫mengisinya dengan data, artinya
‫setiap dokumen dapat memiliki jumlah dan jenis
‫field yang berbeda.
‫Dan kami juga dapat mengubah bidang ini setiap saat.
‫Dan semua ini benar-benar sejalan
‫dengan beberapa situasi bisnis dunia nyata, dan
‫karena itu dapat menjadi sangat berguna.
‫MongoDB juga merupakan sistem database yang sangat berkinerja.
‫Berkat fitur seperti model data yang
‫disematkan, pengindeksan, sharding, dokumen fleksibel
‫yang telah kita bicarakan, duplikasi asli, dan
‫banyak lagi.
‫Dan Anda tidak perlu mengetahui semua ini,
‫tentu saja, tetapi sangat menyenangkan mengetahui bahwa MongoDB memiliki kinerja tinggi
‫jika kita membutuhkannya.
‫Terakhir, saya hanya ingin menambahkan bahwa MongoDB
‫adalah database sumber terbuka
‫dan gratis, yang diterbitkan di bawah lisensi SSPL.
‫Jadi secara ringkas, kita dapat mengatakan bahwa MongoDB
‫adalah sistem basis data
‫yang hebat untuk membangun banyak jenis aplikasi
‫web modern, skalabel, dan fleksibel.
‫Dan faktanya, Mongo mungkin adalah database yang paling banyak
‫digunakan tanpa JS, sehingga sangat cocok untuk
‫kita gunakan dalam kursus ini.
‫Oke, sekarang mari kita bicara
‫sedikit lebih dalam tentang dokumen-dokumen ini, dan
‫kembali ke contoh posting blog kita
‫dari awal, ini bisa menjadi representasi yang
‫sangat sederhana dari satu dokumen posting, bukan?
‫Dan sekarang hanya untuk perbandingan, berikut adalah
‫bagaimana data yang sama persis
‫bisa terlihat seperti baris dalam database relasional seperti
‫MySQL, atau bahkan dalam spreadsheet Excel, jika Anda
‫lebih terbiasa dengan itu.
‫Jadi seperti yang saya sebutkan
‫sedikit sebelumnya, MongoDB menggunakan format data yang mirip dengan
‫JSON untuk penyimpanan data yang disebut BSON.
‫Tampilannya pada dasarnya sama dengan JSON,
‫tetapi diketik, artinya semua
‫nilai akan memiliki tipe data seperti string, Boolean,
‫tanggal dan pengajar, objek ganda atau lebih.
‫Kita akan mempelajari semua ini nanti dalam praktik.
‫Jadi apa artinya semua dokumen MongoDB
‫akan benar-benar
‫diketik, yang berbeda dari JSON, oke?
‫Sekarang seperti JSON, dokumen BSON ini juga akan
‫memiliki bidang dan data disimpan dalam
‫pasangan nilai kunci.
‫Di sisi lain, dalam
‫database relasional, setiap bidang disebut kolom.
‫Jadi di sini sekali
‫lagi Anda dapat melihat bagaimana database ini mengatur data
‫dalam struktur tabel sementara data JSON kami jauh lebih fleksibel.
‫Ambil contoh bidang tag,
‫di mana kita sebenarnya memiliki
‫array, jadi pada dasarnya kita memiliki beberapa nilai untuk satu bidang, bukan?
‫Jadi MongoDB, ruang dan DV dalam hal ini.
‫Tetapi dalam database relasional, itu tidak benar-benar diperbolehkan.
‫Kami tidak dapat memiliki banyak nilai dalam satu bidang,
‫jadi kami benar-benar harus menemukan solusi untuk ini yang
‫kemudian dapat melibatkan lebih banyak
‫pekerjaan dan lebih banyak komplikasi secara keseluruhan.
‫Sekarang fitur lain yang sangat penting di
‫MongoDB adalah konsep dokumen yang
‫disematkan, yang, sekali lagi, sesuatu yang tidak
‫ada dalam database relasional.
‫Jadi di kolom komentar
‫kami di sini, kami memiliki array yang berisi tiga objek.
‫Satu untuk
‫setiap dokumen, dan masing-masing
‫sebenarnya bisa menjadi dokumennya sendiri, bukan?
‫Jadi bayangkan saja kita memiliki
‫koleksi komentar yang berisi sekumpulan dokumen komentar.
‫Masing-masing dari mereka sebenarnya bisa terlihat persis seperti
‫ini, jadi dengan seorang penulis dan dengan
‫teks komentar, tetapi
‫alih-alih melakukan itu, kami menyertakan komentar ini langsung ke
‫dokumen posting blog, jadi dengan kata lain, kami menyematkan dokumen
‫komentar langsung ke dalam dokumen pos.
‫Jadi proses penyematan, atau de-normalisasi seperti yang
‫kita juga bisa menyebutnya, pada dasarnya adalah untuk memasukkan,
‫jadi, untuk menyematkan, beberapa data terkait ke
‫dalam satu dokumen tunggal.
‫Dalam contoh ini, komentar terkait dengan postingan,
‫sehingga disertakan dalam dokumen yang sama.
‫Dan ini membuat database lebih berperforma dalam
‫beberapa situasi karena dengan cara ini,
‫akan lebih mudah
‫untuk membaca semua data yang kita butuhkan sekaligus.
‫Dan ini adalah sesuatu yang akan banyak kita bicarakan saat
‫mempelajari pemodelan data, tetapi untuk
‫saat ini, saya harap ini masih masuk akal bagi Anda.
‫Sekarang, kebalikan dari embedding atau de-normalisasi,
‫adalah normalisasi, dan begitulah data selalu dimodelkan
‫dalam database relasional.
‫Jadi dalam hal ini, tidak mungkin untuk menyematkan
‫data, jadi solusinya
‫adalah membuat tabel baru untuk
‫komentar dan kemudian bergabung dengan tabel dengan
‫merujuk ke bidang ID dari tabel komentar.
‫Sekarang kita tidak akan menggunakan database relasional
‫dalam kursus ini, tapi saya yakin masih penting
‫untuk mengetahui perbedaannya jika Anda
‫ingin menjadi pengembang back-end yang baik.
‫Bagaimanapun, dan sekarang hanya untuk
‫menyelesaikan, dua hal lagi tentang dokumen BSON.
‫Pertama, ukuran maksimum untuk setiap dokumen
‫saat ini adalah 16 MB, tetapi ini mungkin meningkat di masa mendatang.
‫Dan kedua, setiap dokumen berisi ID unik, yang
‫bertindak sebagai kunci utama dokumen itu.
‫Ini dibuat secara otomatis dengan tipe data ID objek
‫setiap kali ada dokumen
‫baru, jadi kita tidak perlu mengkhawatirkannya.
‫Baiklah, dan itu seharusnya menjadi gambaran singkat yang cukup
‫untuk kita mulai,
‫dan untuk benar-benar menggunakan MongoDB dari kuliah berikutnya.
‫Jadi, mari kita lanjutkan sekarang.