数据库系统原理:数据独立性
数据库系统的三级模式和两级映像使数据具有独立性。
数据库系统三个抽象级间通过两级映像进行相互转换,使得数据库的三级模式形成一个统一整体,从而保证了数据的独立性。
数据独立性是指应用程序与数据间相互独立,不受影响,不互相依赖。数据独立性分为逻辑独立性和物理独立性两个级别。
一、物理独立性
对内模式(存储结构)(改变数据的存储位置、存储设备、数据的组织方式)的修改尽量不影响模式,从而对于外模式和应用程序的影响更小,应用程序不必修改,保证数据与程序的物理独立性,称为数据库的物理独立性。
二、逻辑独立性
对模式的修改尽量不影响外模式,从而应用程序不必修改,保证数据与程序的逻辑独立性(如在模式级别增加新的表、新的联系、新的数据项,尽量不影响到外模式和应用程序),称为数据库的逻辑独立性。
逻辑独立性是相对的,还是有它的局限性。特殊情况下,如在一个表中删除掉一些字段,但是在应用程序中使用该字段的名字作的一些引用,这时需要修改程序。
以学生选课系统为例,三级模式、两级映像功能如何保证数据的独立性?
如果内模式发生变化,例如文件存储位置发生变化,如索引文件的联系发生变化,这些改变不影响到外部用户所看到的数据库中的数据;如果在模式层增加了一个新的关系模式,也不影响两个用户的视图,或者是在学生关系模式中增加了一些属性列,也不会影响到外部用户的视图。那么,三级模式不同的数据视图,指的是对于同一个数据库、不同的用户所看到的视图不同,通过三级模式之间的两级映射,保证了无论是内模式发生改变、还是模式发生变化,尽量得使对用户的影响最小。
内模式和模式之间存在着映射关系,如果内模式发生变化,尽量使模式不发生变化,保证数据的物理独立性;如果模式发生变化,尽量使外模式不发生变化,保证数据的逻辑独立性;从而使应用程序和数据之间不相互的依赖;数据的变化不影响到应用程序,从而减轻应用程序的负担。
三、简述“数据独立性”概念在文件系统阶段和数据库系统阶段的不同
文件系统中,数据被组织成相互独立的数据文件,程序按照文件名访问数据。“数据独立性”是一种“设备独立性”。
数据库系统中的数据独立性包括物理独立性和逻辑独立性,物理独立性是指用户的应用程序和存储在磁盘上的数据库中的数据是相互独立的;逻辑独立性指应用程序与数据库的逻辑结构相互独立。