The term flat file database describes a very simple database model, where all the information is stored in plain text files, one database record per line. Each record is divided into fields using delimiters or at fixed column positions. The data is "flat", as in a sheet of paper, as compared to a more complex model such as a relational database.
An example of a flat file database might be a basic phone list, where the database could consist of two fields: Name and Phone Number.
In the 1980s, configurable flat-file database computer applications were popular on DOS and the Macintosh. These programs were designed to make it easy for individuals to design and use their own databases, and were almost on par with word processors and spreadsheets in popularity. Examples of flat-file database products were Filemaker and the shareware PC-File. Some of these offered limited relational capabilities, allowing some data to be shared between files.
Today, there are very few programs designed to allow novices to create and use simple databases (one can be found as a part of Microsoft Works). Over time, products like Borland's Paradox, and Microsoft's Access started offering some relational capabilities, as well as built-in programming languages. Database Management Systems (DBMS) like MySQL or Oracle generally require programmers to build applications.
Flat file databases are still used internally by many computer applications to store configuration data. Many applications allow users to store and retrieve their own information from flat files using a pre-defined set of fields. Examples are programs to manage collections of books or appointments.
XML is now a popular format for storing data in plain text files, but as XML allows very complex nested data structures to be represented, and as XML contains the definition of the data, it would be incorrect to describe this type of database as conforming to the flat-file model.