1.6.5 提供备份与恢复
DBMS必须提供有关功能以便从软件或硬件故障中恢复。DBMS的备份和恢复子系统(backup and recovery subsystem)的职责就是完成恢复。例如,如果计算机系统在处理一个复杂的更新事务过程中失败,那么恢复子系统就需要保证数据库能够恢复到开始执行这个事务之前的状态。或者,恢复子系统要确保事务能够从被中断的那一点开始重新执行,从而将其所有影响都记录在数据库中。
1.6.6 提供多种用户界面
由于使用数据库的各类用户技术知识水平不一,DBMS应当提供多种用户界面。这包括:面向偶然性用户的查询语言、面向应用程序员的程序设计语言接口、面向简单参与用户的表单和命令代码,以及面向独立用户的菜单驱动界面和自然语言接口。表单样式的界面和菜单驱动的界面通常称为图形用户界面(graphical user interface,GUI)。已经有许多用于指定GUI的专门语言和环境。现在向数据库提供Web GUI界面的功能(即让数据库提供Web支持)也已经非常普遍。
1.6.7 表示数据间的复杂关系
数据库中包括各种数据,它们彼此之间以多种方式关联。再来看图1.2所示的例子。STUDENT文件中对应Brown的记录与GRADE_REPORT文件中的4个记录关联。类似地,每个课程单元记录又与一个课程记录相关联,同时还与一些GRADE_REPORT记录关联(每个记录分别对应完成该课程单元的各个学生)。DBMS必须能够表示数据间的各种复杂关系,同时还应当能够轻松而且高效地检索和更新相关联的数据。
1.6.8 确保完整性约束
大多数数据库应用都有数据所须遵循的某种完整性约束(integrity constraint)。DBMS必须提供定义和确保这些约束的能力。最简单的一种完整性约束就是为每个数据项指定一个数据类型。例如,在图1.2中,我们可以指定各STUDENT记录中的Class数据项值必须是一个介于1~5之间的整数,Name数据项的值必须是一个少于30个字母字符的串。一种常见的、更为复杂的约束是指定一个文件中的某个记录必须与另一些文件中的记录相关联。例如,在图1.2中,我们可以指定“每个课程单元记录必须与一个课程记录相关联”。还有一种约束可以指定数据项值的惟一性,如“每个课程记录必须有一个惟一的CourseNumber值”。这些约束都由数据及其表示的微世界的含义或语义(semantics)得出。要由数据库设计人员负责在数据库设计阶段明确完整性约束。有些约束可以指定至DBMS,由其自动实施。其他约束则需由更新程序检查,或者在输入数据时检查。
有时即便数据项输入错了,仍可能满足指定的完整性约束。例如,某个学生的成绩是A,但输入到数据库中的却是C,DBMS无法自动地发现这个错误,因为C对于Grade数据类型来说是一个合法的值。这种输入错误只能人为发现(当这个学生看到成绩并提出异议时),并在以后更新数据库时加以更正。不过,如果输入的成绩值是Z,那么DBMS就会自动拒绝,因为Z对于Grade数据类型而言不是一个有效值。
1.6.9 允许使用规则进行推理和动作
有些数据库系统提供了一些功能来定义演绎规则,从而可以从已存储的数据库事实中推理出新的信息,这样的数据库系统称为演绎数据库系统(deductive database system)。例如,在微世界应用中,要确定一个学生何时见习可能存在一些复杂的规则。可以将其描述性地指定为规则(rule),这些规则得到DBMS的编译和维护后,就可以确定所有见习的学生。在一个传统DBMS中,需要编写显式的过程性程序代码来支持这样的应用。但是如果微世界规则有所变化,相对于重新编写过程性程序而言,修改所声明的演绎规则往往更为方便。主动数据库系统(active database system)还可以提供更强大的功能,即可以提供主动规则,从而当发生了某些事件或出现了某些条件时会自动地启动动作。
1.6.10 使用数据库方法的其他意义
本节将讨论通过使用数据库方法能够让大多数组织都受益的其他优点。
有潜力执行标准。数据库方法允许DBA在大型组织中的数据库用户之间定义和执行(确保)标准。这有利于组织内不同部门、项目和用户之间的沟通与合作。可以为数据元素的名和格式、显示格式、报告结构、术语等等定义标准。相对于每个用户组都控制着其自己软件和程序的环境来说,DBA在一个集中式数据库环境中可以更轻松地执行标准。
缩短应用开发时间。数据库方法的主要卖点是:只需很少的时间就可以开发一个新应用(如从数据库中检索某些数据,从而打印一份新报告)。相对于编写一个特定的文件应用而言,从头开始设计与实现一个新数据库可能花费更多的时间。但是,一旦数据库建立并投入运行,通过使用DBMS工具,通常只需用少得多的时间就可以创建新的应用。使用DBMS的开发时间大约只是传统文件系统开发时间的1/6~1/4。
灵活性。如果需求有所改变,就需要修改数据库的结构。例如,可能会出现一个新用户组,而其所需要的信息目前数据库中尚没有。为此,可能需要向数据库中增加一个新文件,或扩展一个现有文件中的数据元素。现代数据库系统允许对数据库的结构进行某种推进式修改(evolutionary change),而不会对已存储数据和现有的应用程序产生影响。
得到最新信息。DBMS使得数据库对所有用户都可用。一旦某个用户对数据库做了更新,所有其他用户都可以立即看到这个更新。对于许多事务处理应用(如预订系统或银行数据库)来说,得到最新信息是非常重要的,基于DBMS的并发控制和恢复子系统使得获得最新信息成为可能。
节省开支。DBMS方法允许数据与应用结合,这样就可以减少不同项目和部门的数据处理人员之间由于工作重叠而造成的浪费。这就允许整个组织能够将资金投入到更强大的处理器、存储设备或通信设备上,而不是由每个部门各自为政地购买其自己的设备(资金的摊薄势必造成所购设备能力的降低)。由此可以减少运作和管理的整体开支。
| 回书目 上一节 下一节 |