数据库系统的三级模式结构
模式
是数据库中全体数据的逻辑结构和特征的描述,它只涉及型的描述,而不涉及具体的值。模式的一个具体值称为模式的一个实例。同一个模式可以有很多实例。模式相对稳定不变,而实例则由于数据库中数据的不断更新变化而相对变动。模式反应的是数据的结构及其关系,而实例反映的是数据库某一时刻的状态。
数据库系统内部的体系结构从逻辑上分为
内模式、模式和外模式
三级模式结构和二级映像功能。
(1)
模式
。模式也称逻辑模式(Logical Schema)或概念模式(Conceptual Schema),是数据库全体数据的逻辑结构和特征的描述。模式处于三级结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。一个数据库只有一个模式,因为它是整个数据库数据在逻辑上的视图,即是数据库的整体逻辑。
(2)
外模式
。外模式(External Schema)又称为子模式(Subschema)或用户模式(User Schema),外模式是三级结构的最外层,是数据库用户能看到并允许使用的那部分局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也是数据库用户的数据视图,即用户视图。可见,外模式一般是模式的子集,一个数据库可以有多个外模式。由于不同用户的需求可能不同,因此,不同用户对应的外模式的描述也可能不同。另外,同一外模式也可以为某一用户的多个应用系统所使用。因此,各个用户可根据系统所给的外模式,用查询语言或应用程序去操作数据库中所需要的那部分数据,这样每个用户只能看到和访问所对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。所以,外模式是保证数据库安全性的有力措施。
(3)
内模式
。内模式(Internal Schema)又称储存模式(Storage Schema)或物理模式(Physical Schema),是三级模式中的最内层,也是最靠近物理存储的一层,即与实际存储数据方式有关的一层。它是对数据库存储结构的描述,是数据在数据库内部的表示方式。例如,记录以什么存储方式存储(顺序存储、B+树存储)、索引按照什么方式组织、数据是否压缩、是否加密等。一个数据库只有一个内模式。
事实上,DBMS的中心工作之一就是完成三级数据库模式之间的转换,把用户对数据库的操作转化到物理级上去操作。
数据库系统的二级映像与数据独立性
数据库系统的三级模式是数据的三个抽象级别,它使用户能逻辑地处理数据,而不必关心数据在计算机内部的存储方式,把数据的具体组织交给DBMS管理。为了能够在内部实现这三个抽象层次的联系与转换,DBMS在三级模式之间提供了二级映像功能。正是这两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性与物理独立性。
(1)
外模式/模式映像
。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。数据库中的同一模式可以有任意多个外模式,对于每个外模式,都存在一个外模式/模式映像,它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。例如,在原有的记录型之间增加新的联系,或在某些记录型中增加新的数据项时,由数据库管理员对各个外模式/模式映像作相应改变,这一映像功能保证了数据的局部逻辑结构不变(即外模式保持不变)。由于应用程序是根据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与程序间的逻辑独立性。
(2)
模式/内模式映像
。数据库中的模式和内模式只有一个,所以模式/内模式映像是唯一的。它确定了数据的全局逻辑结构与储存逻辑结构之间的对应关系。存储结构变化时,如果采用了更先进的存储结构,由数据库管理员对模式/内模式映像作相应的变化,使其模式仍保持不变,即把存储结构变化的影响限制在模式之下,这使数据的存储结构和存储方法较高地独立于应用程序,通过映像功能保证数据存储结构的变化不影响数据的全局逻辑结构的改变,从而不必修改应用程序,即保证了数据的物理独立性。
数据库系统的三级模式与二级映像的优点
(1)
保证数据独立性
。将模式和内模式分开,保证了数据的物理独立性;将外模式和模式分开,保证了数据的逻辑独立性。
(2)
简化了用户接口
。按照外模式编写应用程序或输入命令,而不需要了解数据库内部的存储结构,方便用户使用系统。
(3)
有利于数据共享
。在不同的外模式下可以有多个用户共享系统中数据,减少了数据冗余。
(4)
有利于数据的安全保密
。在外模式下根据需要进行操作,只能对限定的数据操作,保证了其他数据的安全。
参考资料:[1]陈志泊,王春玲,许福,范春梅.数据库原理及应用教程(第3版)[M].北京:人民邮电出版社,2014:10-12.