Большинство проектов не обходятся без базы данных. Но что делать, когда нужно хранить данные локально? Можно воспользоваться сериализацией, а можно реализовать локальную базу данных. Подробнее об этом в этой статье.
Что это такое?
SQLite — компактная встраиваемая СУБД. Исходный код библиотеки передан в общественное достояние. Слово «встраиваемый» означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а представляет собой библиотеку, с которой программа компонуется, и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу.
SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала.
Сериализация vs SQLite?
Для хранения данных-объектов локально используют или сериализацию, или локальную БД. Когда что использовать? Вопрос в том, какие это данные. Если они структурированные и имеют зависимости друг от друга или необходимо работать с определенными данными с определенной выборкой то это БД, если необходимо хранить независимые друг от друга данные c небольшим количеством разновидностей классов, то лучше использовать сериализацию. Также не стоит забывать, что нужно реализовывать работу с БД.
Реализация в .Net
Реализована библиотека с открытым исходным кодом для работы с .Net. https://github.com/praeclarum/sqlite-net
Преимущества:
- Работает со всеми типами .Net проектов
- Легкая в интеграции в проект
- Простая работа с данными (CRUD)
- Работа с объектами классов
Работа с SQLite c примером будет в следующей статье.
Телеграмм канал: https://t.me/dotnetreview
Источники: SQLite Wiki