Какво е SQLite файл?
Файл с разширение .sqlite е лек SQL файл с база данни, създаден със софтуера SQLite. Това е база данни в самия файл и внедрява самостоятелна, пълнофункционална, високонадеждна SQL машина за бази данни. Файловете на бази данни SQLite могат да се използват за споделяне на богато съдържание между системите чрез прост обмен на тези файлове по мрежата. Почти всички мобилни телефони и компютри използват SQLite за съхраняване и споделяне на данни и е изборът на файлов формат за междуплатформени приложения. Благодарение на своята компактна употреба и лесна употреба, той идва в комплект с други приложения. SQLite свързвания съществуват за езици за програмиране като C, C#, C++, Java, PHP, и много други.
SQLite файлов формат
SQLite в действителност е C-Language библиотека, която внедрява SQLite RDBMS, използвайки файловия формат SQLite. С еволюцията на нови устройства всеки ден, неговият файлов формат е поддържан обратно съвместим, за да побере по-стари устройства. Файловият формат SQLite се разглежда като дългосрочен архивен формат за данните.
Файлът на базата данни
SQLite база данни се поддържа изцяло чрез два файла.
- Главен файл с база данни - Съдържа пълното състояние на базата данни SQLite
- Rollback Journal - Съхранява допълнителна информация във втори файл и се използва по време на извършване на транзакции. В случай, че SQLite е в режим WAL, се поддържа лог файл на главата за запис.
Журнал файл
Този файл е предназначен да съхранява цялата информация, поддържана в случай, че последната транзакция не може да бъде завършена в случаи като компютърен срив. Този файл се използва за възстановяване на файла на базата данни до съвместимо състояние.
Страници
Основният файл на база данни SQLite се състои от една или повече страници. Във всеки момент всяка страница в основната база данни има еднократна употреба, която е една от следните:
- Заключващата байтова страница
- Страница с безплатен списък
- Основна страница за свободен списък
- Листна страница с безплатен списък
- Страница b-дърво
- Таблица b-дърво вътрешна страница
- Таблица b-дърво листа страница
- Индекс b-дърво вътрешна страница
- Индекс b-дърво листа страница
- Страница за препълване на полезен товар
- Страница с карта с указател
Размерът на файловете на базата данни SQLite може да варира от няколко килобайта до няколко гигабайта.
SQLite Header
Заглавката на базата данни SQLite се намира в първите 100 байта на файла на базата данни. Всеки валиден файл на база данни SQLite започва с 16 байта (в шестнадесетичен):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Подробностите за полетата на заглавката са както в следващата таблица.
Офсет | Размер | Описание |
---|---|---|
0 | 16 | Заглавният низ: “SQLite формат 3\000” |
16 | 2 | Размерът на страницата на базата данни в байтове. Трябва да е степен две между 512 и 32768 включително или стойността 1, представляваща размер на страницата 65536. |
18 | 1 | Версия за запис на файлов формат. 1 за наследство; 2 за WAL. |
19 | 1 | Прочетена версия на файлов формат. 1 за наследство; 2 за WAL. |
20 | 1 | Байтове неизползвано “запазено” пространство в края на всяка страница. Обикновено 0. |
21 | 1 | Максимална част от вградения полезен товар. Трябва да е 64. |
22 | 1 | Минимална част от вградения полезен товар. Трябва да е 32. |
23 | 1 | Фракция полезен товар на листа. Трябва да е 32. |
24 | 4 | Брояч за промяна на файлове. |
28 | 4 | Размер на файла на базата данни в страници. „Размерът на базата данни в заглавката“. |
32 | 4 | Номер на страницата на първата основна страница на безплатния списък. |
36 | 4 | Общ брой страници с безплатни списъци. |
40 | 4 | Бисквитката на схемата. |
44 | 4 | Номерът на формата на схемата. Поддържаните формати на схемата са 1, 2, 3 и 4. |
48 | 4 | Размер на кеша на страницата по подразбиране. |
52 | 4 | Номерът на страницата на най-голямата страница на основно b-дърво, когато е в режим на автоматично вакуумиране или инкрементален вакуум, или нула в противен случай. |
56 | 4 | Кодирането на текста на базата данни. Стойност 1 означава UTF-8. Стойност 2 означава UTF-16le. Стойност 3 означава UTF-16be. |
60 | 4 | „Потребителската версия“, както е прочетена и зададена от прагмата user_version. |
64 | 4 | Вярно (различно от нула) за режим на инкрементален вакуум. Невярно (нула) в противен случай. |
68 | 4 | „Идентификационният номер на приложението“, зададен от PRAGMA application_id. |
72 | 20 | Запазено за разширяване. Трябва да е нула. |
92 | 4 | Версията-валидна-за номер. |
96 | 4 | SQLITE_ВЕРСИЯ_НОМЕР |