Pengelolaan data tugas dalam berorientasi obyek (OO) pemrograman ini biasanya dilaksanakan dengan memanipulasi objek yang hampir selalu non-skalar nilai. Sebagai contoh, pertimbangkan sebuah entri buku alamat yang mewakili satu orang bersama-sama dengan nol atau beberapa nomor telepon dan nol atau lebih alamat. Ini bisa dimodelkan dalam implementasi berorientasi obyek oleh "orang objek" dengan "slot" untuk memegang data yang meliputi entri: nama orang, daftar nomor telepon, dan daftar alamat. Daftar nomor telepon sendiri akan berisi "nomor telepon objek" dan seterusnya. Entri buku alamat diperlakukan sebagai nilai tunggal oleh bahasa pemrograman (ini dapat direferensikan oleh variabel tunggal, misalnya). Berbagai metode dapat dikaitkan dengan objek, seperti metode untuk mengembalikan pilihan nomor telepon, alamat rumah, dan sebagainya.
Namun, banyak produk database populer seperti bahasa query terstruktur sistem manajemen database (SQL DBMS) hanya dapat menyimpan dan memanipulasi skalar nilai-nilai seperti bilangan bulat dan string terorganisir dalam normalisasi tabel. Programmer harus baik mengubah nilai-nilai objek ke dalam kelompok nilai-nilai sederhana untuk penyimpanan dalam database (dan mengubahnya kembali pada pengambilan), atau hanya menggunakan nilai-nilai skalar sederhana dalam program ini. Pemetaan objek-relasional digunakan untuk menerapkan pendekatan pertama.
Inti dari masalah ini adalah objek-objek untuk menerjemahkan bentuk-bentuk yang dapat disimpan dalam database untuk memudahkan pencarian, sambil menjaga properti dari objek dan hubungan mereka; objek-objek ini kemudian digunakan terus-menerus.
ORM sering mengurangi jumlah kode perlu ditulis.Ada kontra serta manfaat untuk menggunakan O / R mapping. Misalnya, beberapa O / R piranti pemetaan tidak berkinerja baik selama penghapusan data massal. Stored prosedur mungkin memiliki performa yang lebih baik, tetapi tidak portabel. Selain itu, ketergantungan terhadap perangkat lunak ORM telah menunjuk sebagai faktor utama dalam memproduksi database dirancang dengan buruk.
Solusi lain adalah dengan menggunakan object-oriented sistem manajemen basis data (OODBMS), yang, seperti namanya, adalah database yang dirancang khusus untuk bekerja dengan nilai-nilai yang berorientasi objek. Menggunakan OODBMS menghilangkan kebutuhan untuk mengkonversi data ke dan dari bentuk SQL, karena data disimpan dalam objek aslinya perwakilan dan hubungan secara langsung mewakili, daripada membutuhkan bergabung tabel / operasi.
Salah satu argumen yang menentang menggunakan OODBMS adalah bahwa beralih dari DBMS SQL untuk yang murni berorientasi obyek DBMS berarti bahwa Anda mungkin kehilangan kemampuan untuk menciptakan permintaan aplikasi independen untuk mengambil ad-hoc kombinasi data tanpa batasan untuk mengakses jalan. Untuk alasan ini, banyak programmer menemukan diri mereka lebih memilih dengan objek-SQL sistem pemetaan, meskipun kebanyakan komersial database berorientasi objek dapat memproses SQL queries secara terbatas. Beberapa produk OODBMS dukungan penuh ANSI SQL.
sumber : wikipedia.com