411 REFERENCE · Wikipedia
.dbf
Reference material by Wikipedia contributors. This retains its source identity and is not 411 news reporting.
DBASE database file format family
.dbf .dbf File Extension.png .dbf dBase 1983 yes 7 dbase.com
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.
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.Powell, David B. 1984-02-07 From Basement To Boardroom PC Magazine 131 24 October 2013 https://books.google.com/books?id=knOwBOkBuYQC&pg=PA131 By 1985 PC Magazine described its file format, .dbf, as "a de facto standard" for other software.Miner Leslie 1984-02-07 Three Days With dBASE II https://books.google.com/books?id=knOwBOkBuYQC&pg=PA185 2025-04-11 PC 185–187 As the product became more popular .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
many version history entries with nothing to do with the file format February 2021
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.https://books.google.com/books?id=knOwBOkBuYQC&pg=PA131 PC Magazine From Basement to Boardroom Powell David B. 1984-02-07 2014-08-15 131–135
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.http://www.digitalpreservation.gov/formats/fdd/fdd000325.shtml dBASE Table File Format (DBF) Digitalpreservation.gov 8 October 2012 2014-08-15
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).http://www.dbase.com/dbasesql/dbase-documentation-download/ dBASE Documentation Download - dBase, LLC Dbase.com 2014-08-15
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.Bachmann Erik Xbase Data file (*.dbf) https://www.clicketyclick.dk/databases/xbase/format/dbf.html www.clicketyclick.dk
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.http://www.dbase.com/Knowledgebase/INT/db7_file_fmt.htm dBASE .DBF File Structure Dbase.com 2014-08-15
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,Jean-Pierre Martel http://www.dbase.com/Knowledgebase/dbulletin/bu02_c.htm AutoIncrement Fields Dbase.com 2014-08-15 which prevents creation of duplicate record numbers in the same table.
BDE version 5.1.0
Significant improvements over the prior releases.Jean-Pierre Martel http://www.dbase.com/Knowledgebase/dbulletin/bu05_e.htm New BDE 5.1.0 and Visual dBASE 7.01 Dbase.com 2014-08-15 There are also some limitations with regards to what the BDE can handle.http://www.dbase.com/help/8_0/Plus-en.htm DBase Plus Help 8
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
+ Layout of file header in dBase level 5 Byte Contents Meaning 0 1 byte Valid dBASE for DOS file; bits 0–2 indicate version number, bit 3 indicates the presence of a dBASE for DOS memo file, bits 4–6 indicate the presence of a SQL table, bit 7 indicates the presence of any memo file (either dBASE m PLUS or dBASE for DOS) 1–3 3 bytes Date of last update; formatted as YYMMDD (with YY being the number of years since 1900) 4–7 4 bytes (LE) Number of records in the database file 8–9 2 bytes (LE) Number of bytes in the header 10–11 2 bytes (LE) Number of bytes in the record 12–13 2 bytes Reserved; fill with 0 14 1 byte Flag indicating incomplete transactionThe ISMARKEDO function checks this flag. BEGIN TRANSACTION sets it to 1, END TRANSACTION and ROLLBACK reset it to 0. 15 1 byte Encryption flagIf 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. 16–27 12 bytes Reserved for dBASE for DOS in a multi-user environment 28 1 byte Production .mdx file flag; 1 if there is a production .mdx file, 0 if not 29 1 byte Language driver ID 30–31 2 bytes Reserved; fill with 0 32–n The maximum number of fields is 255.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). 32 bytes each array of field descriptors (see below for layout of descriptors) n + 1 1 byte 0x0D as the field descriptor array terminator
"note"
Field descriptor array
+ Layout of field descriptors in dBase level 5 (used inside the file header) Byte Contents Meaning 0–10 11 bytes Field name in ASCII (zero-filled) 11 1 byte Field type. Allowed values: C, D, F, L, M, or N (see next table for meanings) 12–15 4 bytes Reserved 16 1 byte Field length in binary (maximum 254 (0xFE)). 17 1 byte Field decimal count in binary 18–19 2 bytes Work area ID 20 1 byte Example 21–30 10 bytes Reserved 31 1 byte Production MDX field flag; 1 if field has an index tag in the production MDX file, 0 if not
"note"
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:
+ Field types in dBase level 5 Field type Mnemonic What it accepts C Character Any ASCII text (padded with spaces up to the field's length) D Date Numbers and a character to separate month, day, and year (stored internally as 8 digits in YYYYMMDD format) F Floating point -, ., 0–9 (right justified, padded with whitespaces) L Logical Y, y, N, n, T, t, F, f, or ? (when uninitialized) M Memo Any ASCII text (stored internally as 10 digits representing a .dbt block number, right justified, padded with whitespaces) N Numeric -, ., 0–9 (right justified, padded with whitespaces)
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.http://dbaseclassic.com/ dBASE Classic dBASE Classic 2014-08-15
+ File types recognized by dBASE, up to dBASE CLASSIC Extension File content .DBF Database file .DBK Database backup file .DBO Command and procedure object file .DBT Database memo file .DEF Selector definition file .DEM Define statements for a CUA form .DIF Data Interchange Format, or VisiCalc file; used with APPEND FROM and COPY TO .DOC Documentation file; Applications Generator only .ERR Created if an error occurs during form generation, or if an unrecoverable error occurs .FIL Files list design object file .EMO Compiled format (.fmt) file .FMT Generated format file; from .scr file .FNL Report binary name list file .FR3 Renamed old dBASE HI report form (.frm) file .ERG Generated report form file; from .frm file .FRM Report form file .FRO Compiled report form (.ERG) file .FW2, .FW3, .FW4 Framework spreadsheet or database file; used for import and export .GEN Template file .GRP Windows group file for dBASE for DOS .HLP dBASE for DOS help files .ICO dBASE for DOS icon file under Windows .INI Windows-like INI file to save Label Designer and IDE state information. .KEY Keystroke macro library file .LB3 Renamed old dBASE III label form (.LBL) file .LBG Generated label form file; from .LBL file .LBL Label form file .LBO Compiled label form (.LBL) file .LOG Transaction log file .LNL Label binary name list file .MBK Multiple index backup file .MDX Multiple index file .MEM Memory file .NDX Single index file .OVL dBASE for DOS overlay file PIF Microsoft Windows file for non-Windows applications .POP Pop-up menu design object file; Applications Generator only .PR2 Printer driver file .PRD A file containing printer driver information for DBSETUP .PRF Print form file .PRG dBASE command or procedure file .PRS dBASE SQL command or procedure file .PRT Printer output file .QBE QBE query file .QBO Compiled QBE query (.QBE) file .QRY dBASE El query file .RES Resource file .RPD RapidFile file; used for import and export .SC3 Renamed old dBASE III screen (.SCR) file .SCR Screen file .SNL Screen binary name list file .STR Structure list design object file; Applications Generator only .T44/.W44 Intermediate work files; used by SORT and INDEX .TBK Database memo backup file .TXT ASCII text output file .UPD QBE update query file .UPO Compiled QBE update query (.UPD) file .VAL Values list design object file; Applications Generator only .VMC Configuration file; for Virtual Memory Manager (VMM) .VUE View file .WIN Logical window save file .WKS, .WK1 Lotus 1-2-3 file; used with APPEND FROM and COPY TO
See also
Computer programming
Clipper (programming language) Clipper
File format
Visual FoxPro FoxBASE
VP-Info
References
Further reading
https://books.google.com/books?id=6jsVAiULQBgC&q=dbf+dbase&pg=PA325 Visualizing Data: Exploring and Explaining Data with the Processing Environment Ben Fry 18 December 2007 9780596554729 325 O'Reilly Media, Inc.
https://books.google.com/books?id=2uy5NlyIzmkC&q=dbf+dbase&pg=PA398 Encyclopedia of Microcomputers: Volume 4 - Computer-Related Applications: Computational Linguistics to dBase Allen Kent, James G. Williams 5 October 1989 398 CRC Press 9780824727031
External links
FoxBase, dBASE III/IV file format specification (retrieved 6 August 2018)
Category:Computer file formats