Ano ang isang SQLite File?
Ang file na may .sqlite extension ay isang magaan na SQL database file na ginawa gamit ang SQLite software. Ito ay isang database sa isang file mismo at nagpapatupad ng isang self-contained, full-feature, highly-reliable SQL database engine. Ang mga SQLite database file ay maaaring gamitin upang magbahagi ng mga rich content sa pagitan ng mga system sa pamamagitan ng simpleng pagpapalitan ng mga file na ito sa network. Halos lahat ng mga mobile at computer ay gumagamit ng SQLite para sa pag-iimbak at pagbabahagi ng data, at ito ang pagpili ng format ng file para sa mga cross-platform na application. Dahil sa compact na paggamit nito at madaling usability, kasama ito sa loob ng iba pang mga application. Umiiral ang mga SQLite binding para sa mga programming language gaya ng C, C#, C++, Java, [PHP](/programming/ php/), at marami pang iba.
Format ng File ng SQLite
Ang SQLite sa katotohanan ay isang C-Language library na nagpapatupad ng SQLite RDBMS gamit ang SQLite file format. Sa ebolusyon ng mga bagong device araw-araw, ang format ng file nito ay pinananatiling backward compatible para ma-accommodate ang mga mas lumang device. Ang SQLite file format ay nakikita bilang pangmatagalang format ng archival para sa data.
Ang Database File
Ang isang database ng SQLite ay ganap na pinananatili sa pamamagitan ng dalawang file.
- Pangunahing database File - Naglalaman ng kumpletong estado ng database ng SQLite
- Rollback Journal - Nag-iimbak ng karagdagang impormasyon sa pangalawang file at ginagamit sa pagsasagawa ng mga transaksyon. Kung sakaling ang SQLite ay nasa WAL mode, pinapanatili ang isang write-head log file.
Journal File
Ang file na ito ay inilaan upang panatilihin ang lahat ng impormasyon na pinananatili kung sakaling ang huling transaksyon ay hindi makumpleto sa mga kaso tulad ng pag-crash ng computer. Ang file na ito ay ginagamit upang ibalik ang database file sa isang pare-parehong estado.
Mga pahina
Ang pangunahing SQLite database file ay binubuo ng isa o higit pang mga pahina. Sa anumang punto ng oras, ang bawat pahina sa pangunahing database ay may iisang gamit na isa sa mga sumusunod:
- The lock-byte page
- A freelist page
- A freelist trunk page
- A freelist leaf page
- A b-tree page
- A table b-tree interior page
- A table b-tree leaf page
- An index b-tree interior page
- An index b-tree leaf page
- A payload overflow page
- A pointer map page
Ang laki ng mga SQLite database file ay maaaring mula sa ilang kilobytes hanggang ilang gigabytes.
SQLite Header
Ang SQLite database header ay matatagpuan sa unang 100 bytes ng database file. Ang bawat wastong SQLite database file ay nagsisimula sa 16 bytes (sa hex):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Ang mga detalye ng mga field ng header ay tulad ng sa sumusunod na talahanayan.
Offset | Size | Description |
---|---|---|
0 | 16 | The header string: “SQLite format 3\000” |
16 | 2 | The database page size in bytes. Must be a power of two between 512 and 32768 inclusive, or the value 1 representing a page size of 65536. |
18 | 1 | File format write version. 1 for legacy; 2 for WAL. |
19 | 1 | File format read version. 1 for legacy; 2 for WAL. |
20 | 1 | Bytes of unused “reserved” space at the end of each page. Usually 0. |
21 | 1 | Maximum embedded payload fraction. Must be 64. |
22 | 1 | Minimum embedded payload fraction. Must be 32. |
23 | 1 | Leaf payload fraction. Must be 32. |
24 | 4 | File change counter. |
28 | 4 | Size of the database file in pages. The “in-header database size”. |
32 | 4 | Page number of the first freelist trunk page. |
36 | 4 | Total number of freelist pages. |
40 | 4 | The schema cookie. |
44 | 4 | The schema format number. Supported schema formats are 1, 2, 3, and 4. |
48 | 4 | Default page cache size. |
52 | 4 | The page number of the largest root b-tree page when in auto-vacuum or incremental-vacuum modes, or zero otherwise. |
56 | 4 | The database text encoding. A value of 1 means UTF-8. A value of 2 means UTF-16le. A value of 3 means UTF-16be. |
60 | 4 | The “user version” as read and set by the user_version pragma. |
64 | 4 | True (non-zero) for incremental-vacuum mode. False (zero) otherwise. |
68 | 4 | The “Application ID” set by PRAGMA application_id. |
72 | 20 | Reserved for expansion. Must be zero. |
92 | 4 | The version-valid-for number. |
96 | 4 | SQLITE_VERSION_NUMBER |