
1.3 数据库系统
数据库系统(DataBase System,DBS)是指基于数据库的计算机应用系统。和一般的应用系统相比,数据库系统有其自身的特点,下面介绍数据库系统的组成及特点。
1.3.1 数据库系统的组成
数据库系统是一个计算机应用系统,它是把有关计算机硬件、软件、数据和人员组合起来为用户提供信息服务的系统。因此,数据库系统是由计算机系统、数据库及其描述机构、数据库管理系统和有关人员组成的具有高度组织性的整体。
1. 计算机硬件
计算机硬件是数据库系统的物质基础,是存储数据库及运行数据库管理系统的硬件资源,主要包括计算机主机、存储设备、输入/输出设备及计算机网络环境。
2. 计算机软件
数据库系统中的软件包括操作系统、数据库管理系统及数据库应用系统等。
数据库管理系统是数据库系统的核心软件之一,它提供数据定义、数据操纵、数据库管理、数据库建立和维护及通信等功能。数据库管理系统提供对数据库中数据资源进行统一管理和控制的功能,它将用户、应用程序与数据库数据相互隔离,是数据库系统的核心。其功能的强弱是衡量数据库系统性能优劣的主要指标。数据库管理系统必须运行在相应的系统平台上,有操作系统和相关系统软件的支持。
数据库管理系统功能的强弱随系统而异,大系统功能较强、较全,小系统功能较弱、较少。目前,较流行的数据库管理系统有Access、Visual FoxPro、SQL Server、Oracle、Sybase等。
数据库应用系统是指系统开发人员利用数据库系统资源开发出来的、面向某一类实际应用的应用软件系统。主要分为以下两类。
(1)管理信息系统
管理信息系统是面向机构内部业务和管理的数据库应用系统。如人事管理系统、教学管理系统等。
(2)开放式信息服务系统
开放式信息服务系统是面向外部、提供动态信息查询功能,以满足不同信息需求的数据库应用系统。例如,大型综合科技信息系统、经济信息系统和专业的证券实时行情、商品信息系统。
无论是哪一类信息系统,从实现技术角度而言,都是以数据库技术为基础的计算机应用系统。
3. 数据库
数据库是指数据库系统中按照一定的方式组织的、存储在外部存储设备上的、能为多个用户共享的、与应用程序相互独立的相关数据集合。它不仅包括描述事物的数据本身,而且包括相关事物之间的联系。
数据库中的数据往往不是像文件系统那样只面向某一项特定应用,而是面向多种应用,可以被多个用户、多个应用程序共享。其数据结构独立于使用数据的应用程序,对于数据的增加、删除、修改和检索由数据库管理系统进行统一管理和控制,用户对数据库进行的各种操作都是由数据库管理系统实现的。
4. 数据库系统的有关人员
数据库系统的有关人员主要有3类:最终用户、数据库应用系统开发人员和数据库管理员(DataBase Administrator,DBA)。
最终用户是指通过应用系统的用户界面使用数据库的人员,他们一般对数据库知识了解不多。
数据库应用系统开发人员包括系统分析员、系统设计员和程序员。系统分析员负责应用系统的分析,他们和最终用户、数据库管理员相配合,参与系统分析;系统设计员负责应用系统的设计和数据库的设计;程序员则是根据设计要求进行编码。
数据库管理员是数据管理机构的一组人员,他们负责对整个数据库系统进行总体控制和维护,以保证数据库系统的正常运行。
综上所述,数据库中包含的数据是存储在存储介质上的数据文件的集合;每个用户均可使用其中的数据,不同用户使用的数据可以重叠,同一组数据可以为多个用户共享;数据库管理系统为用户提供对数据的存储组织、操作管理功能;用户通过数据库管理系统和应用程序实现数据库系统的操作与应用。
1.3.2 数据库的结构体系
为了有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性,人们为数据库设计了一个严谨的结构体系。数据库领域公认的标准结构是三级模式结构与二级映射,三级模式包括外模式、概念模式和内模式,二级映射则分别是概念模式/内模式的映射及外模式/概念模式的映射。这种三级模式与二级映射构成了数据库的结构体系,如图1-2所示。
1. 数据库的三级模式
美国国家标准学会(American National Standards Institute,ANSI)的数据库管理系统研究小组于1978年提出了标准化的建议,将数据库结构体系分为三级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户眼中的反映。很显然,不同层次(级别)用户所看到的数据库是不相同的。
(1)概念模式
概念模式又称逻辑模式,简称为模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。概念模式是由数据库系统提供的数据定义语言(Data Definition Language,DDL)来描述、定义的,体现并反映了数据库系统的整体观。

图1-2 数据库的三级模式与二级映射
(2)外模式
外模式又称子模式,或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从概念模式导出的一个子集,包含概念模式中允许特定用户使用的那部分数据。用户可以通过外模式定义语言(外模式DDL)来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行操作。外模式反映了数据库的用户观。
(3)内模式
内模式又称存储模式,或物理模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式定义语言(内模式DDL)来描述、定义,反映了数据库的存储观。
在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的概念模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能唯一。
2. 三级模式间的二级映射
数据库的三级模式是数据在3个级别(层次)上的抽象,使用户能够逻辑地、抽象地处理数据,而不必关心数据在计算机中的物理表示和存储方式,把数据的具体组织交给数据库管理系统去完成。为了实现这3个抽象级别的联系和转换,数据库管理系统在三级模式之间提供了二级映射,正是这二级映射保证了数据库中的数据具有较高的物理独立性和逻辑独立性。
(1)概念模式/内模式的映射
数据库中的概念模式和内模式都只有一个,所以概念模式/内模式的映射是唯一的,它确定了数据的全局逻辑结构与存储结构之间的对应关系。当存储结构变化时,概念模式/内模式的映射也应有相应的变化,使其概念模式仍保持不变,即把存储结构变化的影响限制在概念模式之下,这使数据的存储结构和存储方法独立于应用程序,通过映射功能保证数据存储结构的变化不影响数据全局逻辑结构的改变,从而不必修改应用程序,即确保了数据的物理独立性。
(2)外模式/概念模式的映射
数据库中的同一概念模式可以有多个外模式,对于每一个外模式,都存在一个外模式/概念模式的映射,用于定义该外模式和概念模式之间的对应关系。当概念模式发生改变时(如增加新的属性或改变属性的数据类型等),只要对外模式/概念模式的映射做相应的修改,外模式(数据的局部逻辑结构)保持不变。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与应用程序间的逻辑独立性。
1.3.3 数据库系统的特点
数据库系统的出现是计算机数据管理技术的重大进步,它克服了文件系统的缺陷,提供了对数据更高级、更有效的管理。
1. 数据结构化
在文件系统中,文件的记录内部是有结构的。例如,学生数据文件的每条记录是由学号、姓名、性别、出生年月、籍贯、简历等数据项组成的。但这种结构只适用于特定的应用,对其他应用并不适用。
在数据库系统中,每一个数据库都是为某一应用领域服务的。例如,学校信息管理涉及多个方面的应用,包括对学生的学籍管理、课程管理、学生成绩管理等,还包括教工的人事管理、教学管理、科研管理、住房管理和工资管理等,这些应用彼此之间都有着密切的联系。因此,在数据库系统中不仅要考虑某个应用的数据结构,还要考虑整个组织(多个应用)的数据结构。这种数据组织方式使数据结构化了,这就要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。而在文件系统中,尽管其记录内部已有了某些结构,但记录之间没有联系。数据库系统实现整体数据的结构化,这是数据库的主要特点之一,也是数据库系统与文件系统的本质区别。
2. 数据共享性高、冗余度低
数据共享是指多个用户或应用程序可以访问同一个数据库中的数据。而且数据库管理系统提供了并发和协调机制,保证在多个应用程序同时访问、存取和操作数据库中的数据时,不产生任何冲突,从而保证数据不遭到破坏。
数据冗余既浪费存储空间,又容易产生数据不一致等问题。在文件系统中,由于每个应用程序都有自己的数据文件,所以存在着大量的冗余。
数据库从全局观念来组织和存储数据,数据已经根据特定的数据模型结构化,在数据库中用户的逻辑数据文件和具体的物理数据文件不必一一对应,从而有效地节省了存储资源,减少了数据冗余,保证了数据的一致性。
3. 具有较高的数据独立性
数据独立性是指应用程序与数据库的数据结构之间相互独立。在数据库系统中,因为采用了数据库的三级模式结构,从而保证了数据库中数据的独立性。在数据存储结构改变时,不影响数据的全局逻辑结构,这样就保证了数据的物理独立性。在全局逻辑结构改变时,不影响用户的局部逻辑结构及应用程序,这样就保证了数据的逻辑独立性。
4. 具有统一的数据控制功能
在数据库系统中,数据由数据库管理系统进行统一控制和管理。数据库管理系统提供了一套有效的数据控制手段,包括数据安全性控制、数据完整性控制、数据库的并发控制和数据库的恢复等,增强了多用户环境下数据的安全性和一致性保护。