3.6 数据库的实施和维护
对数据库的物理结构设计进行初步评价以后,就可以进行数据库的实施了。数据库实施阶段的工作是:设计人员用DBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理结构设计结果严格描述出来,使数据模型成为DBMS可以接受的源代码;再经过调试产生目标模式,完成建立定义数据库结构的工作;最后要组织数据入库,并运行应用程序进行调试。
3.6.1 数据入库和数据转换
组织数据入库是数据库实施阶段最主要的工作。由于数据库数据量一般都很大,而且数据来源于部门中的各个不同的单位,分散在各种数据文件、原始凭证或单据中,有大量的纸质文件需要处理,数据的组织方式、结构和格式都与新设计的数据库系统有相当的差距。组织数据录入时需要将各类源数据从各个局部应用中抽取出来,并输入到计算机后再进行分类转换,综合成符合新设计的数据库结构的形式,最后输入数据库。因此,数据转换和组织数据入库工作是一件耗费大量人力、物力的工作。
目前的DBMS产品没有提供通用的适合所有数据库系统的数据转换工具,其主要原因在于应用环境千差万别,源数据也各不相同,因而不存在通用的转换规则。人工的方法转换效率低、质量差,特别是在数据量大时,其问题表现得尤其突出。但现有的DBMS一般都提供针对流行的、常用的DBMS之间数据转换的工具,若原有系统是数据库系统,就可以利用新系统的数据转换工具,先将原系统中的表转换成新系统中相同结构的临时表,再将这些表中的数据分类、转换,综合成符合新系统的数据模式,插入相应的表中。
为提高数据输入工作的效率和质量,必要时要针对具体的应用环境设计一个数据录入子系统,由计算机完成数据入库的任务。数据录入时,为了防止不正确的数据输入到数据库内,应当采用多种方法多次地对数据检验。由于要入库的数据格式或结构与系统的要求不完全一样,有的差别可能还比较大,所以向计算机内输入数据时会发生错误,数据转换过程中也有可能出错。数据输入子系统要充分重视这部分工作。
设计数据输入子系统时还要注意原有系统的特点,充分考虑老用户的习惯,这样可以提高输入的质量。如果原有系统是人工数据处理系统,新系统的数据结构就很可能与原系统有很大差别,在设计数据输入子系统时,应尽量让输入格式与原系统结构相近,这样不仅可以使得手工文件处理比较方便,更重要的是可以大大减少用户出错的可能性,保证数据输入的质量。
3.6.2 数据库试运行
在部分数据输入到数据库后,就可以开始对数据库系统进行联合调试的工作了,从而进入到数据库的试运行阶段。
1.数据库试运行阶段的主要工作
(1)测试应用程序功能
实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求。如果应用程序的功能不能满足设计要求,则需要对应用程序部分进行修改、调整,直到达到设计要求为止。
(2)测试系统性能指标
实际测试系统的性能指标,分析其是否符合设计目标。由于对数据库进行物理设计时考虑的性能指标只是近似的估计,和实际系统运行总有一定的差距,因此必须在试运行阶段实际测量和评价系统性能指标。
值得注意的是,有些参数的最佳值往往是经过运行调试后找到的。如果测试的结果与设计目标不符,则要返回物理设计阶段,重新调整物理结构,修改系统参数,某些情况下甚至要返回逻辑设计阶段,修改逻辑结构。
2.数据库试运行阶段注意的问题
(1)数据库的试运行操作应分步进行
上面已经讲到组织数据入库是十分费时、费力的事,如果试运行后还需要修改数据库的设计,这样就会导致重新组织数据入库,因此应分期、分批地组织数据入库,先输入小批量数据做调试用,试运行基本合格后,再大批量输入数据,逐步增加数据量,逐步完成运行评价。
(2)数据库的实施和调试不可能一次完成
在数据库试运行阶段,由于系统还不稳定,硬件、软件故障随时都可能发生。同时,由于系统的操作人员对新系统还不熟悉,误操作也不可避免。因此,在数据库试运行时,应首先调试运行DBMS的恢复功能,做好数据库的转储和恢复工作,一旦故障发生,能使数据库尽快恢复,尽量减少对数据库的破坏。
3.6.3 数据库的运行和维护
数据库试运行合格后,即可投入正式运行,这标志着数据库开发工作基本完成。但是由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。
在数据库运行阶段,对数据库经常性的维护工作主要是由数据库管理员完成的。数据库的维护工作包括以下4项。
1.数据库的转储和恢复
数据库的转储和恢复是系统正式运行后最重要的维护工作之一。数据库管理员要针对不同的应用要求制订不同的转储计划,以保证一旦发生故障尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。
2.数据库的安全性、完整性控制
在数据库运行过程中,由于应用环境的变化,对安全性的要求也会发生变化。例如,有的数据原来是机密的,现在变成可以公开查询的了,而新加入的数据又可能是机密的了。系统中用户的密级也会变化。这些都需要数据库管理员根据实际情况修改原有的安全性控制。同样,数据库的完整性约束条件也会变化,也需要数据库管理员不断修正,以满足用户要求。
3.数据库性能的监督、分析和改造
在数据库运行过程中,监督系统运行、对监测数据进行分析并找出改进系统性能的方法是数据库管理员的又一重要任务。目前有些DBMS产品提供了监测系统性能的参数工具,数据库管理员可以利用这些工具方便地得到系统运行过程中一系列性能参数的值。数据库管理员应仔细分析这些数据,判断当前系统运行状况是否是最佳,应当做哪些改进,例如,调整系统物理参数,对数据库进行重组织或重构造等。
4.数据库的重组织与重构造
数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库的性能下降。这时,数据库管理员就要对数据库进行重组织或部分重组织(只对频繁增加、删除数据的表进行重组织)。DBMS一般都提供数据重组织用的实用程序。在重组织的过程中,按原设计要求重新安排存储位置、回收垃圾和减少指针链等,以提高系统性能。
数据库的重组织并不修改原设计的逻辑和物理结构,而数据库的重构造则不同,它要部分修改数据库的模式和内模式。由于数据库应用环境发生变化,例如,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间的联系发生了变化等,使原有的数据库设计不能满足新的需求,需要调整数据库的模式和内模式;或者在表中增加或删除某些数据项、改变数据项的类型、增加或删除某个表、改变数据库的容量、增加或删除某些索引等。当然数据库的重构也是有限的,只能做部分修改。如果应用变化太多、太大,重构也无济于事,说明此数据库应用系统的生命周期已经结束,应该设计新的数据库应用系统了。