Techniques that allow data to be changed without affecting the applications that process it. There are two kinds of data independence. The first type is data independence for data, which is accomplished in a database management system (DBMS). It allows the database to be structurally changed without affecting most existing programs. Programs access data in a DBMS by field and are concerned with only the data fields they use, not the format of the complete record. Thus, when the record layout is updated (fields added, deleted or changed in size), the only programs that must be changed are those that use those new fields. Data Independence for Processing The second type of data independence relates to processing and refers to miscellaneous data used in programs that might change in the future, such as discount rates, product descriptions and error messages. Such data should be stored in a database and not "hard wired" into the code of the program. When values change, only the database item is altered, a much simpler task than recompiling numerous programs.