Найти тему
.Net Review

SQLite - встраиваемая СУБД. Когда использовать? Обзор. Часть 1

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

Что это такое?

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

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц