Усилия NoSQL связаны с созданием постоянного уровня, который масштабируется с помощью современных приложений, использующих ненормализованные структуры данных для быстрого чтения и записи, и форматов данных, таких как JSON, стандартный формат, используемый системами на основе ajax. Иногда бывает так, что реляционные базы данных на основе транзакций плохо масштабируются, но чаще всего низкая производительность напрямую связана с плохим моделированием данных, плохим созданием запросов и плохим планированием.
Никакой постоянный слой не должен иметь ничего общего с вашей моделью домена. Используя слой абстракции данных, вы преобразуете данные, содержащиеся в ваших объектах, в схему, реализованную в вашем хранилище данных. Затем вы будете использовать тот же DAL для чтения данных из вашего хранилища данных, преобразования и загрузки их в ваши объекты.
Ваше хранилище данных может быть файлами XML, СУБД, подобной SQL Server, или реализацией NoSQL, такой как CouchDB. Это не имеет значения.
FWIW, я создал и унаследовал множество приложений, которые вообще не использовали никаких моделей. Для некоторых это не нужно, но если вы используете объектную модель, она должна соответствовать потребностям приложения, а не хранилища данных и не уровня представления.