aspose.info
UK

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

Оновлено

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

Файл із розширенням .sqlite – це легкий файл бази даних SQL, створений за допомогою програмного забезпечення SQLite. Це сама база даних у файлі, яка реалізує самодостатній, повнофункціональний, високонадійний SQL механізм бази даних. Файли бази даних SQLite можна використовувати для обміну багатим вмістом між системами шляхом простого обміну цими файлами через мережу. Майже всі мобільні телефони та комп’ютери використовують SQLite для зберігання та обміну даними, а також є вибором формату файлу для кросплатформних програм. Завдяки компактному використанню та простоті використання він поставляється в комплекті з іншими програмами. Прив’язки SQLite існують для таких мов програмування, як C, C#, C++, Java, PHP, та багато інших.

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

Насправді SQLite — це бібліотека мови C, яка реалізує RDBMS SQLite за допомогою формату файлу SQLite. З еволюцією нових пристроїв щодня, його формат файлу зберігається зворотно сумісним для розміщення старіших пристроїв. Формат файлу SQLite розглядається як довготривалий архівний формат для даних.

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

База даних SQLite повністю підтримується за допомогою двох файлів.

  • Основний файл бази даних - містить повний стан бази даних SQLite
  • Журнал відкату - зберігає додаткову інформацію у другому файлі та використовується під час виконання транзакцій. Якщо SQLite перебуває в режимі WAL, зберігається файл журналу головки запису.

Файл журналу

Цей файл призначений для зберігання всієї інформації, яка зберігається на випадок, якщо останню транзакцію не вдалося завершити в таких випадках, як збій комп’ютера. Цей файл використовується для відновлення файлу бази даних до узгодженого стану.

Сторінки

Основний файл бази даних SQLite складається з однієї або кількох сторінок. У будь-який момент часу кожна сторінка в основній базі даних має одноразове використання, яке є одним із таких:

  • Сторінка блокування байтів
  • Сторінка безкоштовного списку
  • Основна сторінка безкоштовного списку
  • Сторінка вільного списку
  • Сторінка b-дерева
  • Внутрішня сторінка таблиці b-tree
  • Таблиця b-дерева листової сторінки
  • Внутрішня сторінка 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 format 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Номер сторінки найбільшої кореневої сторінки b-дерева в режимах автоматичного вакуумування або інкрементального вакуумування або нуль в інших випадках.
564Кодування тексту бази даних. Значення 1 означає UTF-8. Значення 2 означає UTF-16le. Значення 3 означає UTF-16be.
604«Версія користувача», прочитана та встановлена прагмою user_version.
644Істина (не нуль) для режиму інкрементного вакууму. Неправда (нуль) інакше.
684«Ідентифікатор програми», встановлений PRAGMA application_id.
7220Зарезервовано для розширення. Має бути нуль.
924Версія-дійсна-для номера.
964НОМЕР_ВЕРСІЇ_SQLITE

Посилання

Див. також