A number of characteristics distinguish the database approach from the much older approach of programming with files. In traditional file processing, each user defines and implements the files needed for a specific software application as part of programming the application. For example, one user, the grade reporting office, may keep files on students and their grades. Programs to print a student's transcript and to enter new grades are implemented as part of the application. A second user in the accounting office, may keep track of student's fees and their payments.
Although both users are interested in data about students, each user maintains separate files and programs to manipulate these files because each requires some data which may not be available from the other user's files. This redundancy in defining and storing data results in wasted storage space and in redundant efforts to maintain common up-to-date data. In the
database approach, a single repository maintains data that is defined once and then accessed by various users. In file systems, each application is free to name data elements independently.
In contrast, in a database, the names or labels of data are defined once, and used repeatedly by queries, transactions, and applications.
The main characteristics of the database approach versus the file-processing approach are the following:
- Self-describing nature of a database system
- Insulation between programs and data, and data abstraction
- Support of multiple views of the data
- Sharing of data and multiuser transaction processing