1.2.2 二级映像
概念模式是逻辑模式,而内模式是物理模式;概念模式是全局数据,而外模式是局部数据。如何由概念模式得到用户需要的外模式?如何把数据存储到物理内存中?这些转换在农贸市场中是由人来完成的,第一个转换需要消费者亲自到农贸市场去挑选、购买货品,或者以外卖的形式由外卖员代为完成。第二个转换是由商户进货、上货来实现的。数据库系统则是通过数据库管理系统提供的二级映像来实现的。
数据库管理系统的二级映像是指概念模式/外模式映像和概念模式/内模式映像,如图1-8所示。虽然不同的数据库管理系统提供的语言和操作方法不同,但基本原理是一样的。
1. 概念模式/外模式映像
概念模式/外模式映像定义了概念模式与外模式之间的对应关系,作用是基于概念模式得到外模式。由于一个概念模式与多个外模式对应,所以每个外模式都需要一个概念模式/外模式映像。
图1-8 数据库的二级映像
概念模式作为数据的全局逻辑,具有一定的稳定性,但是并非一成不变。例如,随着季节的变化,农贸市场货品的种类或者价格会进行调整。又如,之前的设计缺陷使概念模式需要增加新的属性、修改属性的类型、增加约束条件等。有了概念模式/外模式映像,概念模式改变时可以使外模式保持不变,进而使应用程序不必修改,实现了数据的逻辑独立性,这对于程序员来说是个福音。所谓数据的逻辑独立性,是指应用程序和数据的逻辑结构是相互独立的,当数据的逻辑结构发生改变时,不需要改变应用程序。
2. 概念模式/内模式映像
假设农贸市场重装后开业了,新市场更加干净、明亮,但是货品布局调整很大,你花了比往常更多的时间才买齐需要的货品。数据库系统中是否也存在这类问题呢?幸运的是数据库管理系统提供的概念模式/内模式映像定义了数据库概念模式与内模式之间的对应关系。由于一个数据库系统只有一个概念模式,也只有一个内模式,因此,概念模式/内模式映像是唯一的。
当内模式改变时,如存储设备或存储方式发生改变时,只要对概念模式/内模式映像做相应的改变,自动调整概念模式与内模式之间的对应关系,保证概念模式和外模式不变,就能实现数据的物理独立性。所谓数据的物理独立性,是指应用程序和数据的物理结构是相互独立的,当数据的物理结构发生改变时,数据的逻辑结构和应用程序不受影响。
为了方便读者理解三级模式和二级映像的抽象概念,此处以农贸市场为例辅助讲解。但是要注意的是,数据在数据库中是长期保存的,不会因为用户的访问而影响其他有权限用户的再次访问,这和农贸市场中的货品卖一件少一件是不同的。读者可以举一反三,以此加深对数据库系统结构的理解。