Data independence is a form of database management that keeps data separated from all programs that make use of it. As a cornerstone for the idea of a DBMS or database management system, this independence ensures that the data cannot be redefined or reorganized by any of the programs that make use of it. In this manner, the data remains accessible, but it is also stable and cannot be corrupted by the applications.
Within the environment of a centralized DBMS, database management relies on the process of data independence. While data transparency still exists as far as the ability of different applications to access and use the data for completing tasks, no program or application can read and then begin to make changes to the data itself. The consistency of the information makes the overall process of maintaining and managing a single database or multiple databases within a single environment much easier.
This concept is different from another approach referred to as data dependence. With this approach, the data used to run an application is actually represented in the source code for the program. The ability of the data to be modified by the program, and vice versa, means that the information is not considered constant and may be changed either by initiating the change through modifications to the source code or through using the program in other ways to adapt the core data.
One of the functions of data independence is to restrict access to the storage structure of the data by the user applications. By effectively hiding the specifics of the structure from the applications, the potential for any one application to alter the nature of the data becomes impossible. As a result, the essential data retains its integrity and remains consistent no matter how many databases or database applications access it.
There are two basic levels or types of independence when it comes to data. Logical data independence makes it possible to change the structure of the data independently of modifying the applications or programs that make use of the data. There is no need to rewrite current applications as part of the process of adding to or removing data from then system.
The second type or level is known as physical data independence. This approach has to do with altering the organization or storage procedures related to the data, rather than modifying the data itself. Accomplishing this shift in file organization or the indexing strategy used for the data does not require any modification to the external structure of the applications, meaning that users of the applications are not likely to notice any difference at all in the function of their programs.