SQL adalah cara yang paling disukai untuk melibatkan database relasional sejauh menyangkut kueri. Dapat dipahami bahwa pengguna akan bekerja dengan database relasional seperti MySQL dan PostgreSQL yang menggunakan fitur kueri SQL. Secara umum, SQL mudah dimengerti dan oleh karena itu menjadi banyak digunakan terutama dalam database relasional.
Namun, SQL cukup kompleks ketika mencoba melibatkan sekumpulan dokumen yang luas dalam database. Singkatnya, ini tidak dimaksudkan untuk database dokumen karena dilengkapi dengan sejumlah kemunduran. Misalnya, Anda tidak dapat melakukan kueri dokumen larik yang disematkan dengan mudah atau Anda perlu mendesain subprogram untuk mengulangi dan memfilter data yang dikembalikan untuk memberikan hasil yang diperlukan. Akibatnya, ini akan menghasilkan peningkatan durasi eksekusi. Tetapi memiliki pemahaman yang baik dalam SQL akan memberikan dasar yang lebih baik dalam berinteraksi dengan MongoDB dari beberapa titik daripada memulai dari awal.
Di blog ini, kami akan menggunakan program Studio 3T untuk menampilkan berbagai kueri gabungan SQL dan bagaimana Anda dapat mendesain ulang mereka menjadi kueri MongoDB untuk mencapai kinerja yang lebih baik. Program ini dapat diunduh dari tautan ini.
Menghubungkan SQL ke MongoDB
Ada beberapa driver atau lebih tepatnya antarmuka di mana Anda dapat menggunakan SQL untuk berkomunikasi dengan MongoDB, misalnya, ODBC. ODBC adalah singkatan dari Open Database Connectivity. Ini hanyalah sebuah antarmuka yang memungkinkan aplikasi untuk mengakses data dalam sistem manajemen basis data menggunakan SQL sebagai proses standar untuk mengakses data tersebut. Muncul dengan keunggulan interoperabilitas tambahan di mana satu aplikasi dapat mengakses beberapa sistem manajemen basis data.
Di blog ini, kami akan memproduksi dan menguji kode dari SQL dan kemudian mengoptimalkannya melalui editor agregasi untuk menghasilkan kueri MongoDB.
Memetakan Bagan untuk SQL ke MongoDB
Sebelum kita masuk ke banyak detail, kita perlu memahami hubungan dasar antara 2 database ini terutama kata kunci dalam konsep query.
Terminologi dan Konsep
SQL | MongoDB |
---|---|
Tabel Baris Kolom Tabel bergabung | Koleksi Dokumen BSON Bidang $lookup |
Kunci utama dalam SQL mendefinisikan kolom unik yang pada dasarnya mengatur baris dalam urutan waktu rekaman. Di sisi lain, kunci utama di MongoDB adalah bidang unik untuk menyimpan dokumen dan memastikan bahwa bidang yang diindeks tidak menyimpan nilai duplikat.
Beberapa Sembilan Menjadi DBA MongoDB - Membawa MongoDB ke ProduksiPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan MongoDBUnduh secara GratisKorelasi Antara SQL dan MongoDB
Katakanlah kita memiliki data siswa dan kita ingin merekam data ini di database SQL dan MongoDB. Kita dapat mendefinisikan objek siswa sederhana sebagai:
{
name: ‘James Washington’,
age: 15,
grade: A,
Score: 10.5
}
Dalam membuat tabel SQL, kita perlu menentukan nama kolom dan tipe data sedangkan di MongoDB koleksi akan dibuat secara otomatis selama penyisipan pertama.
Tabel di bawah ini akan membantu kita memahami bagaimana beberapa pernyataan SQL dapat ditulis di MongoDB.
Pernyataan skema SQL | Pernyataan Skema MongoDB |
---|---|
Untuk menyisipkan dokumen ke database | Kita dapat mendefinisikan desain skema menggunakan beberapa modul seperti luwak dan mendefinisikan bidang seperti objek daripada memasukkan dokumen secara langsung untuk menunjukkan korelasinya. Id utama yang diajukan akan dibuat secara otomatis selama penyisipan dokumen. Memasukkan dokumen baru untuk membuat koleksi |
Menggunakan pernyataan ADD untuk menambahkan kolom baru ke tabel yang ada. | Struktur dokumen koleksi tidak didefinisikan dengan baik dan oleh karena itu perbarui dokumen di tingkat dokumen menggunakan updateMany() |
Untuk menjatuhkan kolom (satuan) | Untuk menjatuhkan bidang (satuan) |
Untuk menjatuhkan siswa meja | Untuk menjatuhkan koleksi siswa |
pernyataan SQL Select | MongoDB menemukan Pernyataan |
---|---|
Pilih semua baris | Pilih semua dokumen |
Untuk mengembalikan kolom tertentu saja. | Untuk mengembalikan bidang tertentu saja. Secara default, bidang _id dikembalikan kecuali ditentukan lain dalam proses proyeksi. Menyetel _id:0 berarti hanya dokumen yang dikembalikan yang akan memiliki nama dan nilai objek kelas saja. |
Untuk memilih baris tertentu dengan beberapa nilai kolom yang cocok. | Untuk memilih dokumen tertentu dengan beberapa nilai bidang yang cocok. |
Memilih baris dengan kolom yang nilainya memiliki beberapa karakter sebagai nilai kriteria yang diberikan | Memilih dokumen dengan bidang yang nilainya memiliki beberapa karakter sebagai nilai kriteria yang diberikan |
Untuk mengembalikan baris dalam urutan menaik menggunakan kunci utama. | Untuk mengembalikan dokumen secara menaik menggunakan kunci utama |
Untuk mengelompokkan baris yang dikembalikan sesuai dengan beberapa kolom (kelas) | Untuk mengelompokkan dokumen yang dikembalikan sesuai dengan beberapa bidang (nilai) |
Membatasi jumlah baris yang dikembalikan dan melewatkan beberapa | Membatasi jumlah dokumen yang dikembalikan dan melewatkan baris |
Opsi penting adalah untuk mengetahui bagaimana kueri kami dieksekusi, maka gunakan metode jelaskan. | |
Pernyataan Pembaruan SQL | Pernyataan pembaruan MongoDB |
---|---|
Perbarui kolom nilai untuk siswa yang berusia sama dengan 15 tahun atau lebih | Disini kita menggunakan beberapa operator seperti $gt, $lt dan $lte. |
Menaikkan beberapa nilai kolom | |
pernyataan penghapusan SQL | MongoDB menghapus Pernyataan |
---|---|
Untuk menghapus semua baris | Untuk menghapus semua dokumen. |
Untuk menghapus baris tertentu di mana beberapa kolom memiliki nilai tertentu. | |
Tabel pemetaan sampel ini akan memungkinkan Anda untuk mendapatkan pemahaman yang lebih baik tentang apa yang akan kita pelajari di topik berikutnya.
SQL dan Studio 3T
Studio 3T adalah salah satu program yang tersedia yang membantu menghubungkan SQL dan MongoDB. Ini memiliki fitur SQL Query untuk meningkatkan seseorang untuk memanipulasi SQL. Kueri diinterpretasikan ke dalam shell Mongo untuk menghasilkan kode kueri sederhana dalam bahasa MongoDB yang setara. Selain melakukan query sederhana, aplikasi Studio 3T kini dapat melakukan join.
Untuk contoh data kami di atas, setelah menghubungkan database Anda di Studio 3T, kami dapat menggunakan jendela SQL untuk menemukan dokumen yang sesuai dengan kriteria kami yaitu:
SELECT * FROM students WHERE name LIKE 'James%';
Jika Anda memiliki dokumen dengan bidang nama yang disetel ke nilai James, maka itu akan dikembalikan. Demikian juga, jika Anda mengklik tab kode kueri, Anda akan disajikan jendela dengan kode MongoDB yang setara. Untuk pernyataan di atas, kita akan memiliki:
db.getCollection("students").find(
{
"name" : /^James.*$/i
}
);
Ringkasan
Terkadang Anda mungkin menginginkan cara cepat untuk berinteraksi dengan MongoDB dari pengetahuan yang Anda miliki tentang SQL. Kami telah mempelajari beberapa kesamaan kode dasar antara SQL dan padanannya di MongoDB. Selanjutnya, beberapa program seperti Studio 3T memiliki alat yang sudah mapan untuk mengubah kueri SQL menjadi bahasa yang setara dengan MongoDB dan menyempurnakan kueri ini untuk hasil yang lebih baik. Bagi sebagian besar dari kita, ini akan menjadi alat yang hebat untuk mempermudah pekerjaan kita dan memastikan kode apa pun yang kita miliki pada akhirnya sangat optimal untuk kinerja database kita. Di Bagian 2 blog ini, kita akan belajar tentang SQL INNER JOIN di MongoDB.