File-oriented approaches which came into being with the first commercial applications of computers did provide an increased efficiency in the data processing compared to earlier manual paper record-based systems as the demand for efficiency and speed increased the computer-based simple file oriented approach to information processing started suffering from the following significant disadvantages.
- Data redundancy and inconsistency: Different files may have different formats and the programs may be written in different programming languages as they are developed by different programmers. Moreover, the same information may be duplicated in several places (files). For example, the address and telephone number of a particular customer may appear in a file that consists of saving-account records and in a file that consists of checking-account records. This redundancy leads to higher storage and access cost. It may lead to data inconsistency; that is. The various copies of the same data may no longer agree.
- Difficulty in accessing data: Suppose we need to access information about all the customers of a particular scheme. During the initial stages of development of the system this kind of query might not have been known, sc no application program would be on hand to meet it. Say we have the application program that generates list of all the customers along with the scheme names. Thus we will have to run the latter program and sort the customers of particular scheme manually, or for each query we will have to write a new application program. Clearly we can see that accessing data is not easy in these cases.
- Data isolation: Since data is scattered in various files, which might be in different formats thus, it is difficult to write a new application to retrieve appropriate data.
- Integrity Problems: The data values stored in the database must satisfy certain types of consistency constraints. For example, the balance of a bank account may never fall below a prescribed amount (say, Rs. 500). Developers enforce these constraints in the system through hard coding these conditions. When new constraints are added, it is difficult to change the program to enforce them.
- Atomicity problems: Consider the situation in which during some transaction, say transferring money say Rs. 1000 from A's account to B's account, the power fails or the system goes down, leaving the state of database in an inconsistent state. Thus, the transactions should be atomic i.e. they must happen in their entirety or should not happen at all. It is difficult to ensure this property in a conventional file-processing system.
- Security problems: Every person should not be allowed to access the database for security purposes. Since application programs are added to the system in an ad-hoc manner, it is difficult to ensure such security constraints.