aspose.info
RU

Формат файла SQLite

Обновлено

Что такое файл SQLite?

Файл с расширением .sqlite представляет собой облегченный файл базы данных SQL, созданный с помощью программного обеспечения SQLite. Это база данных в самом файле, реализующая автономный, полнофункциональный, высоконадежный механизм базы данных SQL. Файлы базы данных SQLite можно использовать для обмена богатым содержимым между системами путем простого обмена этими файлами по сети. Почти все мобильные телефоны и компьютеры используют SQLite для хранения и обмена данными, и это выбор формата файла для кросс-платформенных приложений. Благодаря компактному использованию и простоте использования, он входит в состав других приложений. Привязки SQLite существуют для таких языков программирования, как C, C#, C++, Java, PHP, и многие другие.

Формат файла SQLite

SQLite на самом деле является библиотекой C-Language, которая реализует СУБД SQLite с использованием формата файлов SQLite. С появлением новых устройств каждый божий день его формат файла был сохранен с обратной совместимостью для более старых устройств. Формат файла SQLite рассматривается как формат долгосрочного архивирования данных.

Файл базы данных

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

  • Файл основной базы данных — содержит полное состояние базы данных SQLite.
  • Журнал отката — хранит дополнительную информацию во втором файле и используется при выполнении транзакций. Если SQLite находится в режиме WAL, сохраняется файл журнала записи.

Файл журнала

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

страниц

Основной файл базы данных SQLite состоит из одной или нескольких страниц. В любой момент времени каждая страница в основной базе данных имеет единственное использование, которое может быть одним из следующих:

  • Страница блокировки байта
  • Страница бесплатного списка
  • Основная страница бесплатного списка
  • Листовая страница фрилиста
  • Страница B-дерева
  • Внутренняя страница таблицы b-tree
  • Листовая страница таблицы b-tree
  • Внутренняя страница B-дерева индекса
  • Листовая страница индекса B-дерева
  • Страница переполнения полезной нагрузки
  • Страница карты указателя

Размер файлов базы данных SQLite может варьироваться от нескольких килобайт до нескольких гигабайт.

Заголовок SQLite

Заголовок базы данных SQLite находится в первых 100 байтах файла базы данных. Каждый действительный файл базы данных SQLite начинается с 16 байтов (в шестнадцатеричном формате): 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Подробная информация о полях заголовка приведена в следующей таблице.

СмещениеРазмерОписание
016Строка заголовка: “Формат SQLite 3\000”
162Размер страницы базы данных в байтах. Должно быть степенью двойки от 512 до 32768 включительно или значением 1, представляющим размер страницы 65536.
181Формат файла, версия для записи. 1 для наследия; 2 для WAL.
191Формат файла версия для чтения. 1 для наследия; 2 для WAL.
201Байт неиспользованного «зарезервированного» пространства в конце каждой страницы. Обычно 0.
211Максимальная доля встроенной полезной нагрузки. Должно быть 64.
221Минимальная часть встроенной полезной нагрузки. Должно быть 32.
231Доля полезной нагрузки листьев. Должно быть 32.
244Счетчик изменений файла.
284Размер файла базы данных в страницах. «Размер базы данных в заголовке».
324Номер страницы первой основной страницы свободного списка.
364Общее количество страниц бесплатного списка.
404Файл cookie схемы.
444Номер формата схемы. Поддерживаемые форматы схемы: 1, 2, 3 и 4.
484Размер кэша страницы по умолчанию.
524Номер страницы самой большой корневой страницы сбалансированного дерева в режимах автоочистки или инкрементной очистки, или ноль в противном случае.
564Кодировка текста базы данных. Значение 1 означает UTF-8. Значение 2 означает UTF-16le. Значение 3 означает UTF-16be.
604“Версия пользователя”, прочитанная и установленная прагмой user_version.
644Истина (не ноль) для режима инкрементной очистки. False (ноль) в противном случае.
684Идентификатор приложения, установленный PRAGMA application_id.
7220Зарезервировано для расширения. Должен быть равен нулю.
924Действительный для версии номер.
964SQLITE_VERSION_NUMBER

Использованная литература

См. также