- Flat file database
A flat file database describes any of various means to encode a
data model (most commonly a table) as aplain text file.Flat files
A flat file is a
plain text file which usually contains one record per line. [Citation
last = Fowler
first = Glenn
year = 1994
title = cql: Flat file database query language
periodical = WTEC'94: Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
url = http://www.research.att.com/~gsf/publications/cql-1994.pdf] Within such a record, the single fields can be separated by delimiters, e.g. commas, or have a fixed length. In the latter case, padding may be needed to achieve this length. Extra formatting may be needed to avoid delimiter collision. There are no structural relationships between the records.Typical examples of flat files are
/etc/passwd
and/etc/group
onUnix-like operating systems. Another example of a flat file is a name-and-address list with the fields "Name", "Address", and "Phone Number".Implementation
It is possible to write out by hand, on a sheet of paper, a list of names, addresses, and phone numbers; this is a flat file database. This can also be done with any
typewriter orword processor . Many pieces of computer software are designed to implement flat file databases.Historical implementations
The first uses of computing machines were implementations of simple databases.
Herman Hollerith conceived the idea that any resident of the United States could be represented by a string of exactly 80 digits and letters—name, age, and so forth, padded as needed with spaces to make everyone's name the same length, so the database fields would "line up" properly. He sold his concept, his machines, and the punched cards which both recorded and stored this data to the US Census Bureau; thus, the Census of1890 was the first ever computerized database—consisting, in essence, of thousands of boxes full of punched cards.Throughout the years following
World War II , primitive electronic computers were run by governments and corporations; these were very often used to implement flat file databases, the most typical of which were accounting functions, such as payroll. Very quickly, though, these wealthy customers demanded more from their extremely expensive machines, which led to early relational databases. Amusingly enough, these early applications continued to use Hollerith cards, slightly modified from the original design; Hollerith's enterprise grew into computer giantIBM , which dominated the market of the time. The rigidity of the fixed-length field, 80-column punch card driven database made the early computer a target of attackClarifyme|date=March 2008, and a mystery to the common man.In the 1980s, configurable flat-file database
computer application s were popular onDOS 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 withword processors andspreadsheet s in popularity. Examples of flat-file database products were early versions ofFileMaker and theshareware PC-File . Some of these offered limited relational capabilities, allowing some data to be shared between files.Contemporary implementations
Faircom 'sC-tree is an example of a modern enterprise-level solution, but aside from that, there are very few programs available today that would allow a novice to create and use a general-purpose flat file database. This functionality is implemented inMicrosoft Works (available only for some versions of Windows) andAppleWorks , sometimes named ClarisWorks (available for both Macintosh and Windows platforms). Over time, products likeBorland 's Paradox, andMicrosoft 's Access started offering some relational capabilities, as well as built-in programming languages. Database Management Systems (DBMS ) likeMySQL 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. Some small "contact" (name-and-address) database implementations essentially use flat files.
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 contains the definition of the data, it would be incorrect to describe this type of database as conforming to the flat-file model.Terms
"Flat file database" may be defined very narrowly, or more broadly. The narrower interpretation is correct in database theory; the broader covers the term as generally used.
Strictly, a flat file database should consist of nothing but data and delimiters. More broadly, the term refers to any database which exists in a single file in the form of rows and columns, with no relationships or links between records and fields except the table structure.
Terms used to describe different aspects of a database and its tools differ from one implementation to the next, but the concepts remain the same. FileMaker uses the term "Find", while MySQL uses the term "Query"; but the concept is the same. FileMaker "files" are equivalent to MySQL "tables", and so forth. To avoid confusing the reader, one consistent set of terms is used throughout this article.
However, the basic terms "record" and "field" are used in nearly every database implementation.
Example database
The following example illustrates the basic elements of a flat-file database. The
data arrangement consists of a series of columns and rows organized into a tabular format. This specific example uses only one table.The columns include: "name" (a person's name, second column); "team" (the name of an athletic team supported by the person, third column); and a numeric "unique ID", (used to uniquely identify records, first column).
Here is an example textual representation of the described data:
id name team 1 Amy Blues 2 Bob Reds 3 Chuck Blues 4 Dick Blues 5 Ethel Reds 6 Fred Blues 7 Gilly Blues 8 Hank Reds
This type of data representation is quite standard for a flat-file database, although there are some additional considerations that are not readily apparent from the text:
* Data types: each column in a database table such as the one above is ordinarily restricted to a specificdata type . Such restrictions are usually established by convention, but not formally indicated unless the data is transferred to arelational database system.
* Separated columns: In the above example, individual columns are separated using whitespace characters. This is also called indentation or "fixed-width" data formatting. Another common convention is to separate columns using one or moredelimiter characters. There are "many" different conventions for depicting data such as that above in text. (See e.g.,Comma-separated values ,Delimiter-separated values ,Markup language ,Programming language ).
* Relational algebra: Each row or record in the above table meets the standard definition of atuple underrelational algebra (the above example depicts a series of 3-tuples). Additionally, the first row specifies the field names that are associated with the values of each row.
* Database management system: Since the formal operations possible with a text file are usually more limited than desired. The text in the above example would ordinarily represent an intermediary state of the data prior to being transferred into adatabase management system .Practical implementations
*
Berkeley DB , a robust flat file database for critical applications which does ACID.
* [http://sourceforge.net/projects/textdb TextDB] , a file-based database designed to handle high loads.
*SQLite , a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.
* [http://mimesis.110mb.com Mimesis] , an ffdb that uses multiple files and a heap method of storageReferences
Wikimedia Foundation. 2010.