Data Independence in DBMS

Data independence refers as the capacity to change the schema at one level of a database system without having to change the schema at the next higher level.  The immunity of user applications to changes made in the definition and organization of data. Data abstractions expose only those items that are important or pertinent to the user. Complexity is hidden from the database user. Data independence and operation independence together form the feature of data abstraction.

Whenever we have a multiple-level DBMS, its catalog must be expanded to include information on how to map requests and data among the various levels. The DBMS uses additional software to accomplish these mappings by referring to the mapping information in the catalog. Data independence is accomplished because, when the schema is changed at some level, the schema at the next higher level remains unchanged; only the mapping between the two levels is changed. Hence, application programs referring to the higher-level schema need not be changed. The three-schema architecture can make it easier to achieve true data independence, both physical and logical. However, the two levels of mappings create an overhead during compilation or execution of a query or program, leading to inefficiencies in the DBMS. Because of this, few DBMSs have implemented the full three-schema architecture.

There are two types of data independence: logical and physical.

1. Logical data independence

Logical data independence is the capacity to change the conceptual schema without having to change external schemas or application programs. We may change the conceptual schema to expand the database (by adding a record type or data item), or to reduce the database (by removing a record type or data item). In the latter case, external schemas that refer only to the remaining data should not be affected. Only the view definition and the mappings need be changed in a DBMS that supports logical data independence. Application programs that reference the external schema constructs must work as before, after the conceptual schema undergoes a logical reorganization. Changes to constraints can be applied also to the conceptual schema without affecting the external schemas or application programs.

A logical schema is a conceptual design of the database done on paper or a whiteboard, much like architectural drawings for a house. The ability to change the logical schema, without changing the external schema or user view,  is called logical data independence. For example, the addition or removal of new entities, attributes or relationships to this conceptual schema should be possible without having to change existing external schemas or rewrite existing application programs.  

In other words, changes to the logical schema (e.g., alterations to the structure of the database like adding a column or other tables) should not affect the function of the application (external views).

Examples of changes under Logical Data Independence

Due to Logical independence, any of the below change will not affect the external layer.

  1. Add/Modify/Delete a new attribute, entity or relationship is possible without a rewrite of existing application programs
  2. Merging two records into one
  3. Breaking an existing record into two or more records

2.) Physical data independence

Physical data independence is the capacity to change the internal schema without having to change the conceptual (or external) schemas. Changes to the internal schema may be needed because some physical files had to be reorganized—for example, by creating additional access structures—to improve the performance of retrieval or update. If the same data as before remains in the database, we should not have to change the conceptual schema.

Physical data independence refers to the immunity of the internal model to changes in the physical model. The logical schema stays unchanged even though changes are made to file organization or storage structures, storage devices or indexing strategy.

Physical data independence deals with hiding the details of the storage structure from user applications. The applications should not be involved with these issues, since there is no difference in the operation carried out against the data.

Examples of changes under Physical Data Independence

Due to Physical independence, any of the below change will not affect the conceptual layer.

  • Using a new storage device like Hard Drive or Magnetic Tapes
  • Modifying the file organization technique in the Database
  • Switching to different data structures.
  • Changing the access method.
  • Modifying indexes.
  • Changes to compression techniques or hashing algorithms.
  • Change of Location of Database from say C drive to D Drive

Characteristics of Data Independence

Data Independence is the property of DBMS that helps you to change the Database schema at one level of a database system without requiring to change the schema at the next higher level. Two levels of data independence are 1) Physical and 2) Logical. Physical data independence helps you to separate conceptual levels from the internal/physical levels. Logical Data Independence is the ability to change the conceptual scheme without changing. When compared to Physical Data independence, it is challenging to achieve logical data independence. 

  • Helps you to improve the quality of the data
  • Database system maintenance becomes affordable
  • Enforcement of standards and improvement in database security
  • You don't need to alter data structure in application programs
  • Permit developers to focus on the general structure of the Database rather than worrying about the internal implementation
  • It allows you to improve state which is undamaged or undivided
  • Database incongruity is vastly reduced.
  • Easily make modifications in the physical level is needed to improve the performance of the system.