.dbf

.dbf

.dbf

DBASE database file format family


The .dbf file extension represents the dBase database file. The file type was introduced in 1983 with dBASE II. The file structure has evolved to include many features and capabilities. Several additional file types have been added, to support data storage and manipulation. The current .dbf file level is called Level 7. The .dbf format is supported by a number of database products.

Quick Facts Filename extension, Internet media type ...

Overview

The original dBASE database was known as Project Vulcan and was started by Wayne Ratliff in 1978. At the time the file that held the data was a simple table that could have data added, modified, deleted, or printed using the ASCII characters set.[1] As the product became more popular, the underlying file type .dbf was expanded, and additional files were added to increase the capabilities of the database system. Despite dBASE being an IDE (integrated development environment), a database system, a compiler, and a database application builder, the original .dbf file was still used for the actual data storage mechanism.

History of the file format

Classical .dbf

Project Vulcan – CP/M (Level 1)
There is no publicly available information on the original layout. What is known is that it was a simple table which allowed adding, deleting, modifying, and outputting ASCII data. It was written for 8-bit machines that ran CP/M.
dBASE II – MS-DOS (Level 2)
dBASE II was the first major release by Ashton-Tate. It had many advancements beyond the simple table structures of Project Vulcan.[2]
  • Still written for 8-bit computing
  • Increased the number of fields from 16 to 32
  • Introduced a SORT routine
  • 16-bit version finally released in April 1983 (version 2.4)
dBASE III – MSDOS (Level 2sh)
dBASE III (version "1.0"), was released in June 1984. This was a fully 16-bit application. dBASE III's file format is a transitional step between dBASE II and dBASE III+.

Modern dBASE

dBASE III+ – MS-DOS (Level 3)
dBASE III+ was released in December 1985. It ushered the modern dBASE file format. It is incompatible with dBASE III's file format.[3]
dBASE IV – MS-DOS (Level 4)
  • 1.0 x322 Oct 1988
  • 1.0 x55 Mar 1993 – dBASE Compiler
  • 2.0 x12 Oct 1993 Includes fixes in dBASE IV v2.0 x16 above (not x17 i.e. not VLM compatible, dB5D exe's are compatible). It's also a new version that contain new features not in the V1.0 product:
    • 32-bit generation
    • Auto compiling and linking
    • Smaller .EXE size
    • Menu-driven user interface
    • Linker can produce combined .DBO output
    • Linker can produce a .MAP file
    • Compiler supports alternate date formats
    • command-line switches accept wildcards in file names.
dBASE V – MS-DOS (Level 5)
1.0 x46 Jun 1994
BDE – Borland Database Engine 2.52

This was the last update to the 16-bit version of the Borland Database Engine (BDE).[4]

dBASE V – MS-Windows (Level 5)

  • 5.5 b673 Jul 1995

xBase

xBase is a name applied to clones of the dBase, typically dBASE III+V. Most xBase programs either use the format directly or uses a derived format with custom extensions. Erik Bachmann maintains an open-licensed description of these formats.[5]

dBASE 7

The Level 7 structure is the latest supported by dBASE and BDE. It is incompatible with the previous file format, and is supported by few third-party applications.[6]

dBASE 7 – MS-Windows (Level 7)

  • 7.0 b1345 Dec 1997 Full 32 bit version for Win 95/NT

Level 7 brought many improvements. The maximum length for field names increased from 10 to 31 characters. Some new fields types were added, such as the auto-increment field,[7] which prevents creation of duplicate record numbers in the same table.

BDE version 5.1.0

Significant improvements over the prior releases.[8] There are also some limitations with regards to what the BDE can handle.[9]

File format of Level 5 DOS dBASE

The "modern dBASE" III+V is the most common dBASE file format found in the wild. In "modern dBASE", a .dbf file consists of a header, the data records, and the end-of-file marker.

  • The header contains information about the file, such as the number of records and the number of types of fields used in the records.
  • The records contain the actual data.
  • The end of the file is marked by a single byte, with value 0x1A.

File header

More information Byte, Contents ...
  1. The ISMARKEDO function checks this flag. BEGIN TRANSACTION sets it to 1, END TRANSACTION and ROLLBACK reset it to 0.
  2. If this flag is set to 1, the message Database encrypted appears. Changing this flag to 0 removes the message, but does not decrypt the file.
  3. The maximum number of fields is 255.
  4. n means the last byte in the field descriptor array. The array's size depends on the number of fields used in a database. n is equal to 31 + 32 * (number of fields).

Field descriptor array

More information Byte, Contents ...

    Database records

    Each record begins with a 1-byte "deletion" flag. The byte's value is a space (0x20), if the record is active, or an asterisk (0x2A), if the record is deleted. Fields are packed into records without field separators or record terminators.

    All field data is ASCII. Depending on the field's type, the application imposes further restrictions:

    More information Field type, Mnemonic ...

    Memo fields and the .DBT file

    A memo (.DBT) file consists of blocks numbered sequentially (0,1,2, and so on). SET BLOCKSIZE determines the size of each block. The first block, block 0, is the memo file header.

    Each memo field of each record in the .DBF file contains the number of the block (in ASCII) where the memo field begins. If the memo field contains no data, the .DBF file contains blanks (0x20) rather than a number.

    When a memo field's content changes, its block number may also change. I.e. the memo gets relocated. In that case, the number in the .DBF file gets updated.

    In dBASE III PLUS, the space consumed by deleted text in a memo field cannot be reused the .DBT file size grows each time text is added, even if other text has been deleted. dBASE for DOS may reuse that space for new text. dBASE IQ PLUS always appended new text to the end of the .dbt file.

    Other file types found in dBASE

    dBASE defines many types of files. It also recognizes some operating system files and files from other products. The table below lists the most commonly used formats first. It was compiled from the documentation of dBASE III+, dBASE IV, and dBASE CLASSIC.[10]

    More information Extension, File content ...

    See also

    • Clipper – Compiler for xBase
    • File format – Structure of information stored on a computer
    • FoxBASE – Programming language

    References

    1. Powell, David B. (1984-02-07). "From Basement To Boardroom". PC Magazine. p. 131. Retrieved 24 October 2013.
    2. Powell, David B. (1984-02-07). "From Basement to Boardroom". PC Magazine: 131–135. Retrieved 2014-08-15.
    3. "dBASE Table File Format (DBF)". Digitalpreservation.gov. 8 October 2012. Retrieved 2014-08-15.
    4. "dBASE Documentation Download - dBase, LLC". Dbase.com. Retrieved 2014-08-15.
    5. Bachmann, Erik. "Xbase Data file (*.dbf)". www.clicketyclick.dk.
    6. "dBASE .DBF File Structure". Dbase.com. Retrieved 2014-08-15.
    7. Jean-Pierre Martel. "AutoIncrement Fields". Dbase.com. Retrieved 2014-08-15.
    8. Jean-Pierre Martel. "New BDE 5.1.0 and Visual dBASE 7.01". Dbase.com. Retrieved 2014-08-15.
    9. "dBASE Classic". dBASE Classic. Retrieved 2014-08-15.

    Further reading


    Share this article:

    This article uses material from the Wikipedia article .dbf, and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.