Saya telah menemukan banyak sistem manajemen basis data relasional (RDBMS). Tetapi baru-baru ini saya menggunakan hibernate yang membuat saya mulai bertanya-tanya mengapa database Object Oriented tidak lebih populer.
Jika bahasa berorientasi objek seperti Java atau C # sangat populer, lalu mengapa sistem manajemen database berorientasi objek (OODBMS) juga tidak lebih populer?
object-oriented
database
rdbms
Rachel
sumber
sumber
Jawaban:
Ada beberapa alasan.
sumber
Ketika database pertama kali muncul, OOP masih bukan cara untuk memprogram. Database relasional, di sisi lain, mendapatkan banyak daya tarik. Dan SQL yang diperkenalkan pada tahun 80-an oleh IBM dengan cepat menjadi lingua franca dari semua basis data.
Ketika OOP menjadi populer ada beberapa upaya, tetapi ada beberapa masalah. Pertama, OODBMS sejati sangat sulit untuk diterapkan. Dalam kasus database relasional, tabel dan indeks terkait adalah struktur yang cukup sederhana (mis. B-tree). Alasan lain adalah bahwa ada banyak teori di balik model relasional, itu langsung berasal dari teori himpunan matematika. Ada beberapa cara yang diketahui untuk merancang database relasional dengan benar (pikirkan normalisasi dll). Dan yang tak kalah pentingnya, orang sudah terbiasa dengan SQL.
Solusi NoSQL modern saat ini dalam banyak kasus sebenarnya bukan langkah menuju OODBMS. Banyak dari mereka masih relasional, hanya dilucuti
JOINs
. Beberapa dari mereka sebenarnya menyimpan objek tetapi tidak benar-benar OODBMS, karena mereka tidak menyadari hubungan antara objek.Namun alasan lain mengapa tidak ada dorongan kuat untuk OODBMS adalah bahwa ada solusi "OODBMS orang miskin" - ORM. Ini telah memperoleh popularitas besar, karena mereka didukung oleh mesin DB yang terkenal, stabil dan teruji, namun mereka menyediakan pemetaan untuk objek. Tentu saja, ini bukan OODB yang benar.
sumber
OODBMS pandai menyimpan data yang kompleks. Namun, sebagian besar waktu, bahkan ketika menggunakan bahasa OO, data yang dibutuhkan relatif sederhana. Jadi RDBMS tradisional lebih cocok.
sumber