- 电子商务数据库技术(第3版)
- 潘郁
- 2601字
- 2025-02-28 08:47:30
2.3.2 数据库管理系统
数据库管理系统(DBMS)是对数据库进行定义、管理、维护和检索的一个软件系统。数据库管理系统总是基于某种数据模型的,因此,可以把它看作是某种数据模型在计算机系统上的具体实现。数据库管理系统的任务之一就是在保证数据安全可靠的同时提高数据库应用的简明性和方便性。
用户使用的各种数据库命令以及应用程序的执行都要通过数据库管理系统。另外,数据库管理系统还承担着数据库的维护工作,故必须按照数据库管理员所规定的要求,保证数据库的安全性和完整性。具体来说,数据库管理系统所做的工作通常归纳为以下几个方面。
(1)数据库的定义。
数据库管理系统总是提供数据定义语言(DDL)用于描述模式、子模式和存储模式及其模式之间的映射,描述的内容包括数据的结构、数据的完整性约束条件和访问控制条件等,并负责将这些模式转换成目标形式,存在系统的数据字典中,以供以后操作或控制数据时查用。
(2)数据库的操作及查询优化。
数据库管理系统通过提供数据操作语言实现对数据库的操作,基本操作包括检索、插入、删除和修改。用户只需根据子模式给出操作要求,而其处理过程的确定和优化则由数据库管理系统完成,并且查询处理和优化机制的好坏直接反映数据库管理系统的性能。
(3)数据库的控制运行。
数据库管理系统提供并发访问控制机制和数据完整性约束机制,从而避免多个读写操作并发执行可能引起的冲突、数据失密或安全性、完整性被破坏等一系列问题。
(4)数据库的恢复和保护。
数据库管理系统一般都要保存工作日志、运行记录等若干恢复用数据,一旦出现故障,使用这些历史信息和维护信息可将数据库恢复到一致状态。此外,当数据库性能下降或系统软、硬件设备发生变化时也能重新组织或更新数据库。
(5)数据库的数据管理。
数据库中物理存在的数据包括两部分。一部分是元数据,即描述数据的数据,主要是上述的三级模式结构(即用户级、概念级和物理级数据库)描述。它们构成数据字典的主体,数据字典由数据库管理系统管理和使用。另一部分是原始数据,它们构成物理存在的数据库,数据库管理系统一般提供多种文件组织方法,供数据库设计人员使用。数据按照某种组织方法装入数据库后,对它的检索和更新都由数据库管理系统的专门程序完成。
除了上述核心功能以外,当代数据库管理系统还提供了许多基于图形用户界面(Graphical User Interface, GUI)的用户接口软件,如查询管理器、报表生成器、统计图形生成器等。这些软件的规模甚至超过了核心数据库管理系统软件,它们极大地方便了用户对数据库的操作。
当数据库建立后,即数据库的各级目标模式已建立,数据库的初始数据已装入后,用户就可以通过终端操作命令或应用程序在数据库管理系统的支持下使用数据库。那么,在执行用户的请求存取数据时,数据库管理系统是如何工作的呢?下面以用户从数据库中提取一条外部记录(用户记录)为例,看看数据库管理系统是如何工作的,以便进一步了解数据库管理系统的工作过程及其与操作系统的关系(如图2.13所示)。

图2.13 数据库存取的过程
(1)应用程序A用相应的数据操作语言命令向数据库管理系统发出请求并递交必要的参数,控制转入数据库管理系统。
(2)数据库管理系统分析应用程序A提交的命令及参数,按照应用程序A所用的外模式名,确定其对应的概念模式名,同时还可能需要进行合法性检查,若通不过,则拒绝执行该操作,并向应用程序A送回出错信息。
(3)数据库管理系统根据概念模式名,调用相应的目标模式,根据外模式/概念模式的映射确定应读取的概念记录类型和记录,再根据从概念模式到内模式的映射找到其对应的存储记录类型和存储记录。同时还要进一步检查操作的有效性,如通不过,则拒绝执行该操作,返回出错状态信息。
(4)数据库管理系统查阅存储模式,确定所要读取的存取记录所在的文件。
(5)数据库管理系统向操作系统发出读指定文件中指定记录的请求,把控制交给操作系统。
(6)操作系统接到命令后,分析命令参数确定该文件记录所在存储设备及存储区,启动I/O读出相应的物理记录,从中分解出数据库管理系统所需要的存储记录送入系统缓冲区,把控制返回给数据库管理系统。
(7)数据库管理系统根据概念模式/外模式之间的映射,将系统缓冲区内的内容映射为应用程序所需的外部记录,并控制系统缓冲区与用户工作区之间的数据传输,把所需要的外部记录送往应用程序工作区。
(8)数据库管理系统向应用程序A送回状态信息,说明此次请求的执行情况,如“执行成功”“数据找不到”等。记载系统工作日志,启动应用程序A继续执行。
(9)应用程序A查看“状态信息”,了解它的请求是否得到满足,根据状态信息决定其后续处理。
数据库设计就是在数据库管理系统之上建立数据库的过程。但通常一个计算机系统中往往不止一个数据库管理系统,因此,数据库设计的任务之一就是正确地评价数据库管理系统,以便选择一个合适的数据库管理系统,这是非常重要的工作。
选择数据库管理系统也是一项非常复杂的工作,只有明确用户的功能要求和操作要求后,选择数据库管理系统才能完成。因此,选择数据库管理系统之前,数据库设计者需要先确定数据库应用系统对数据库管理系统的要求,这些要求包括以下几个方面。
(1)数据库管理系统的类型,如是专用数据库管理系统还是通用数据库管理系统等。
(2)数据库管理系统所支持的数据库的规模以及数据量。
(3)数据库的安全性、完整性、恢复及并发控制的能力。
(4)数据独立性程度。
(5)数据库终端用户的类型、联机处理特性、数据处理特性以及对数据语言的要求。
(6)系统开发和数据库利用的难易,如提供哪些开发工具、主语言、数据操作语言的功能、终端语言等。
(7)监测数据库性能的能力。
(8)提供数据库管理系统的厂商所能提供的支持。
选择的过程是对各种候选数据库管理系统的技术特性和操作特性进行评价的过程。如果一个数据库管理系统能满足其中的主要要求,则认为这个数据库管理系统达到了技术指标,可以考虑选用。在选择数据库管理系统时必须注意以下几个因素。
(1)数据库管理系统的性能。其性能通常用每秒钟运行的事务总数来表示。用户应该自己设计测试方案及进行测试,而不是简单地依据开发商所提供的测试指标、测试数据和测试方法进行测试。
(2)开发新数据库和新应用程序的代价。
(3)是否有利于应用程序未来的发展,即系统易扩充、易转换,从而满足未来的新的应用要求。