Saya mencoba mencari tahu apa perbedaan antara ORM dan ODM, sejauh yang saya mengerti konsepnya, ORM (Object Relational Mapper) memetakan hubungan antara data, di mana seperti ODM (Object Document Mapper) berurusan dengan dokumen. Apakah saya benar dengan menganggap bahwa mySQL adalah contoh ORM dan MongoDB adalah contoh dari ODM?
Seperti yang saya yakin bisa Anda lihat, saya tidak terlalu akrab dengan teori konsep. Bisakah seseorang menjelaskan perbedaan antara keduanya?
ORM memetakan antara Model Objek dan Database Relasional. Peta ODM antara Model Obyek dan Database Dokumen. MySQL bukan ORM, ini adalah Database Relasional, lebih khusus lagi, Database SQL. MongoDB bukan ODM, ini adalah Database Dokumen.
sumber
Pada dasarnya, ORM menggunakan pengandar basis data SQL seperti ODBC, JDBC atau OLEDB untuk menerjemahkan notasi objek ke notasi relasional dan ODM menggunakan api JSON atau JSONB untuk menerjemahkan notasi objek ke notasi dokumen.
Ada berbagai jenis implementasi di bawah tenda.
PS: JSONB adalah notasi dokumen teks JSON yang disimpan dalam format biner seperti yang digunakan oleh MongoDB.
sumber
Ketika Anda pertama kali belajar cara bekerja dengan database, semuanya bermuara pada dua jenis pengaturan basis data yaitu ORM (object Relation Mapping) dan ODM (Object Document Mapping)
ORM yang memetakan objek dengan dunia relasional, pada dasarnya mengubah data antara jenis yang tidak kompatibel dalam bahasa pemrograman berorientasi objek. ORM membungkus implementasi spesifik dari driver penyimpanan dalam API (antarmuka program aplikasi), dan memetakan bidang relasional ke anggota objek. Misalnya jika saya memiliki tabel karyawan, ini dipetakan ke objek tunggal untuk semua karyawan, dengan berbagai metode yang terkait dengannya.
ODM di sisi lain adalah Object Document Mapper, yang memetakan objek dengan Database Dokumen seperti MongoDB.
Perbedaan utama adalah bahwa ORM adalah untuk database MySQL, sedangkan ODM melakukan pemetaan untuk representasi data dokumen. Cara terbaik untuk mengingat apa yang dilakukan ORM adalah menganggapnya sebagai lembar spread excel, dengan baris dan kolom. Saat menggunakan pengaturan ini, Anda ingin memastikan Anda memiliki rencana hebat tentang bagaimana Anda ingin menangani aplikasi saat ini, itu tidak memungkinkan banyak modifikasi seperti ODM. Dengan ODM kami dapat menambahkan bidang dan properti baru dengan mudah tetapi dengan ORM saat menambahkan bidang baru Anda perlu diingat bahwa tidak ada yang tetap kosong sehingga perlu nilai sebagai default kecuali Anda ingin masuk ke masing-masing dan memodifikasi.
sumber
Mongoose adalah contoh yang baik untuk ODM (Object Data Model) untuk MongoDB di mana Anda dapat langsung melakukan operasi dengan objek dan yang akan diterjemahkan ke dalam kueri dan skema yang sesuai. Itu dapat ditemukan di sini di https://mongoosejs.com/
sumber