Akar masalahnya adalah bahwa obyek-obyek tidak dapat langsung disimpan ke database dan diambil dari database relasional. Sementara itu obyek memiliki identitas, state, dan perilaku di samping data, sedangkan RDBMS hanya menyimpan data saja. Bahkan data yang berdiri sendiri dapat menjadi masalah, karena seringkali tidak ada pemetaan langsung antara bahasa pemrograman (misalnya, C # atau Java) dengan (Relational Database Management System) RDBMS tipe data. Lebih jauh lagi, sementara objek yang dilalui menggunakan referensi langsung, tabel RDBMS berhubungan melalui nilai-nilai di dalam foreign key dan primary key. Selain itu, RDBMS saat ini tidak memiliki paralel untuk objek inheritance data dan perilaku. Akhirnya, tujuan dari model relasional adalah untuk menormalkan data (yaitu, menghilangkan data redundan dari tabel), sedangkan tujuan desain berorientasi obyek adalah model proses bisnis dengan menciptakan obyek-obyek dunia nyata dengan data dan perilaku.
Munculnya kebutuhan baru yang tidak dapat terpenuhi oleh Sistem Manajemen Database Generasi 1 (Hierarkis & Jaringan), dan generasi 2 (RDBMS), sehingga kebutuhan mendesak untuk segera menggunakan Sistem Manajemen Database Generasi 3 (OODBMS). ORM menjadi ‘jembatan’ antara obyek yang didefinisikan dalam kode program dengan database. ORM sebagai syarat mutlak yang dibutuhkan dalam membuat OODBMS.
Impedance Mismatch
Para pengembang beralasan yang paling penting menggunakan teknik ORM adalah ketidakcocokan impedansi yang terjadi antara kode obyek dan database relasional. Model berorientasi objek didasarkan pada prinsip bahwa aplikasi dibangun dengan menggunakan kumpulan komponen yang dapat digunakan kembali yang disebut objek. Di sisi lain, pola database relasional adalah satu di mana menyimpan database data dalam bentuk tabel. Sedangkan database sebagian besar didasarkan pada algoritma murni matematis, model berorientasi objek didasarkan pada representasi kehidupan dan lingkungan seseorang. Oleh karena itu, untuk mengatasi kesenjangan antara dua paradigma, perlu untuk memetakan model objek ke model data.