Я разрабатываю приложение, которое, конечно, нуждается в хранении данных (например, учетные записи пользователей, журналы и т. Д.). Я не хочу, чтобы производительность была проблемой, поэтому поиск / обновление / удаление данных будет происходить в отдельном потоке от основного потока приложения (модель создатель-потребитель).
Я не могу использовать базы данных NoSQL или любую другую систему баз данных, потому что им нужно внешнее приложение, чтобы сделать данные доступными (например, с сетевым каналом к хосту).
Тем не менее, мне нужны мои данные без необходимости запуска другого приложения, поэтому я хочу интегрировать систему в свое собственное приложение.
Я искал базы данных, которые можно интегрировать, но я не могу найти ни одной.
Примечание: я знаю, что это было бы глупо, но на самом деле один из моих вариантов: есть ли база данных SQL (предпочтительно PostgreSQL), которую я могу скомпилировать вместе с моим проектом, а затем выдавать запросы локально?
базы данных […] нуждаются во внешнем приложении
Неправильно. Есть много внутрипроцессных систем баз данных (например, SQLite что, с небольшой осторожностью, может быть сделано полностью совместимым с кислотой).
Существует ли база данных SQL (предпочтительно PostgreSQL), которую я могу скомпилировать вместе с моим проектом, а затем выдавать запросы локально?
Ну, я начал отвечать, прежде чем вы добавили это замечание, но снова SQLite приходит на ум. Если эта конкретная БД вам не подходит, вы можете поискать либо «встроенная база данных» или же «незавершенная база данных«существует множество похожих продуктов — как SQL, так и NoSQL.
Один хороший NoSQL, БД ключ-значение будет Беркли Д.Б. но я боюсь, что с момента ее покупки Oracle срок действия лицензии сократился, поэтому я не уверен, что она по-прежнему актуальна в настоящее время (если ваше приложение не имеет полностью открытого исходного кода или вы не можете купить коммерческую лицензию).
Похоже, хорошая работа для SQLite
А как насчет SQLite? Для этого не нужно никаких особых и сложных зависимостей. Это довольно легко настроить и использовать.