TL; DR
La normalización en RDBMS le permite aprovechar las fortalezas del paradigma relacional.
La desnormalización en NoSQL le permite aprovechar las fortalezas del paradigma NoSQL.
Respuesta larga
Los RDBMS son excelentes porque le permiten modelar entidades estructuradas únicas (mutables o no) y sus relaciones entre sí. Esto significa que es muy fácil trabajar a nivel de entidad, actualizar sus propiedades, insertar otra, eliminar una, etc. Pero también es excelente para agregarlos dinámicamente, un perro con su dueño, un perro con las casas en las que reside, etc. El RDBMS le brinda herramientas para facilitar todo esto. Se unirá por usted, manejará los cambios atómicos en las entidades por usted, etc.
Las bases de datos NoSQL son excelentes porque le permiten modelar agregados semi / no estructurados y entidades dinámicas. Esto significa que es muy fácil modelar entidades siempre cambiantes, entidades que no todas comparten los mismos atributos y agregados jerárquicos.
Para modelar para NoSql, debe pensar en términos de jerarquía y agregados en lugar de entidades y relaciones. Por lo tanto, no tiene una persona, direcciones de alquiler y una relación entre ellos. Tiene registros de alquiler que agregan para cada persona las direcciones de alquiler que han tenido.
Debe preguntar qué datos necesitaré cambiar juntos. Qué datos está agrupando lógicamente los otros datos. En su caso, una persona suena como un buen agregado. ¿Cuál es el punto de entrada lógico hacia el resto de los datos?
NoSQL, digamos, almacena una cosa que tiene otras cosas que tienen cosas propias. Devuélveme toda la jerarquía de las cosas. Permítanme cambiarlo como me plazca, ahora reemplace toda la jerarquía de cosas con mi cambio. Eso es casi todo lo que te da. ¿Por qué es útil? Si lo que tienes es una jerarquía de cosas con las que siempre interactúas como un todo. O si necesita escalar masivamente.
Todo lo demás que RDBMS le brinda, deberá implementarlo manualmente en el código y en su esquema. Tendrá que unirse al código si alguna vez necesita un agregado de agregados. Tendrá que analizar si solo necesita parte de un agregado. Tendrá que comprobar la unicidad usted mismo si no desea duplicar cosas. Tendrá que implementar su propia lógica transaccional cuando trabaje en agregados, etc.
Así que tener una gran mesa con todo lo que necesitas es el camino a seguir en NoSql. Dado que la atomicidad está garantizada solo en ese nivel, y el rendimiento también. Determinar sus relaciones temprano es importante. Esto es lo que es la desnormalización.
En RDBMS, la desnormalización paraliza efectivamente su DB a una NoSQL. Entonces normalmente quieres lo contrario, es decir, la normalización. Si no lo hace, debería usar un DB NoSQL en su lugar. A menos que necesite un poco de ambos.