Здравствуйте, scf, Вы писали:
scf>По-хорошему где-то должен быть слой изоляции структуры БД от остальной системы.
Да, это с очевидностью следует из DIP (принципа инверсии зависимости, говорящий, что нетривиальные зависимости должны ссылаться только на абстрактные интерфейсы): высокоуровневый компонент (реализующий бизнес-логику) не должен зависеть от низкоуровневого (хранилища данных), зависимость должна быть обратной (например, от этого самого изолирующего слоя).
А если попытаться заглянуть в будущее, то дисков не будет, их заменит RAM. "The Database Is a Detail" (Роберт Мартин). Приложению нужны не диски, а RAM. Приложению нужны не таблицы и не KV-хранилища, а данные, организованные в нормальные программные структуры — массивы, очереди, стеки, деревья и т.п. Существование баз данных — временный преходящий этап, который закончится с нынешней эпохой дефицита RAM и вымиранием дисков (как до того вымерли ленты). Закладывать бизнес-логику внутрь базы данных недальновидно ещё и по этой причине.