Трудно объяснить все различия в строгой форме преимуществ / недостатков.
Я бы посоветовал немного поиграть с CouchDB. Первое, что вы заметите, это то, что кривая обучения при первоначальном использовании полностью инвертирована из RDBMS.
С RDBMS вы тратите много времени на моделирование данных реального мира, чтобы получить их в базе данных. Как только вы разберетесь с моделированием, вы сможете выполнять все виды запросов.
С CouchDB вы просто получаете все свои данные в формате JSON и сохраняете их в БД буквально за минуты. Вам не нужно выполнять какую-либо нормализацию или что-то в этом роде, а транспорт - это HTTP, поэтому у вас есть множество вариантов клиента.
Тогда вы заметите большую кривую обучения при написании функций карты и изучении того, как работает сопоставление клавиш и запросы к написанным вами представлениям. Изучив их, вы начнете понимать, как представления позволяют нормализовать индексы, оставляя данные ненормализованными и «естественными».