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