aspose.info
FIL

SQLite File Format

Na-update

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.

OffsetSizeDescription
016The header string: “SQLite format 3\000”
162The 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.
181File format write version. 1 for legacy; 2 for WAL.
191File format read version. 1 for legacy; 2 for WAL.
201Bytes of unused “reserved” space at the end of each page. Usually 0.
211Maximum embedded payload fraction. Must be 64.
221Minimum embedded payload fraction. Must be 32.
231Leaf payload fraction. Must be 32.
244File change counter.
284Size of the database file in pages. The “in-header database size”.
324Page number of the first freelist trunk page.
364Total number of freelist pages.
404The schema cookie.
444The schema format number. Supported schema formats are 1, 2, 3, and 4.
484Default page cache size.
524The page number of the largest root b-tree page when in auto-vacuum or incremental-vacuum modes, or zero otherwise.
564The database text encoding. A value of 1 means UTF-8. A value of 2 means UTF-16le. A value of 3 means UTF-16be.
604The “user version” as read and set by the user_version pragma.
644True (non-zero) for incremental-vacuum mode. False (zero) otherwise.
684The “Application ID” set by PRAGMA application_id.
7220Reserved for expansion. Must be zero.
924The version-valid-for number.
964SQLITE_VERSION_NUMBER

Mga Sanggunian

Tingnan din