FAQ On The DBF File Format
What is the DBF file format?
The DBF file format became popular with computer users in the early 80's. It was originally associated with the now defunct dBase database programming language, but was adopted as an open industry standard file format by a wide range of computer software manufacturers, including Microsoft.
The DBF file format can be thought of as a structured form of ASCII text. It is a simple file format, which is also its greatest strength. Unlike a normal ASCII file, a DBF file has 255 bytes of "header" information that describes the structure of the file. The header allows applications to present the information in a DBF to users in a meaningful way, even when an application has never seen that particular file before. The existence of the header also allows an application to determine whether the file is in fact a valid DBF or whether it is some other kind of file, or whether it has become corrupted. This is not normally possible with ASCII text.
Are DBF files obsolete?
No. This would be like arguing that ASCII files are obsolete. ASCII and other types of structured ASCII will always have their place. It is important not to assume that a proven technology is by definition obsolete. For example, the C programming language is more than 30 years old and still remains the number one development language used by Microsoft and other major software developers.
What are the advantages of using DBF?
The main advantage is the widespread recognition of the DBF format among different software applications. CAPITAL databases can be accessed directly from WinFax software; CAPITAL data files can be mail merged into Microsoft Word or loaded into Microsoft Excel or analyzed using Access. Many popular applications natively recognize DBF so file conversions are often not required. For applications that require ODBC links, many ODBC drivers are available for working with DBF files.
Why not use a more "popular" Microsoft file format?
The main problem with most of the Microsoft formats are that they are proprietary and constantly changing. Microsoft does not officially publish information on many of its most popular file formats because it wants to remain free to change those formats in future versions.
A standard that always changes is not really a standard. Links established with other applications get broken and have to redone. For example, you do not want to constantly work out new ways to get mail merging working every time you upgrade. In a like manner you don't want your e-commerce system to stop working because an upgrade has changed the file format. Regular changes of the file format affect performance and cause other problems. For example, users who upgraded from Microsoft Access 97 to Access 2000 found that their data files doubled in size. While this change allowed Microsoft to better support Asian languages, in practical terms it meant many processes for users of Access took twice as long to perform, with no benefit gained.
A true open standard should not ideally change over long periods of time. ODBC addresses some of these compatibility issues but for performance reasons native access to the file format is sometimes essential.
Why not use a SQL or object database format?
These types of file formats have their uses, but many popular applications are not able to natively recognize or query the contents of SQL or object databases. Most of these types of sophisticated file formats have other problems. Often there is substantial overhead associated with retrieving small amounts of information from them. (Although they can often be quite efficient at retrieving large amounts of information.) Complex file formats are also more sensitive to corruption. It is often feasible to recover information from a corrupted DBF file if a restore from a back-up failed. For a object or "blob" style database most kinds of corruption present few if any recovery options.
Can I work with DBF while using the latest development tools or software applications?
Absolutely. Third-party libraries can be used to access DBF files for Delphi, Visual Basic, C, Java and other programming languages. Many different types of ODBC drivers are available. And many development tools natively recognize the DBF file format.