aspose.info
PT

DBF - Arquivo de banco de dados dBase

Atualizado em

O que é um arquivo DBF?

O arquivo com extensão .dbf é um arquivo de banco de dados usado por um aplicativo de sistema de gerenciamento de banco de dados chamado dBASE. Inicialmente, o banco de dados dBASE foi nomeado como Project Vulcan; iniciado por Wayne Ratliff em 1978. O tipo de arquivo DBF foi introduzido com o dBASE II em 1983. Ele organiza vários registros de dados com campos do tipo Array. O software de banco de dados xBase, que é pupular devido à sua compatibilidade com uma ampla variedade de formatos de arquivo; também suporta os arquivos DBF.

Formato de arquivo DBF

O formato de arquivo DBF pertence ao sistema de gerenciamento de banco de dados dBASE, mas pode ser compatível com xBase ou outros softwares DBMS. A versão inicial do arquivo dbf consistia em uma tabela simples que poderia ter dados adicionados, modificados, excluídos ou impressos usando o conjunto de caracteres ASCII. Com o passar do tempo, o .dbf foi aprimorado e arquivos adicionais foram adicionados para aumentar os recursos e capacidades do sistema de banco de dados.

No dBASE moderno, um arquivo DBF consiste em um cabeçalho, os registros de dados e o marcador EOF (End of File)

  • O cabeçalho contém informações sobre o arquivo, como a quantidade de registros e a quantidade de tipos de campos utilizados nos registros.
  • Os registros contêm os dados reais.
  • O final do arquivo é marcado por um único byte, com valor 0x1A.

Cabeçalho do arquivo

O layout do cabeçalho do arquivo no dBase é fornecido na tabela a seguir:

ByteConteúdoSignificado
01 bytedBASE válido para arquivo DOS; os bits 0–2 indicam o número da versão, o bit 3 indica a presença de um arquivo memo dBASE para DOS, os bits 4–6 indicam a presença de uma tabela SQL, o bit 7 indica a presença de qualquer arquivo memo (dBASE m PLUS ou dBASE para DOS)
1–33 bytesData da última atualização; formatado como AAMMDD
4–7número de 32 bitsNúmero de registros no arquivo de banco de dados
8–9número de 16 bitsNúmero de bytes no cabeçalho
10–11número de 16 bitsNúmero de bytes no registro
12–132 bytesReservado; preencha com 0
141 byteSinalizador que indica transação incompleta[nota 1]
151 byteSinalizador de criptografia[nota 2]
16–2712 bytesReservado para dBASE para DOS em um ambiente multiusuário
281 byteSinalizador de arquivo .mdx de produção; 1 se houver um arquivo .mdx de produção, 0 se não houver
291 byteID do driver de idioma
30–312 bytesReservado; preencha com 0
32–n [nota 3][nota 4]32 bytes cadaarray de descritores de campo (veja abaixo o layout dos descritores)
n + 11 byte0x0D como o terminador de matriz do descritor de campo
  • A função ISMARKEDO verifica este sinalizador (BEGIN TRANSACTION define-o como 1, END TRANSACTION e ROLLBACK redefine-o para 0).
  • Se este sinalizador for definido como 1, a mensagem Banco de dados criptografado será exibida.
  • O número máximo de campos é 255.
  • n significa o último byte na matriz do descritor de campo.

Matriz do descritor de campo

Layout dos descritores de campo no dBASE:

ByteConteúdoSignificado
0–1011 bytesNome do campo em ASCII (preenchido com zero)
111 byteTipo de campo. Valores permitidos: C, D, F, L, M ou N (consulte a próxima tabela para significados)
12–154 bytesReservado
161 byteComprimento do campo em binário (máximo 254 (0xFE)).
171 byteContagem decimal de campo em binário
18–192 bytesID da área de trabalho
201 byteExemplo
21–3010 bytesReservado
311 byteSinalizador de campo MDX de produção; 1 se o campo tiver uma marca de índice no arquivo MDX de produção, 0 se não

Registros do banco de dados

Cada registro começa com um sinalizador de exclusão (1 byte). Os campos são agrupados em registros sem separadores de campo. Todos os dados de campo são ASCII. Dependendo do tipo de campo, o aplicativo impõe outras restrições. Aqui estão os tipos de campo no dBase:

Tipo de campoMnemônicoO que aceita
CPersonagemQualquer texto ASCII (preenchido com espaços até o comprimento do campo)
DDataNúmeros e um caractere para separar mês, dia e ano (armazenados internamente como 8 dígitos no formato AAAAMMDD)
FPonto flutuante-, ., 0–9 (justificado à direita, preenchido com espaços em branco)
LLógicoY, y, N, n, T, t, F, f, ou ? (quando não inicializado)
MMemorandoQualquer texto ASCII (armazenado internamente como 10 dígitos representando um número de bloco .dbt, justificado à direita, preenchido com espaços em branco)
NNumérico-, ., 0–9 (justificado à direita, preenchido com espaços em branco)

Referências

Veja também