Filename extension | .dbf |
---|---|
Internet media type | application/dbf, application/dbase |
Developed by | dBase |
Initial release | 1983 |
Latest release | 7 |
Website | dbase |
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.
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.
This section may require cleanup to meet Wikipedia's quality standards. The specific problem is: many version history entries with nothing to do with the file format.(February 2021) |
This was the last update to the 16-bit version of the Borland Database Engine (BDE). [4]
dBASE V – MS-Windows (Level 5)
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]
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)
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]
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.
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 relative to 1900) |
4–7 | 32-bit number | Number of records in the database file |
8–9 | 16-bit number | Number of bytes in the header |
10–11 | 16-bit number | Number of bytes in the record |
12–13 | 2 bytes | Reserved; fill with 0 |
14 | 1 byte | Flag indicating incomplete transaction [note 1] |
15 | 1 byte | Encryption flag [note 2] |
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 [note 3] [note 4] | 32 bytes each | array of field descriptors (see below for layout of descriptors) |
n + 1 | 1 byte | 0x0D as the field descriptor array terminator |
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 |
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 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) |
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.
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]
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 |
File Allocation Table (FAT) is a file system developed for personal computers. Originally developed in 1977 for use on floppy disks, it was adapted for use on hard disks and other devices. It is often supported for compatibility reasons by current operating systems for personal computers and many mobile devices and embedded systems, allowing interchange of data between disparate systems. The increase in disk drives capacity required three major variants: FAT12, FAT16 and FAT32. The FAT standard has also been expanded in other ways while generally preserving backward compatibility with existing software.
A text file is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system. In operating systems such as CP/M and MS-DOS, where the operating system does not keep track of the file size in bytes, the end of a text file is denoted by placing one or more special characters, known as an end-of-file marker, as padding after the last line in a text file. On modern operating systems such as Microsoft Windows and Unix-like systems, text files do not contain any special EOF character, because file systems on those operating systems keep track of the file size in bytes. Most text files need to have end-of-line delimiters, which are done in a few different ways depending on operating system. Some operating systems with record-orientated file systems may not use new line delimiters and will primarily store text files with lines separated as fixed or variable length records.
dBase was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language that ties all of these components together. dBase's underlying file format, the .dbf file, is widely used in applications needing a simple format to store structured data.
Newline is a control character or sequence of control characters in a character encoding specification that is used to signify the end of a line of text and the start of a new one, e.g., Line Feed (LF) in Unix. Some text editors set this special character when pressing the ↵ Enter key.
Clipper is an xBase compiler that implements a variant of the xBase computer programming language. It is used to create or extend software programs that originally operated primarily under MS-DOS. Although it is a powerful general-purpose programming language, it was primarily used to create database/business programs.
Disk formatting is the process of preparing a data storage device such as a hard disk drive, solid-state drive, floppy disk or USB flash drive for initial use. In some cases, the formatting operation may also create one or more new file systems. The first part of the formatting process that performs basic medium preparation is often referred to as "low-level formatting". Partitioning is the common term for the second part of the process, dividing the device into several sub-devices and, in some cases, writing information to the device allowing an operating system to be booted from it. The third part of the process, usually termed "high-level formatting" most often refers to the process of generating a new file system. In some operating systems all or parts of these three processes can be combined or repeated at different levels and the term "format" is understood to mean an operation in which a new disk medium is fully prepared to store files. Some formatting utilities allow distinguishing between a quick format, which does not erase all existing data and a long option that does erase all existing data.
In computer programming, the term magic number has multiple meanings. It could refer to one or more of the following:
Clarion is a commercial, proprietary, fourth-generation programming language (4GL), multi-paradigm, programming language and integrated development environment (IDE) from SoftVelocity used to program database applications. It is compatible with indexed sequential access method (ISAM), Structured Query Language (SQL), and ActiveX Data Objects (ADO) data access methods, reads and writes several flat file desktop database formats including ASCII, comma-separated values (CSV), DOS (binary), FoxPro, Clipper, dBase, and some relational databases via ODBC, Microsoft SQL Server, Sybase SQL Anywhere, and Oracle Database through the use of accelerated native database drivers, and XML, Clarion can be used to output to HTML, XML, plain text, and Portable Document Format (PDF), among others.
TRSDOS is the operating system for the Tandy TRS-80 line of eight-bit Zilog Z80 microcomputers that were sold through Radio Shack from 1977 through 1991. Tandy's manuals recommended that it be pronounced triss-doss. TRSDOS should not be confused with Tandy DOS, a version of MS-DOS licensed from Microsoft for Tandy's x86 line of personal computers (PCs).
A fat binary is a computer executable program or library which has been expanded with code native to multiple instruction sets which can consequently be run on multiple processor types. This results in a file larger than a normal one-architecture binary file, thus the name.
A FourCC is a sequence of four bytes used to uniquely identify data formats. It originated from the OSType or ResType metadata system used in classic Mac OS and was adopted for the Amiga/Electronic Arts Interchange File Format and derivatives. The idea was later reused to identify compressed data types in QuickTime and DirectShow.
A hex editor is a computer program that allows for manipulation of the fundamental binary data that constitutes a computer file. The name 'hex' comes from 'hexadecimal', a standard numerical format for representing binary data. A typical computer file occupies multiple areas on the storage medium, whose contents are combined to form the file. Hex editors that are designed to parse and edit sector data from the physical segments of floppy or hard disks are sometimes called sector editors or disk editors.
The Microsoft Jet Database Engine is a database engine on which several Microsoft products have been built. The first version of Jet was developed in 1992, consisting of three modules which could be used to manipulate a database.
VP-Info is a database language and compiler for the personal computer. VP-Info was a competitor to the Clipper and dBase applications in the late 1980s and 1990s. VP-Info runs on MS-DOS, DR-DOS and the PC-MOS/386 operating system. The last release of VP-Info was named Shark.
The shapefile format is a geospatial vector data format for geographic information system (GIS) software. It is developed and regulated by Esri as a mostly open specification for data interoperability among Esri and other GIS software products. The shapefile format can spatially describe vector features: points, lines, and polygons, representing, for example, water wells, rivers, and lakes. Each item usually has attributes that describe it, such as name or temperature.
Intel hexadecimal object file format, Intel hex format or Intellec Hex is a file format that conveys binary information in ASCII text form. It is commonly used for programming microcontrollers, EPROMs, and other types of programmable logic devices. In a typical application, a compiler or assembler converts a program's source code to machine code and outputs it into a HEX file. Common file extensions used for the resulting files are .HEX or .H86. The HEX file is then read by a programmer to write the machine code into a PROM or is transferred to the target system for loading and execution.
The DOS MZ executable format is the executable file format used for .EXE files in DOS.
Motorola S-record is a file format, created by Motorola, that conveys binary information as hex values in ASCII text form. This file format may also be known as SRECORD, SREC, S19, S28, S37. It is commonly used for programming flash memory in microcontrollers, EPROMs, EEPROMs, and other types of programmable logic devices. In a typical application, a compiler or assembler converts a program's source code to machine code and outputs it into a HEX file. The HEX file is then imported by a programmer to "burn" the machine code into non-volatile memory, or is transferred to the target system for loading and execution.
A FAT file system is a specific type of computer file system architecture and a family of industry-standard file systems utilizing it.
The Esri TIN format is a popular yet proprietary geospatial vector data format for geographic information system (GIS) software for storing elevation data as a triangulated irregular network. It is developed and regulated by Esri. The Esri TIN format can spatially describe elevation information including breaking edge features. Each points and triangle can carry a tag information. A TIN stored in this file format can have any shape, cover multiple regions and contain holes.