The separation of data from the programs that use the data. Nearly all modern applications are based on the principle of data independence. In fact, the whole concept of a database management system (DBMS) supports the notion of data independence since it represents a system for managing data separately from the programs that use the data. In contrast, it is possible to write applications in which the data being processed is actually represented in the program's source code. This data-dependent approach is very inflexible because it makes it difficult to modify the data and it also makes the data inaccessible to other programs.