aspose.info
DA

SQLite filformat

Opdateret

Hvad er en SQLite-fil?

En fil med filtypenavnet .sqlite er en letvægts SQL-databasefil, der er oprettet med SQLite-softwaren. Det er en database i selve filen og implementerer en selvstændig, fuldt udstyret, yderst pålidelig SQL databasemotor. SQLite-databasefiler kan bruges til at dele rigt indhold mellem systemer ved simpelt at udveksle disse filer over netværket. Næsten alle mobiler og computere bruger SQLite til lagring og deling af data, og er valget af filformat til applikationer på tværs af platforme. På grund af dens kompakte brug og nemme anvendelighed, kommer den med i andre applikationer. SQLite-bindinger findes for programmeringssprog såsom C, C#, C++, Java, PHP og mange andre.

SQLite filformat

SQLite er i virkeligheden et C-Language-bibliotek, der implementerer SQLite RDBMS ved hjælp af SQLite-filformatet. Med udviklingen af nye enheder hver eneste dag, er dets filformat blevet holdt bagudkompatibelt for at rumme ældre enheder. SQLite-filformat ses som langsigtet arkiveringsformat for dataene.

Databasefilen

En SQLite-database vedligeholdes fuldt ud via to filer.

  • Hoveddatabasefil - Indeholder komplet tilstand af SQLite-databasen
  • Rollback Journal - Gemmer yderligere oplysninger i en anden fil og bruges under udførelse af transaktioner. Hvis SQLite er i WAL-tilstand, vedligeholdes en skrivehovedlogfil.

Journalfil

Denne fil er beregnet til at opbevare alle oplysningerne i tilfælde af, at den sidste transaktion ikke kunne gennemføres i tilfælde såsom et computernedbrud. Denne fil bruges til at gendanne databasefilen til en konsistent tilstand.

Sider

Den primære SQLite-databasefil består af en eller flere sider. På ethvert tidspunkt har hver side i hoveddatabasen en enkelt anvendelse, som er en af følgende:

  • Lås-byte-siden
  • En freelisteside
    • En friliste-stammeside
    • En freeliste-bladside
  • En b-træ side
    • En bord b-træ interiørside
    • En tabel b-træ bladside
    • En indeks b-træ interiørside
    • En indeks b-træ bladside
  • En nyttelastoverløbsside
  • En pointer-kortside

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

SQLite Header

The SQLite database header is located in the first 100 bytes of the database file. Every valid SQLite database file starts with 16 bytes (in hex):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Detaljer om overskriftsfelterne er som i følgende tabel.

OffsetStørrelseBeskrivelse
016Overskriftsstrengen: SQLite format 3\000
162Databasens sidestørrelse i bytes. Skal være en potens af to mellem 512 og 32768 inklusive, eller værdien 1 repræsenterer en sidestørrelse på 65536.
181Skriveversion af filformat. 1 for arv; 2 for WAL.
191Læs version af filformat. 1 for arv; 2 for WAL.
201Bytes af ubrugt reserveret plads i slutningen af hver side. Normalt 0.
211Maksimal indlejret nyttelastbrøk. Skal være 64.
221Minimum indlejret nyttelastbrøk. Skal være 32.
231Løvnyttelastbrøk. Skal være 32.
244Filændringstæller.
284Størrelse på databasefilen i sider. In-header-databasestørrelsen.
324Sidenummer på den første friliste-stammeside.
364Samlet antal freelistesider.
404Skema-cookien.
444Skemaformatnummeret. Understøttede skemaformater er 1, 2, 3 og 4.
484Standard sidecachestørrelse.
524Sidenummeret på den største rod-b-træside, når den er i autovakuum- eller inkrementalvakuumtilstande, eller nul på anden måde.
564The database text encoding. A value of 1 means UTF-8. En værdi på 2 betyder UTF-16le. En værdi på 3 betyder UTF-16be.
604Brugerversionen som læst og indstillet af pragmaen user_version.
644True (ikke-nul) for inkrementel vakuumtilstand. Falsk (nul) ellers.
684Application ID indstillet af PRAGMA application_id.
7220Reserveret til udvidelse. Skal være nul.
924Version-valid-for-nummeret.
964SQLITE_VERSION_NUMBER

Referencer

Se også