1.3 数据独立性
数据独立性是指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物理表示方式和访问技术。数据独立性包含两个方面:物理独立性和逻辑独立性。物理独立性是指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,比如增加一些列、删除无用列等,也不影响应用程序的特性。要理解数据独立性的含义,最好先搞清什么是非数据独立性。在数据库技术出现之前,也就是在使用文件管理数据的时候,实现的应用程序常常是数据依赖的,也就是说数据的物理表示方式和有关的存取技术都要在应用程序中考虑,而且,有关物理表示的知识和访问技术直接体现在应用程序的代码中。例如,如果数据文件使用了索引,那么应用程序必须知道有索引存在,也要知道记录的顺序是索引的,这样应用程序的内部结构就是基于这些知识而设计的。一旦数据的物理表示方式改变了,就会对应用程序产生很大的影响。例如,如果改变了数据的排序方式,则应用程序不得不进行相应的修改。而且在这种情况下,应用程序修改的部分恰恰是与数据管理密切联系的部分,而与应用程序最初要解决的问题毫不相干。
在数据库管理方式中,可以尽量避免应用程序对数据的依赖,这有如下两种情况。
1)不同的用户关心的数据并不完全相同,即使对同样的数据不同用户的需求也不尽相同。比如前述的学生基本信息数据,包括学号、姓名、性别、出生日期、联系电话、所在系、专业、班号,分配宿舍的部门可能只需要学号、姓名、班号、性别,教务部门可能只需要学号、姓名、所在系、专业和班号。好的实现方法应根据全体用户对数据的需求存储一套完整的数据,而且只编写一个针对全体用户的公共数据的应用程序,但能够按每个用户的具体要求只展示其需要的数据,当公共数据发生变化时(比如增加新信息),可以不修改应用程序,每个不需要这些变化数据的用户也不需要知道有这些变化。这种独立性(逻辑独立性)在文件管理方式下是很难实现的。
2)随着科学技术的进步以及应用业务的变化,有时必须要改变数据的物理表示方式和访问技术以适应技术发展及需求变化,比如改变数据的存储位置或存储方式(就像一个单位可以搬到新的地址,或者是调整单位各科室的布局)以提高数据的访问效率。在理想情况下,这些变化不应该影响应用程序(物理独立性)。这在文件管理方式下也是很难实现的。
因此,数据独立性的提出是一种客观应用的要求。数据库技术的出现正好克服了应用程序对数据的物理表示和访问技术的依赖。