Сериализация на диск вместо создания простой базы данных. Существует ли шаблон или отраслевое название для этого подхода?

Я возглавляю команду разработчиков из 5 или около того разработчиков, и нам нужно сохранить небольшой объем данных.

Я думаю, что нам не нужно использовать полноценный механизм БД, и вместо этого мы можем просто сериализовать наши данные на диск. Мы бы сериализовали наши коллекции объектов на диск и с диска по мере необходимости во время выполнения, а не в БД, где нам нужно сопоставлять таблицы с объектами и из них. В лучшем случае у нас есть около 20 объектов, и я не могу себе представить, что количество наших объектов когда-либо увеличится до тысяч.

Часть команды хочет пойти по пути базы данных, как это понимается. Другая часть думает, что сериализация — это нормально.

Мой вопрос не в том, как это сделать ... но есть ли ключевое слово, имя или что-то, что идентифицирует активность использования сериализации в качестве БД для приложения в отличие от SQL или Oracle? Что такое ключевое слово, чтобы я мог искать официальные документы или другую информацию и находить документацию, относящуюся к этому подходу?

**** Дополнительная информация *****

Будут проблемы с параллелизмом, но их можно смягчить с помощью контролируемого интерфейса, который обеспечит синхронизированный доступ к сериализованным файлам данных.

Транзакции, хотя и не нужны для этого приложения, будут управляться (на практике, если это необходимо) по тому же шаблону, что и транзакции. Стартовая транзакция создаст резервную копию файлов данных на диске, а фиксация завершится успешно, если данные были записаны на диск без проблем.

В лучшем случае у нас есть 20 базовых сущностей, которые необходимо сохранить, и количество сохраняемых объектов никогда не исчисляется тысячами. Также нет необходимости в быстром и многократном доступе к данным, достаточно периодического чтения и записи (максимум пару раз каждые несколько минут).

У меня есть как параллелизм, так и транзакционные потребности при использовании БД или сериализации на диск. Поскольку нам не нужны «представления, хранимые процедуры, индексы, поддержка SQL и т. д.», я не понимаю, зачем нам нужна БД.

Существует уровень доступа к данным (репозиторий), и приложение достаточно чисто учтено. Сериализацию можно легко заменить БД или наоборот.

Что мне действительно нужно, так это противопоставление и сравнение между двумя подходами. Мне нужны любые задокументированные исследования пользователей в реальном мире между двумя подходами. Я просто пытаюсь найти зацепку в этих темах, чтобы я мог больше исследовать плюсы и минусы.


person Karl Easterly    schedule 22.11.2009    source источник
comment
20 объектов и они хотят БД? Действительно?   -  person Jed Smith    schedule 22.11.2009
comment
Я думаю, это называется карго-культовым программированием. :П   -  person Vilx-    schedule 22.11.2009


Ответы (2)


Вопросы, на которые вы должны ответить при выборе между сериализацией на диск или в базу данных:

  • Вам нужны сделки. Если да: База данных.
  • Вам нужно, чтобы несколько пользователей писали в один и тот же объект: Если да База данных.

Я сделал сериализацию на диск для однопользовательских систем, все работало нормально.

Вы должны спроектировать свою систему с уровнем доступа к данным, остальная часть системы не будет знать, как хранятся данные. Затем вы можете изменить его позже, если вам нужно.

Ключевые слова для поиска: сериализация/потоковая передача в файл.

person Shiraz Bhaiji    schedule 22.11.2009

У меня есть одно предложение. Сохраните объект в локальной БД, например SQLite. Это будет как БД, так и вид сериализации Диска.

person Vasyl Boroviak    schedule 22.11.2009