
2.3 数据库系统的结构
2.3.1 数据库系统的组成
数据库系统是一个复杂的系统,因为数据库系统不仅是指数据库和数据库管理系统本身,而且还指计算机系统引进数据库技术后的整个系统,是数据、硬件、软件和相关人员的组合体。数据库系统由硬件资源、软件资源、数据库体系结构、数据库管理员和用户五个部分组成。
数据库系统的硬件资源包括主机、存储设备、输入输出设备以及计算机网络环境等。
(1)操作系统,如DOS系统、UNIX系统、Windows系统及Linux系统等。
(2)数据库管理系统,如FoxPro、Oracle、Ingres、Sybase等。
(3)高级语言编译系统,如Fortran、C++、VB等。
数据库系统的核心为数据库管理系统。
实际的数据库系统软件产品多种多样。它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同。但是,大多数数据库系统在总的体系结构上都具有相同的三级模式结构,即把数据库分为用户级数据库、概念级数据库和物理级数据库三级(如图2.12所示)。
(1)用户级数据库。
用户级数据库是用户看到和使用的数据库,所以也称为用户视图,又称为子模式、外模式、用户模式等。对应于外模式,用户级数据库是单个用户看到并获准使用的那部分数据的逻辑结构(称为局部逻辑结构),用户根据系统给定的子模式,用查询语言或应用程序去操作数据库中的数据。

图2.12 数据库系统的三级模式结构
(2)概念级数据库。
概念级数据库是数据库管理员看到的数据库,所以也称为DBA视图,又称为概念模式。概念级数据库是用于把用户视图有机地结合成一个逻辑整体,描述的是数据的全局逻辑结构,不涉及数据的物理存储细节和硬件环境,也与具体的应用程序及使用的高级程序语言无关。
(3)物理级数据库。
物理级数据库又称存储模式、内模式,是数据在数据库系统内部的表示,即对数据的物理结构和方式的描述。内模式是全体数据库数据的内部表示或低层描述,用来定义数据的存储方式和物理结构。从机器的角度看,它们是指令操作处理的位串、字符和字;从系统程序员的角度看,这些数据是其用一定的文件组织方法组织起来的一个个物理文件(或存储文件)。系统程序员编制专门的访问程序,实现对文件中数据的访问,所以物理级数据库也称为系统程序员视图。
数据库的三级模式结构定义了数据库的三个抽象级。这三级之间可以通过一定的对应规则进行相互转换,从而把这三级连接在一起成为一个整体,这种对应规则称为映射。用户级数据库之间的映射定义了各个外模式和概念模式之间的对应关系,使外部记录可以通过这一映射转换成相应的概念记录,反之亦然。用户级数据库和概念级数据库之间的映射隔离了概念模式的变化对外模式的影响。因为只要改变它们之间的映射就可以让外模式保持不变。类似地,概念级数据库和物理级数据库之间的映射定义了概念模式和内模式之间的对应关系,这种映射关系的存在使得当内模式的结构发生变化时,只要对概念模式/物理模式映射做相应的修改,概念模式就可以保持不变。因此,数据库的三级结构和它们之间的映射是实现数据独立性的保证。
对一个数据库系统来说,实际上存在的只是物理级数据库,它是数据访问的基础。概念级数据库只不过是物理级数据库的一种抽象(逻辑)描述,用户级数据库则是个别用户的数据视图,即与某一应用有关的数据的逻辑描述。用户根据子模式进行操作,数据库系统既通过子模式到模式的映射将操作与概念级数据库联系起来,又通过模式到存储模式的映射与物理级数据库联系起来。这样,用户可以在较高的抽象级别上处理数据,而把数据组织的物理细节留给系统。
为了保证数据库能够高效正常运行,一般大型数据库都设有专门人员来负责数据库系统的管理和维护工作。这种专门人员称为数据库管理人员。他们是一些懂得和掌握数据库全局并设计和管理数据库的骨干人员,其主要职责包括:
(1)负责数据库核心及其开发工具的安装及升级。
(2)为数据库系统分配存储空间并规划未来的存储需求。
(3)协助开发者建立基本的对象(表、视图、索引)。
(4)负责注册用户并维护系统的安全性。
(5)负责数据库系统的备份和恢复。
数据库系统的用户分为两类:一类是最终用户,这类用户无须熟悉程序语言和数据处理技术,他们通过终端的人机对话,主要对数据库进行联机查询或通过数据库应用系统提供的界面来使用数据库,这些界面包括菜单、表格、图形和报表;另一类用户是专业用户,即应用程序员,这类用户熟悉DBMS接口语言及DBMS提供的数据操作语言,他们负责设计应用系统的程序模块,对数据库进行操作。