Logical data independence is a property of a database management system (DBMS) that allows changes to be made in the structure of the middle level of the DBMS without affecting the highest-level schema or application programs. This means that modifications in the logical level should not result in any changes in the view levels or application programs. Logical data independence is primarily concerned with the structure or changing the data definition and the logical schema. Examples of changes that can be made at this level to the database include adding new attributes to a relation, deleting existing attributes of the relation, and so on. Logical data independence is achieved by using a modified external to logical layer mapping that preserves the property of logical data independence. The mapping is automatically performed by the DBMS itself, and it absorbs the changes made to the logical layer. However, if new fields are added or deleted from the database, changes must be made to the application program.