SQLite

Бесплатно
Открытый исходный код
Windows
macOS
Linux
Android
iOS

Сайт: www.sqlite.org

SQLite — компактный встраиваемый реляционный движок базы данных, реализованный как библиотека и предназначенный для встраивания в приложения. Он работает без отдельного серверного процесса, хранит данные в одном файловом контейнере и обеспечивает поддержку языка SQL для манипуляции данными. Архитектура ориентирована на минимальные зависимости, переносимость и простоту интеграции в разнообразные среды, включая десктопные и мобильные приложения, встроенные устройства и операционные системы.

Проект поддерживает транзакции с соблюдением свойств ACID, механизм блокировок и журналирования для обеспечения целостности данных при сбоях и конкурентном доступе. Реализация ориентирована на экономию ресурсов: малый объём кода, оптимизация ввода-вывода и возможность настройки параметров работы файловой системы. SQLite широко используется как локальное хранилище конфигураций, кэшей, метаданных и для приложений с требованиями к автономной работе без постоянного соединения с удалённым сервером.

  • Встраиваемая библиотека: распространяется как набор исходных файлов и компонуется в приложение, не требуя отдельного демона или сервиса.
  • Файловая память: все таблицы, индексы и схемы сохраняются в едином файле базы данных на диске, что упрощает перенос и резервное копирование.
  • Поддержка SQL: реализован значительный подмножество стандарта SQL для создания таблиц, индексов, запросов SELECT, INSERT, UPDATE и DELETE.
  • ACID-транзакции: гарантируется атомарность, согласованность, изолированность и долговечность операций при корректной конфигурации механизма журналирования.
  • Механизмы журналирования: поддержка различных режимов журналирования и восстановления для предотвращения повреждения данных при сбоях.
  • Кроссплатформенность: работает на множестве архитектур и ОС, не требуя платформо-специфических компонентов.
  • Конкурентный доступ: реализованы уровни блокировок и режимы совместного доступа для многопроцессных и многопоточных сценариев.
  • Расширяемость: поддержка пользовательских функций, виртуальных таблиц и расширений на языке программирования, используемом приложением.
  • Низкие требования: оптимизирован для ограниченных по ресурсам сред, с небольшим потреблением памяти и диска.
  • Широкое применение: используется в клиентских приложениях, мобильных ОС, браузерах, встраиваемых системах и для локального хранения данных в серверных решениях.
Подробнее