1.4 Overview of Software Applications
1.4.3 Databases
A database is a collection of data that is organized so that its contents can be easily accessed, managed, and updated. It is an electronic filing system. Microsoft Access, Oracle Database, and FileMaker are all examples of database applications.

PC databases fall into two distinct categories, flat-file and relational. A flat-file database stores the information in a single table. Each column, called a field, contains a particular piece of information such as first name, last name, address, and telephone number. Each row, called a record, contains information for a particular database item, for example John / Smith / 24 Main Street / 286 245 988. An ordinary telephone directory might be stored in this format.

Relational databases are a collection of flat-file databases (or tables) linked through some particular relationship. For example, a bank would use a relational database to store information about its clients. There would be a table containing the names and addresses of clients, a table with detailed information about each bank account, a table with the amount in each account, a table with passwords, and so on. A unique identifier called a key, which forms the relationship between records in different tables, links the information in these tables. For example, when taking money out of a cash machine, the bank card details and the password number are checked in a security table. Then the account balance table will be checked to make sure there are sufficient funds available, and the transaction is stored in an account transaction table.

Relational databases are the best way to store large amounts of inter-related data. Their advantage when compared with flat-file databases is their ability to handle multiple relationships with a minimum of duplication of data. For example, each bank account will have many transactions (a one-to-many relationship). To do this in a single flat-file database would make it overwhelmingly large and inefficient. Flat-file databases are two dimensional, while relational databases have three or more dimensions.