1.3 数据库系统结构
数据库系统产品很多,虽然它们建立于不同的操作系统之上,支持不同的数据模型,采用不同的数据库语言,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构,并提供两级映像功能。
1.3.1 三级模式结构
从数据库管理系统角度来看,数据库系统内部的体系结构通常采用三级模式结构,即由外模式、模式和内模式组成。数据库系统的模式结构如图1-7所示。
图1-7 数据库系统的三级模式结构
1.模式(Schema)
模式(也称概念模式或逻辑模式)是数据库中全体数据的逻辑结构特征的描述,是所有用户的公用数据库结构。它描述了现实世界中的实体及其性质与联系,具体定义了记录型、数据项、访问控制、保密定义、完整性(正确性与可靠性)约束以及记录型之间的各种联系。
模式有如下特性。
1)一个数据库只有一个模式。
2)模式与具体应用程序无关,它只是装配数据的一个框架。
3)模式用语言描述和定义,需定义数据的逻辑结构、数据有关的安全性等。
2.外模式(External Schema)
外模式(也称子模式或用户模式)是数据库用户所见和使用的局部数据的逻辑结构和特征的描述,是用户所用的数据库结构。外模式是模式的子集,它主要描述用户视图各记录的组成、相互联系、数据项的特征等。
外模式有如下特性。
1)一个数据库可以有多个外模式;每个用户至少使用一个外模式。
2)同一个用户可使用不同的外模式,而每个外模式可为多个不同的用户所用。
3)模式是对全体用户数据及其关系的综合与抽象,外模式是根据所需对模式的抽取。
3.内模式(lnternal Schema)
内模式(也称存储模式)是数据物理结构和存储方法的描述。它是整个数据库的最底层结构的表示。内模式中定义的是存储记录的类型,存储域的表示,存储记录的物理顺序、索引和存取路径等数据的存储组织,如存储方式按哈希方法存储,索引按顺序方式组织,数据以压缩、加密方式存储等。
内模式有如下特性。
1)一个数据库只有一个内模式。内模式对用户透明。
2)一个数据库由多种文件组成,如用户数据文件、索引文件及系统文件等。
3)内模式设计直接影响数据库的性能。
关系数据库的逻辑结构就是表格框架。图1-8是关系数据库三级结构的一个实例。
图1-8 关系数据库三级结构的一个实例
物理模式的设计目标是将系统的模式(全局逻辑模式)组织成最优的物理模式,以提高数据的存取效率,改善系统的性能指标。
以物理模式为框架的数据库称为物理数据库。在数据库系统中,只有物理数据库才是真正存在的,它是存储在外存的实际数据文件;而概念数据库和用户数据库在计算机外存上是不存在的。
用户数据库、概念数据库和物理数据库三者的关系如下。
1)概念数据库是物理数据库的逻辑抽象形式。
2)物理数据库是概念数据库的具体实现。
3)用户数据库是概念数据库的子集,也是物理数据库子集的逻辑描述。
三层模式体系结构具有以下特点。
1)有了外模式后,应用程序员不必关心逻辑模式,只与外模式发生联系,按照外模式的结构存储和操纵数据。
2)逻辑模式无须涉及存储结构、访问技术等细节。一个数据库只有一个模式,定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性要求。所有数据库终端用户看到各自的数据视图,都是这个全局数据视图的一部分,模式应能支持所有数据库终端用户的数据视图。
3)内模式其实也不涉及物理设备的具体细节,它是基于文件管理模块(通常是操作系统中的文件系统)来进行存储和访问的,例如从磁盘读数据或写数据到磁盘上等。
4.数据独立性与二级映像功能
三层模式的数据结构可以不一致,例如属性类型的命名和组成可以不一样,通常通过三层模式之间的映射来说明外模式、模式和内模式之间的对应性。
数据独立性是指数据与程序间的互不依赖性,一般分为物理独立性与逻辑独立性。
物理独立性是指数据库物理结构的改变不影响逻辑结构及应用程序。即数据的存储结构的改变,如存储设备的更换、存储数据的位移、存取方式的改变等都不影响数据库的逻辑结构,从而不会引起应用程序的变化,这就是数据的物理独立性。
逻辑独立性是指数据库逻辑结构的改变不影响应用程序。即数据库总体逻辑结构的改变,如修改数据结构定义、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,这就是数据的逻辑独立性。
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式和存储方式。为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映射:外模式/模式映射和内模式/模式映射。正是这两层映射保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。
为实现数据独立性,数据库系统在三级模式之间提供了两级映像。
(1)外模式/模式映射
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映射,它定义了该外模式与模式之间的对应关系。这些映射定义通常包含在各自外模式的描述中。
当模式改变时(例如,增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映射做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
(2)内模式/模式映射
数据库中只有一个模式,也只有一个内模式,所以内模式/模式映射是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映射定义通常包含在模式描述中。当数据库的存储结构改变(例如,选用了另一种存储结构)时,由数据库管理员对内模式/模式映射做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改方面的工作。
两级映像有如下特性。
1)模式/内模式映像是唯一的。当数据库的存储结构改变时,如采用了更先进的存储结构,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而保证了数据的物理独立性。
2)子模式/模式映像不唯一。当模式改变时,如增加新的数据项、数据项改名等,由数据库管理员对各个子模式/模式的映像做相应改变,可以使子模式保持不变,从而保证了数据的逻辑独立性。
例如,在图1-8中,若模式“学生表结构”分解为“学生表1-简表”和“学生表2-档案表”两部分,此时子模式“成绩单结构”,只需由这两个新表和原来的“学生选课表结构”映射产生即可,不必修改子模式,因而也不会影响原应用程序,故在一定程度上实现了数据的逻辑独立性。
以上所述说明,正是这三级模式结构和它们之间的两层映像,保证了数据库系统的数据能够具有较高的逻辑独立性和物理独立性。有效地实现三级模式之间的转换是DBMS职能。
注:模式与数据库的概念是有区别的。模式是数据库结构的定义和描述,只是建立一个数据库的框架,它本身不涉及具体的数据;数据库是按照模式的框架装入数据而建成的,它是模式的一个“实例”。数据库中的数据是经常变化的,而模式一般是不变或很少变化的。
5.三级模式结构与两层映像的优点
数据库系统的三级模式结构与两层映像的优点如下。
1)保证数据的独立性。外模式与模式分开,通过模式间的外模式/模式映像保证了数据库数据的逻辑独立性;模式与内模式分开,通过模式间的模式/内模式映像来保证数据库数据的物理独立性。
2)方便用户使用,简化用户接口。用户无须了解数据的存储结构,只需按照外模式的规定编写应用程序或在终端输入操作命令,就可以实现用户所需的操作,方便用户使用系统,也就是说,把用户对数据库的一次访问,从用户级带到概念级,再到物理级,即把用户对数据的操作转化到物理级去执行。
3)保证数据库安全性的一个有力措施。由于用户使用的是外模式,每个用户只能看见和访问所对应的外模式的数据,数据库的其余数据与用户是隔离的,这样既有利于数据的保密性,又有利于用户通过程序只能操作其外模式范围内的数据,使程序错误传播的范围缩小,保证了其他数据的安全性。
4)有利于数据的共享性。由于同一模式可以派生出多个不同的子模式,因此减少了数据的冗余度,有利于为多种应用服务。
5)有利于从宏观上通俗地理解数据库系统的内部结构。
1.3.2 数据库系统体系结构
从最终用户角度来看,数据库系统外部的体系结构分为单用户式、主从式、客户/服务器式、分布式和并行结构等。数据库体系结构从主机/终端的集中式结构发展到了网络环境下的分布式结构、多层B/S结构、物联网以及移动环境下的动态结构,以满足不同应用的需求。下面介绍常见的数据库系统体系结构。
目前,数据库系统常见的运行与应用结构有:客户/服务器结构、浏览器/服务器结构。
1.客户/服务器结构(C/S)结构
C/S(Client/Server)结构,即客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通信开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。
2.浏览器/服务器(B/S)结构
B/S结构(Browser/Server,浏览器/服务器模式),是Web兴起后的一种网络结构模式,Web浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如火狐、Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的计算机就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端计算机上进行部分处理,从而大大地减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。