Подтвердить что ты не робот

Базы общего назначения, которые никогда не удаляют или не обновляют данные на месте

Я очень вдохновлен подходом к управлению данными защищенным Rich Hickey, и реализован в Datomic, где данные никогда не мутируются на месте, все версии всегда сохраняются и доступны для запроса, а время - концепция первого класса.

Конечно, существуют специальные базы данных, соответствующие этому описанию, такие как Git или любая другая система управления версиями. Вопрос в том, есть ли какие-либо (более или менее) СУБД общего назначения реляционного, графического, иерархического, документа или любого другого вкуса, которые могут быть эффективно использованы, например, в веб-приложении электронной коммерции. Или Datomic - единственный выбор?

4b9b3361

Ответ 1

Существует подход к проектированию систем с идеей никогда не удалять или мутировать данные, называемые Event Sourcing. В принципе, идея состоит в том, чтобы хранить события (или факты), которые изменяют состояние системы, а не моментальные снимки состояния. История событий может быть воспроизведена позже, чтобы создать определенную целевую проекцию того, как выглядело состояние в любой момент времени. Многочисленные проекции, построенные для разных целей, могут сосуществовать в системе. Более подробную информацию можно найти на следующих веб-сайтах:

Это в соответствии с тем, что вы описываете, но вместо того, чтобы быть просто моделью базы данных, Event Sourcing и Command Query Responsibility Segregation (CQRS) предписывают специальный способ проектирования всей системы, включая уровни базы данных и бизнес-логики.

Существует несколько рамок, которые следуют этому подходу, например:

Хотя это напрямую не отвечает на ваш вопрос, это может дать другую точку зрения на проблему.

Ответ 2

Irmin - это распределенная база данных, которая следует тем же принципам проектирования, что и Git.