What is Data Independence in DBMS?

Data independence is the ability to modify the scheme without affecting the programs and the application to be rewritten. Data is separated from the programs, so that the changes made to the data will not affect the program execution and the application.

We know the main purpose of the three levels of data abstraction is to achieve data independence. If the database changes and expands over time, it is very important that the changes in one level should not affect the data at other levels of the database. This would save time and cost required when changing the database.

There are two levels of data independence based on three levels of abstraction. These are as follows −

  • Physical Data Independence

  • Logical Data Independence

Physical Data Independence

Physical Data Independence means changing the physical level without affecting the logical level or conceptual level. Using this property, we can change the storage device of the database without affecting the logical schema.

The changes in the physical level may include changes using the following −

  • A new storage device like magnetic tape, hard disk, etc.

  • A new data structure for storage.

  • A different data access method or using an alternative files organization technique.

  • Changing the location of the database.

Logical Data Independence

Logical view of data is the user view of the data. It presents data in the form that can be accessed by the end users.

Codd’s Rule of Logical Data Independence says that users should be able to manipulate the Logical View of data without any information of its physical storage. Software or the computer program is used to manipulate the logical view of the data.

Database administrator is the one who decides what information is to be kept in the database and how to use the logical level of abstraction. It provides the global view of Data. It also describes what data is to be stored in the database along with the relationship.

The data independence provides the database in simple structure. It is based on application domain entities to provide the functional requirement. It provides abstraction of system functional requirements. Static structure for the logical view is defined in the class object diagrams. Users cannot manipulate the logical structure of the database.

The changes in the logical level may include −

  • Change the data definition.

  • Adding, deleting, or updating any new attribute, entity or relationship in the database.