O que é o formato de ficheiro DBF?
Um arquivo .dbf contém um banco de dados estruturado organizado em tabelas com registros. O formato originou-se em 1983 junto com o dBASE II e tornou-se o padrão de fato da família mais ampla de ferramentas de banco de dados xBase. O .dbf foi projetado para facilitar a troca de dados entre várias aplicações. Existem múltiplas versões de dialetos do formato .dbf - cada iteração adicionando novos tipos de dados e sinalizadores - e, devido a essas diferenças, nem todos os aplicativos podem abrir um determinado arquivo .dbf sem saber qual dialeto ele segue.
O cabeçalho do arquivo .dbf é codificado em binário e descreve a estrutura do banco de dados. Ele contém informações como:
- Um byte de sinalização de versão (deslocamento 0; ex:
0x03= dBASE III/IV sem memo,0x30= Visual FoxPro,0x83= dBASE III com memo complementar), - Data da última atualização do banco de dados (bytes 1-3, armazenados como AA MM DD),
- Número de registros - um número inteiro de 32 bits,
- Comprimento do cabeçalho e comprimento do campo de registro,
- Sinalizador de criptografia,
- Matriz descritora de campos - uma tabela de nomes de colunas, tipos e larguras fixas.
Após o cabeçalho, os registros são salvos em texto ASCII ou formato binário com um comprimento de campo constante. Quando um registro é removido pelo aplicativo, seu primeiro byte é definido como um asterisco (0x2A), marcando-o como logicamente excluído em vez de apagá-lo fisicamente. Novos registros são anexados ao final do arquivo, aumentando seu tamanho; algumas implementações posteriormente compactam o arquivo com uma operação PACK e sobrescrevem registros excluídos anteriormente.
Dados de memo (texto longo, binário ou objetos OLE) não são armazenados dentro do próprio .dbf - eles residem em um arquivo complementar: .dbt para dBASE III/IV ou .fpt para FoxPro/Visual FoxPro. O registro .dbf armazena apenas um ponteiro de número de bloco para o complemento. Arquivos .dbf também podem ser abertos usando visualizadores DBF dedicados; tais ferramentas permitem que os usuários inspecionem o conteúdo do arquivo em uma forma legível por humanos. Arquivos .dbf não devem ser abertos com um editor de texto, pois o cabeçalho binário e os dados do campo aparecerão como caracteres ilegíveis.
Segurança e proteção
RISCO: LOWUm .dbf contém dados tabulares simples, não é executável, portanto, abrir um é seguro. Duas precauções práticas: (1) incompatibilidades de codificação de caracteres/página de código podem tornar o texto acentuado ou não latino ilegível - escolha o charset correto na importação; (2) DBFs de fontes contábeis, fiscais ou GIS podem conter dados pessoais/sensíveis, portanto, evite enviá-los para visualizadores online. DBFs corrompidos (arquivo de memo ausente ou truncado) podem precisar de uma ferramenta de reparo/recuperação em vez de um abridor normal.
Detalhes do formato
em resumoProgramas que abrem arquivos DBF
Detalhes técnicos
especificação profunda| Categoria do formato | Banco de dados binário de tabela única plana; layout de registro de comprimento fixo com um cabeçalho binário e matriz descritora de campos |
| Tipo MIME | application/dbf (também application/dbase e application/x-dbf em várias implementações) |
| Identificação de versão | O primeiro byte (deslocamento 0) é um sinalizador de dialeto em vez de um número mágico fixo: 0x03 = dBASE III/IV sem memo, 0x30 = Visual FoxPro, 0x83 = dBASE III com memo .dbt, 0xF5 = FoxPro 2.x com memo |
| Estrutura do cabeçalho | Cabeçalho base de 32 bytes + um descritor de campo de 32 bytes por coluna + byte terminador 0x0D; os descritores de campo começam no deslocamento 32 |
| Tratamento de exclusão | Registros excluídos são sinalizados logicamente definindo o primeiro byte do registro como 0x2A (asterisco ASCII); eles permanecem no arquivo até serem explicitamente removidos via uma operação PACK |
| Codificação de registro | Registros de comprimento fixo; campos de Caractere em ASCII, campos Numéricos como strings ASCII decimais zonadas, Data como ASCII YYYYMMDD de 8 bytes, bytes binários/brutos para outros tipos |
| Tipos de campo suportados | Caractere (C), Numérico (N), Data (D), Lógico (L), Memo (M), Flutuante (F); o Visual FoxPro adiciona Moeda (Y), DataHora (T), Inteiro (I) e Geral (G) para objetos OLE |
| Arquivo complementar de memo | .dbt para dBASE III/IV; .fpt para FoxPro e Visual FoxPro - o registro .dbf armazena apenas um ponteiro de número de bloco de 10 dígitos, não os dados do memo em si |
| Arquivos complementares de índice | .ndx (índice único dBASE), .mdx (multi-índice dBASE IV), .cdx (índice composto FoxPro/VFP) - todos externos; nenhum dado de índice é incorporado no .dbf |
| Máximo de registros | Até 1.073.741.823 registros por tabela (2³⁰ − 1) no dBASE 7; dialetos anteriores limitam-se a contagens menores dependendo da largura do campo do cabeçalho |
| Máximo de campos por tabela | 255 campos nos dialetos xBase padrão (dBASE III até FoxPro/VFP) |
| Comprimento do nome do campo | Até 10 caracteres no dBASE III/IV e FoxPro; até 128 caracteres no modo Long Field Names do dBASE 7 |
| Suporte a codepage | Identificador de codepage armazenado no deslocamento do cabeçalho 29 (0x1D); valores comuns: 0x03 Windows ANSI, 0x57 US OEM (CP437), 0x64 Eastern European OEM (CP852) |
| Sinalizador de criptografia | O byte do cabeçalho no deslocamento 15 (0x0F) sinaliza a criptografia de registro no nível do dBASE; se definido, os dados do registro são ofuscados por XOR - distinto de qualquer criptografia no nível do sistema de arquivos |
| Uso em GIS | O ESRI Shapefile sempre acompanha um .dbf complementar para atributos de feição junto com o arquivo de geometria .shp; ferramentas como GDAL/ogr2ogr leem e escrevem esses arquivos .dbf nativamente |
| Lançado | 1983 (dBASE II/III); format family known as xBase |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.dbase.com |
Conversões de DBF
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos DBF.