Justin Cave benar bahwa ini dapat menyebabkan data yang berlebihan, tetapi ini benar-benar tergantung pada bagaimana Anda mendesain database Anda.
Pendekatan serialisasi seluruh objek menjadi gumpalan tidak keterlaluan seperti kebanyakan orang di sini berpikir itu. Bahkan, untuk beberapa aplikasi, ini bisa menjadi desain terbaik yang dapat Anda lakukan, seperti yang saya jelaskan di sini: /programming//a/12644223/1121352 .
Memang, membuat cerita bersambung pada suatu objek setidaknya menghasilkan dua manfaat:
1- Mengurangi ketidakcocokan impedansi : beberapa tipe Java tidak tersedia dalam SQL, terutama jika Anda menggunakan banyak kelas dan tipe kustom, sehingga mengubah bolak-balik dari objek Java ke SQL bisa menjadi masalah besar, dan bahkan menyebabkan ambiguitas.
2- Lebih fleksibel dalam skema Anda . Memang, skema relasional sangat bagus untuk data yang memiliki struktur yang sama, tetapi jika beberapa objek Anda dalam satu kelas dapat memiliki properti yang berbeda tergantung pada kondisi saat runtime, skema relasional dapat menghambat alur kerja Anda secara signifikan.
Jadi, tentu saja ada manfaat untuk pendekatan ini (setidaknya dua, tapi tentu saja yang lain saya tidak mengutip), tetapi tentu saja biaya besar untuk membayar adalah bahwa Anda kehilangan hampir semua manfaat skema relasional.
Namun, Anda bisa mendapatkan yang terbaik dari kedua dunia jika Anda merancang dengan hati-hati database Anda: Anda masih dapat menetapkan skema relasional (yaitu: kolom kunci unik) dengan menggunakan atribut yang unik untuk setiap objek, dan kemudian menyimpan objek dalam gumpalan . Dengan cara ini, Anda masih dapat memastikan pengambilan cepat dari objek Anda diberi beberapa pengidentifikasi unik yang ditentukan oleh atribut objek Anda, juga mengurangi redundansi, sementara Anda memusnahkan ketidakcocokan impedansi dan menjaga fleksibilitas penuh objek Java.
Sebagai catatan, ada beberapa upaya oleh beberapa pembuat DB untuk memadukan model relasional dan objek bersama, seperti tipe data JSON di PostSQL dan PostgreSQL sehingga Anda dapat langsung memproses JSON seperti halnya kolom relasional, dan juga SQL3 dan OQL (Obyek Query Language) untuk menambahkan (terbatas) objek yang mendukung SQL.
Pada akhirnya, ini semua masalah desain dan kompromi antara model relasional dan model objek.
/ EDIT setelah membaca komentar: tentu saja, jika data Anda harus dapat dicari ("queryable"), Anda TIDAK harus menyimpan data Anda sebagai gumpalan. Tetapi jika beberapa bagian dari data Anda tidak dimaksudkan untuk dapat dicari , melainkan semacam meta-data, maka menyimpan bagian data ini sebagai objek di dalam gumpalan dapat menjadi solusi yang baik, terutama jika meta-data ini memiliki struktur yang fleksibel dan dapat berubah dari satu objek ke objek lainnya.