1.3.2 数据库系统的二级映像
由图1.8所描述的数据访问路径和图1.10所描述的数据库系统的三级模式结构可知,当通过应用系统访问数据库中的数据时,应用系统调用外模式,去查找模式中的某一数据;而模式是逻辑上的,对它的访问最终要反映到对外存上数据的操作。要能够顺利地访问数据,必须在外模式与模式之间、模式与内模式之间建立映像关系,这就是数据库系统的二级映像(Mapping):外模式/模式映像、模式/内模式映像。
(1)外模式/模式映像
对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式的对应关系。外模式/模式映像的描述通常包含在外模式中。外模式/模式映像保证了数据的逻辑独立性。当模式发生改变时(如增加新的数据类型或数据项),只要对各外模式/模式映像作相应修改,就可以使外模式保持不变,从而不必修改应用程序。
(2)模式/内模式映像
数据库系统的模式/内模式映像是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系,其描述通常包含在模式定义中。模式/内模式映像保证了数据库的物理独立性。当数据库的存储结构发生改变时,对模式/内模式映像作相应的修改,就可以使模式保持不变,从而应用程序也不必修改。
在数据库系统的三级模式和二级映像结构中,模式是数据库的核心和关键,它独立于数据库的其他层次。因此设计数据库模式是数据库设计的核心任务。内模式不需要数据库设计人员设计,它是由DBMS定义好的。对设计好的数据库模式,DBMS会自动按其定义的内模式进行存储。因此,数据库的内模式依赖于其模式,而独立于其外模式,也独立于具体的存储介质。数据库的外模式是面向具体的应用程序的,需要根据用户需求进行设计。它定义在模式之上,但独立于内模式和存储介质。当用户需求发生变化,相应外模式不能满足应用要求时,该外模式就必须作相应修改,所以设计外模式时应充分考虑到应用的扩展性。应用程序依赖于特定的外模式,不同的应用程序可以共用一个外模式。
数据库系统的三级模式与二级映像具有以下优点:
① 保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。
② 有利于数据共享,减少数据冗余。
③ 有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。
④ 简化了用户接口。用户按照外模式编写应用程序或输入命令,而无须了解数据库全局逻辑结构和内部存储结构,方便用户使用。