= Data independence
<Data independence> separates the logical meaning of stored data from details that an application need not know. Physical independence permits changing indexes, page layout or access paths without changing a <database query>[query]'s meaning. Logical independence permits some changes in the <database>'s logical organization while preserving the interface exposed to existing applications, often through views.
For example, a <database query>[query] asking for an employee's department should return the same answer after the <database> replaces a table scan with a B-tree index. An application that follows stored record addresses directly would instead depend on that representation. <E. F. Codd>'s1970 <relational model> explicitly argued against dependencies on ordering, indexes and access paths.<A Relational Model of Data for Large Shared Data Banks by E. F. Codd>[abstract and §§1.1–1.3]{ref} Independence does not mean every <relational schema>[schema] change is invisible: removing a field an application needs changes its contract unless another representation supplies equivalent information.
Back to article page