aspose.info
PT

Formato de arquivo SQLite

Atualizado em

O que é um arquivo SQLite?

Um arquivo com extensão .sqlite é um arquivo de banco de dados SQL leve criado com o software SQLite. É um banco de dados em um arquivo próprio e implementa um mecanismo de banco de dados SQL autocontido, completo e altamente confiável. Os arquivos de banco de dados SQLite podem ser usados para compartilhar conteúdo rico entre sistemas simplesmente trocando esses arquivos pela rede. Quase todos os celulares e computadores usam SQLite para armazenamento e compartilhamento de dados, e é a escolha do formato de arquivo para aplicativos multiplataforma. Devido ao seu uso compacto e fácil usabilidade, vem empacotado dentro de outros aplicativos. As ligações SQLite existem para linguagens de programação como C, C#, C++, Java, PHP, e muitos outros.

Formato de arquivo SQLite

SQLite na realidade é uma biblioteca C-Language que implementa o SQLite RDBMS usando o formato de arquivo SQLite. Com a evolução de novos dispositivos todos os dias, seu formato de arquivo foi mantido compatível com versões anteriores para acomodar dispositivos mais antigos. O formato de arquivo SQLite é visto como um formato de arquivamento de longo prazo para os dados.

O arquivo de banco de dados

Um banco de dados SQLite é totalmente mantido por meio de dois arquivos.

  • Arquivo de banco de dados principal - Contém o estado completo do banco de dados SQLite
  • Rollback Journal - Armazena informações adicionais em um segundo arquivo e é usado durante a realização de transações. Caso o SQLite esteja no modo WAL, um arquivo de log de gravação é mantido.

Arquivo de diário

Este arquivo destina-se a manter todas as informações mantidas caso a última transação não possa ser concluída em casos como uma pane no computador. Este arquivo é usado para restaurar o arquivo de banco de dados para um estado consistente.

Páginas

O arquivo principal do banco de dados SQLite é composto por uma ou mais páginas. A qualquer momento, cada página no banco de dados principal tem um único uso, que é um dos seguintes:

  • A página de bytes de bloqueio
  • Uma página de lista livre
  • Uma página de tronco de lista livre
  • Uma página de folha de lista livre
  • Uma página b-tree
  • Uma página interior da tabela b-tree
  • Uma página de folha de árvore b da tabela
  • Uma página interna do índice b-tree
  • Uma página de folha de árvore b de índice
  • Uma página de estouro de carga útil
  • Uma página de mapa de ponteiro

O tamanho dos arquivos de banco de dados SQLite pode variar de alguns kilobytes a alguns gigabytes.

Cabeçalho SQLite

O cabeçalho do banco de dados SQLite está localizado nos primeiros 100 bytes do arquivo de banco de dados. Todo arquivo de banco de dados SQLite válido começa com 16 bytes (em hexadecimal):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Os detalhes dos campos de cabeçalho são como na tabela a seguir.

DeslocamentoTamanhoDescrição
016A string do cabeçalho: “formato SQLite 3\000”
162O tamanho da página do banco de dados em bytes. Deve ser uma potência de dois entre 512 e 32768 inclusive, ou o valor 1 representando um tamanho de página de 65536.
181Versão de gravação do formato de arquivo. 1 para legado; 2 para WAL.
191Versão de leitura do formato do arquivo. 1 para legado; 2 para WAL.
201Bytes de espaço “reservado” não utilizado no final de cada página. Normalmente 0.
211Fração máxima de carga útil incorporada. Deve ser 64.
221Fração de carga útil incorporada mínima. Deve ser 32.
231Fração de carga útil da folha. Deve ser 32.
244Contador de alteração de arquivo.
284Tamanho do arquivo de banco de dados em páginas. O “tamanho do banco de dados no cabeçalho”.
324Número da primeira página de tronco da lista livre.
364Número total de páginas de lista livre.
404O cookie do esquema.
444O número do formato do esquema. Os formatos de esquema com suporte são 1, 2, 3 e 4.
484Tamanho de cache de página padrão.
524O número da página da maior página de árvore b raiz quando em modos de vácuo automático ou de vácuo incremental, ou zero caso contrário.
564A codificação de texto do banco de dados. Um valor de 1 significa UTF-8. Um valor de 2 significa UTF-16le. Um valor de 3 significa UTF-16be.
604A “versão do usuário” conforme lida e definida pelo pragma user_version.
644True (diferente de zero) para o modo de vácuo incremental. Falso (zero) caso contrário.
684O “ID do aplicativo” definido pelo PRAGMA application_id.
7220Reservado para expansão. Deve ser zero.
924O número da versão válida para.
964SQLITE_VERSION_NUMBER

Referências

Veja também