TL; DR
Normalisasi dalam RDBMS memungkinkan Anda untuk memanfaatkan kekuatan paradigma relasional.
Denormalisasi di NoSQL memungkinkan Anda untuk memanfaatkan kekuatan paradigma NoSQL.
Jawaban panjang
RDBMS bagus karena memungkinkan Anda memodelkan entitas terstruktur yang unik (bisa berubah atau tidak) dan hubungannya satu sama lain. Ini berarti sangat mudah untuk bekerja pada level entitas, memperbarui propertinya, memasukkan yang lain, menghapus satu, dll. Tetapi juga bagus untuk menggabungkannya secara dinamis, seekor anjing dengan pemiliknya, seekor anjing dengan rumah tempat tinggalnya, dll. RDBMS memberi Anda alat untuk memfasilitasi semua ini. Itu akan bergabung untuk Anda, itu akan menangani perubahan atom di seluruh entitas untuk Anda, dll.
Basis data NoSQL bagus karena memungkinkan Anda memodelkan agregat semi / tidak terstruktur dan entitas dinamis. Ini artinya sangat mudah untuk memodelkan entitas yang terus berubah, entitas yang tidak semuanya memiliki atribut dan agregat hierarkis yang sama.
Untuk memodelkan NoSql, Anda harus berpikir dalam hal hierarki dan agregat, bukan entitas dan hubungan. Jadi Anda tidak punya orang, alamat rental, dan hubungan di antara mereka. Anda memiliki catatan rental yang mengumpulkan untuk setiap orang apa alamat rental yang mereka miliki.
Anda perlu bertanya, data apa yang perlu saya ubah bersama. Data apa yang secara logis mengelompokkan data lainnya. Dalam kasus Anda seseorang terdengar seperti agregat yang baik. Apa titik masuk logis menuju sisa data.
Katakanlah NoSQL, simpan benda yang memiliki benda lain yang memiliki benda sendiri. Kembalikan seluruh hierarki semuanya. Biarkan saya mengubahnya sesuka saya, sekarang ganti seluruh hierarki barang dengan yang saya ubah. Cukup banyak itu memberi Anda. Mengapa ini bermanfaat? Jika yang Anda miliki adalah hierarki hal-hal yang Anda selalu berinteraksi dengan secara keseluruhan. Atau jika Anda perlu skala besar-besaran.
Semua hal lain yang diberikan RDBMS kepada Anda, Anda harus mengimplementasikan secara manual dalam kode dan skema Anda. Anda harus bergabung dalam kode jika Anda memerlukan agregat agregat. Anda harus menguraikan jika Anda hanya membutuhkan sebagian dari agregat. Anda harus memeriksa keunikan sendiri jika Anda tidak ingin duplikat. Anda harus menerapkan logika transaksional Anda sendiri ketika bekerja lintas agregat, dll.
Jadi memiliki satu meja besar dengan semua yang Anda butuhkan adalah cara untuk masuk ke NoSql. Karena atomisitas dijamin pada tingkat itu saja, dan kinerja juga. Mencari tahu hubungan Anda lebih awal adalah penting. Inilah yang disebut denasionalisasi.
Di RDBMS, denormalisasi secara efektif melumpuhkan DB Anda menjadi NoSQL. Jadi biasanya Anda menginginkan yang sebaliknya, yaitu normalisasi. Jika tidak, Anda harus menggunakan NoSQL DB sebagai gantinya. Kecuali Anda membutuhkan keduanya.