Understand physical and logical data independence and their importance.
Data independence is a critical property of database systems, made possible by the three-level architecture. It is the ability to modify a schema definition at one level of the database system without affecting the schema definition at the next higher level. There are two types of data independence. The first is Physical Data Independence. This is the ability to change the internal schema without having to change the conceptual schema. For example, the DBA might decide to change the storage structure from a hash file to a B+ tree to improve performance, or move the database to a new disk drive. Such changes, which occur at the physical level, should be invisible to the conceptual level and, by extension, to the end-users and their applications. This allows administrators to optimize performance without breaking existing applications. The second, and more difficult to achieve, is Logical Data Independence. This is the ability to change the conceptual schema without having to change the external schemas or application programs. For example, we might want to add a new attribute to a table or split an existing table into two. As long as the original data is still derivable from the new structure, the external views can be redefined so that application programs remain unaffected. This allows the database structure to evolve over time to meet new requirements without requiring a complete rewrite of all applications that use it. Data independence is crucial for reducing the maintenance cost of database systems.