File Format Docs
NO

SQLite File Format

Oppdatert

Hva er en SQLite-fil?

En fil med filtypen .sqlite er en lettvekts SQL-databasefil opprettet med programvaren SQLite. Det er en database i selve filen og implementerer en selvstendig, fullverdig, svært pålitelig SQL databasemotor. SQLite-databasefiler kan brukes til å dele rikt innhold mellom systemer ved å enkelt utveksle disse filene over nettverket. Nesten alle mobiler og datamaskiner bruker SQLite for lagring og deling av data, og er valget av filformat for applikasjoner på tvers av plattformer. På grunn av den kompakte bruken og den enkle brukervennligheten, kommer den sammen med andre applikasjoner. SQLite-bindinger finnes for programmeringsspråk som C, C#, C++, Java, PHP, og mange andre.

SQLite-filformat

SQLite er i virkeligheten et C-Language-bibliotek som implementerer SQLite RDBMS ved å bruke SQLite-filformatet. Med utviklingen av nye enheter hver eneste dag, har filformatet blitt holdt bakoverkompatibelt for å imøtekomme eldre enheter. SQLite-filformat blir sett på som langsiktig arkivformat for dataene.

Databasefilen

En SQLite-database vedlikeholdes fullt ut via to filer.

  • Hoveddatabasefil - Inneholder fullstendig tilstand til SQLite-databasen
  • Tilbakerullingsjournal - Lagrer tilleggsinformasjon i en andre fil og brukes under utføring av transaksjoner. I tilfelle SQLite er i WAL-modus, opprettholdes en skrivehodeloggfil.

Journal File

Denne filen er ment å beholde all informasjon i tilfelle den siste transaksjonen ikke kunne fullføres i tilfeller som en datamaskinkrasj. Denne filen brukes til å gjenopprette databasefilen til en konsistent tilstand.

Pages

Hoved SQLite-databasefilen består av én eller flere sider. På ethvert tidspunkt har hver side i hoveddatabasen en enkelt bruk som er en av følgende:

  • 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

Størrelsen på SQLite-databasefiler kan variere fra få kilobyte til få gigabyte.

SQLite Header

SQLite-databaseoverskriften er plassert i de første 100 bytene i databasefilen. Hver gyldig SQLite-databasefil starter med 16 byte (i hex):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Detaljer om overskriftsfeltene er som i følgende tabell.

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

Referanser

Se også