aspose.info
IT

Formato file SQLite

Aggiornato

Che cos’è un file SQLite?

Un file con estensione .sqlite è un file di database SQL leggero creato con il software SQLite. È un database in un file stesso e implementa un motore di database SQL autonomo, completo e altamente affidabile. I file di database SQLite possono essere utilizzati per condividere contenuti avanzati tra i sistemi scambiando semplicemente questi file in rete. Quasi tutti i cellulari e i computer utilizzano SQLite per l’archiviazione e la condivisione dei dati ed è la scelta del formato file per le applicazioni multipiattaforma. Grazie al suo utilizzo compatto e alla sua facilità d’uso, viene fornito in bundle all’interno di altre applicazioni. Esistono collegamenti SQLite per linguaggi di programmazione come C, C#, C++, Java, PHP, e molti altri.

Formato file SQLite

SQLite in realtà è una libreria C-Language che implementa l’RDBMS SQLite utilizzando il formato file SQLite. Con l’evoluzione di nuovi dispositivi ogni singolo giorno, il suo formato di file è stato mantenuto compatibile con le versioni precedenti per adattarsi ai dispositivi più vecchi. Il formato di file SQLite è visto come un formato di archiviazione a lungo termine per i dati.

Il file di database

Un database SQLite è completamente gestito tramite due file.

  • File database principale - Contiene lo stato completo del database SQLite
  • Rollback Journal - Memorizza informazioni aggiuntive in un secondo file e viene utilizzato durante l’esecuzione delle transazioni. Nel caso in cui SQLite sia in modalità WAL, viene mantenuto un file di registro della testina di scrittura.

File del diario

Questo file ha lo scopo di mantenere tutte le informazioni mantenute nel caso in cui l’ultima transazione non possa essere completata in casi come un crash del computer. Questo file viene utilizzato per ripristinare il file di database in uno stato coerente.

Pagine

Il file di database SQLite principale comprende una o più pagine. In qualsiasi momento, ogni pagina del database principale ha un unico utilizzo che è uno dei seguenti:

  • La pagina del byte di blocco
  • Una pagina di freelist
  • Una pagina del tronco della freelist
  • Una pagina foglia freelist
  • Una pagina b-tree
  • Una pagina interna del tavolo b-tree
  • Una pagina della foglia del tavolo b-albero
  • Una pagina interna dell’indice b-tree
  • Una pagina foglia indice b-albero
  • Una pagina di overflow del carico utile
  • Una pagina della mappa del puntatore

La dimensione dei file di database SQLite può variare da pochi kilobyte a pochi gigabyte.

Intestazione SQLite

L’intestazione del database SQLite si trova nei primi 100 byte del file di database. Ogni file di database SQLite valido inizia con 16 byte (in esadecimale):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. I dettagli dei campi di intestazione sono come nella tabella seguente.

OffsetDimensioneDescrizione
016La stringa di intestazione: “Formato SQLite 3\000”
162La dimensione della pagina del database in byte. Deve essere una potenza di due tra 512 e 32768 inclusi, o il valore 1 che rappresenta una dimensione della pagina di 65536.
181Versione scrittura formato file. 1 per eredità; 2 per WAL.
191Versione letta formato file. 1 per eredità; 2 per WAL.
201Byte di spazio “riservato” non utilizzato alla fine di ogni pagina. Di solito 0.
211Frazione massima del carico utile incorporato. Deve essere 64.
221Frazione minima del carico utile incorporato. Deve essere 32.
231Frazione del carico utile foglia. Deve essere 32.
244Contatore modifiche file.
284Dimensione del file di database in pagine. La “dimensione del database nell’intestazione”.
324Numero di pagina della prima pagina del tronco della freelist.
364Numero totale di pagine freelist.
404Il cookie dello schema.
444Il numero del formato dello schema. I formati di schema supportati sono 1, 2, 3 e 4.
484Dimensione cache pagina predefinita.
524Il numero di pagina della pagina b-tree radice più grande quando si è in modalità di vuoto automatico o di vuoto incrementale, altrimenti zero.
564La codifica del testo del database. Un valore di 1 significa UTF-8. Un valore di 2 significa UTF-16le. Un valore di 3 significa UTF-16be.
604La “versione utente” letta e impostata dal pragma user_version.
644True (diverso da zero) per la modalità di vuoto incrementale. Falso (zero) altrimenti.
684L’“ID applicazione” impostato da PRAGMA application_id.
7220Riservato per l’espansione. Deve essere zero.
924La versione-valida per il numero.
964SQLITE_VERSION_NUMBER

Riferimenti

Vedi anche