数据入库质量控制的方法实现

如题所述

数据库数据质量是数据库的生命,再好的入库数据质量控制的方法,如果得不能贯彻和执行,也不能保证入库数据的正确性。所以,基于上述入库数据质量控制思想,研发了航空物探数据库数据采集软件(图5-3),强制数据入库工作按规范化的流程执行,保证数据库数据质量。

数据采集软件包括数据导入录入、数据检查、数据编辑、数据归档入库等功能,为了方便数据采集人员工作,把本系统应用软件中的数据查询统计和数据制图功能也集成到该软件中。各部分功能分述如下。

图5-3 数据库数据采集软件结构

一、创建项目树

航空物探勘查项目工作一般分为航空物探生产测量、数据处理和地质解释3个阶段,野外生产测量和数据处理完成之后分别编写航空物探生产报告和数据处理报告,通过评审后须上交测量资料和处理后的数据。此时,地质解释工作正进行。

航空物探科研项目工作一般是分课题(二级项目)、课题分子课题(三级项目)等进行的。级别低的项目总是最先完成,然后评审和上交资料;级别较高的项目较后完成,一级项目最后完成,最后上交资料。

如果把勘查项目的3个阶段当成3个课题(事实上的确如此,只是习惯上不这样叫),勘查项目和科研项目不仅在工作形式上是一致的,资料上交的次序也是相同的(图5-5)。这种按项目完成的先后次序进行项目资料归档方式,在资料人工管理人工服务时代,人们并没有觉得有什么问题。只是,资料管理方式的变革,人们对资料服务提出了更高的要求,希望资料信息化管理不要再忽视不同级别项目间的关系信息。

这种关系与计算机磁盘文件管理的目录间关系是相似的,目录等同于项目,子目录等同于子项目。目录、子目录间的关系似树形结构,称为目录树;项目、子项目间的关系也似树形结构,称之为项目树。有计算机常识的人都知道,按照一定的方式建立目录树,把文件存在相应目录下,不仅文件管理更有条理,用户查找文件的速度也成倍提高。因此,本系统采用项目树方式来管理项目资料。该管理方式符合人们的思维习惯,资料查询更方便。

图5-4 数据库数据采集软件主界面

图5-5 不同级别项目资料归档次序图

在新项目数据导入或录入数据库之前,须先创建项目树。建项目树与在磁盘上创建文件目录相似,按项目(目录)、子项目(子目录)顺序创建,不能倒行逆施。然后,按项目导入或录入数据。图5-6为创建项目树界面。用户在父项目的下拉框中选择新建项目的父项目(一级项目为null),再填写项目的档案号等信息后,按“确定”创建项目树的根项目(一级项目),或项目树的一个节点(子项目),并自动为项目分配一个项目标识号,作为识别项目和项目资料的唯一标志。

图5-6 创建项目树功能界面

二、数据录入和导入

项目数据进入数据库有数据录入和数据导入两种方式。数据录入方式是使用系统的数据录入界面将数据直接录入到数据采集库中。若用户已按入库数据接口标准要求整理好入库数据,可采用导入方式将数据导入到数据采集库中。其实,这两种方式没有本质上的差别。例如,项目概况数据、空间要素类(岩石物性、异常、解释评价)属性数据等都必须是人工录入的,区别是谁来录入?资料整理人员,还是数据采集人员?这不属本系统的研究范畴,系统支持这两种数据入库方式。

因数据库的每张表所包含的信息不同,所以每张表都应有独立的数据录入界面(录入、浏览、编辑数据)。加之用户查询界面、数据统计界面,1张数据库表需要3个用户界面。本系统共有地球物理数据库表31张,按照常规做法需要开发93个用户界面。随着航空物探技术发展,可能在数据库表中增加新的信息,或新增数据库表,都需要通过修改软件代码来满足新的需求。该方法不仅软件研发和测试工作量大,后期软件维护工作量也很大。

为此,本系统研究出根据数据库表的描述信息动态生成用户界面的方法,此方法具有很好的通用性,对数据库的所有表均适用,有效地降低了软件开发工作量,方便了后期软件维护。图5-7是使用该方法动态生成的项目概况数据录入界面,用于项目概况数据的录入和编辑。

图5-7 项目概况数据的录入定制界面

该方法是将数据库表的描述信息存储在资料库中的库表属性清单表中,在运行时系统根据数据库表名称从库表属性清单表和其相关的数据字典表中提取该表对应的字段信息,然后调用界面定制函数,根据界面类型(录入、浏览、修改、简单查询)动态生成相应的界面。

由于数据库表包含的字段数相差较大(多的近30个字段,少的不到10个字段)、同一表的字段类型不同(有字符串、数字、时间、大字段)、字段数据类型长度不一(有的字段长度为200个字符,有的只有1个字符),同时库表的相关字段在界面上相邻摆放较合适,针对这些问题在界面定制时采取以下策略:

1)对库表字段分组,并为每组取一个合适的名字。在定制界面上,同组的字段摆放在同一张卡片中,组名作为卡片名。

2)字段值来源于数据字典表的数字型字段,用组合框显示其值,组合框中内容从数据字典表提取。用文本框显示其他数字型字段、字符串型字段值。

3)根据定制界面上父控件的尺寸、字段名称、字段数据类型长度确定其对应控件的位置和大小,控件的布局遵循一行最多显示两字段的原则。

不同类型界面的定制方法大同小异,因此采用了同界面定制代码,只是在个别地方根据需要相关处理。例如,对于大字段型的字段,如果界面定制类型为“录入”,则其对应文本框后的命令按钮为打开文件。如果界面定制类型为“浏览”,则其对应文本框后的命令按钮为浏览大字段值。

三、入库前系统检查

入库数据进入采集数据前,系统对其进行唯一性检查、缺项检查和数据类型检查,即入库前系统检查。

唯一性检查:航空物探资料库是航空物探数据的最终目的地,但可能会有部分项目数据因没有通过质量检查而滞留在采集库中。在进行新的项目数据采集过程时,为了避免项目数据2次入库,在其进入采集库前需要进行唯一性检查。方法是用入库数据每条记录主键作为查询条件,查找资料库和采集库中相对应的库表是否存在有相同的记录。例如,黄海北部海域航空磁测普查(项目标识号AGS011978000251),在项目概况数据导入采集库时,根据项目概况数据库表的项目标识号(主键)在采集库和资料库的相应表中查找是否有相同的项目标识号存在:若资料库中存在,说明该项目数据已归档;若采集库中存在,该项目数据已被导入采集库中待检,不需再次导入。

缺项检查:入库数据的字段数必须等于相应数据库表的字段数,比数据库表字段数多或少都不能通过缺项检查。

数据类型检查:对入库数据所有字段数据进行类型检查。若是日期型数据,则检查数据格式(YYYY-MM-DD),YYYY、MM、DD是否为数字。若数字型数据,检查整数位和小数位的位数是否超过范围,整数位和小数位是否为数字。字符型数据,则检查字符串长度是否超限。

入库数据通过入库前系统检查后被存入采集库中,否则软件给出错误提示信息(图5-8)。采集人员根据提示信息纠正数据中存在错误,再新导入数据。

图5-8 入库前系统检查的错误提示

四、入库后系统检查

系统对进入采集库中的数据进行非空和可空检查、前后数据检查、相关数据检查、值域范围检查、选择范围检查,即入库后系统检查(图5-9)。

非空检查:入库数据指定字段的值不能为空,如所有数据库表的项目标识不能为空,项目名称、项目参加单位名称、参加人员名称都不能为空。

可空缺项检查:入库数据指定字段的值在有一定条件下可以为空,例如当勘查项目概况表记录方式字段的值为打点记录或纸卷模拟记录时,航磁数据的采样率为空。若为数字收录,航磁数据的采样率不能为空。

前后数据检查:检查入库数据指定字段与其父表中相同字段数据的一致性,如项目参加人员表中的项目标识必须与项目概况信息中的项目标识相同。

图5-9 入库后系统检查

相关数据检查:检查相关表中相关字段数据对入库数据指定字段的约束,如项目概况信息中有项目的起始日期和完成日期两个字段,那么项目人员参加项目工作的起止日期都必须在项目的起始日期和完成日期之间。

值域范围检查:入库数据指定字段的数值必须是在设定的值域范围内,如勘查项目概况中的调机小时设定在0和100 h范围,若超过此范围,调机小时数据有错误。

选择范围检查:入库数据指定字段的数值必须是一个已知数据集合的元素之一,如项目成果评价只能在优秀、良好、通过和不合格4个选项中择其一。

根据选定的库表名提取该库表各个字段的检查规则,逐条记录进行前后数据检查、相关检查、值域范围检查、选择范围检查。发现错误,把错误记录暂存在内存中,继续进行下条记录检查,至所有记录检查完。把错误写入检查日志表(若有相同检查日志记录,则先备份到检查日志备份表后再删除,以便查看数据入库不通过的历史轨迹);否则,写入一条系统检查通过的日志记录。再进行另一张表的系统检查,所有库表全部检查后,若有错误,系统给出错误提示信息。

五、拓扑检查

航空物探解释数据和评价数据为空间要素类数据,入库时要进行拓扑检查(表5-6,图5-10)。检查各要素类之间相互位置关系的正确性。

以油气远景评价数据集为例说明拓扑检查。检查规则是局部构造异常位置应位于油气远景评价区的某一分布区内,油气远景评价区之间不以有重叠。若发现错误,把检查的错误日志暂存在内存中,继续进行拓扑检查;检查完成后,把错误写入检查日志表。没有发现拓扑错误写入一条通过拓扑检查的日志记录。

表5-7 解释数据和评价数据拓扑检查规则表

图5-10 拓扑检查空间数据源列表界面

六、文件比较检查

通过入库后系统检查和拓扑检查的入库数据,系统将对其进行与原数据文件比较检查,保证数据的一致性。所有的入库数据均须与原数据文件进行比较检查。

根据项目标识号和库表名从采集库中提取相应的数据,若存在数据字典代码,则将其替换文字字符,存放在Oracle临时表中;打开本地路径下原数据文件,逐条记录对比。若有不匹配的记录,显示提示信息,并在日志库中写一条检查日志。

七、人工检查与复核

经过系统检查、空间拓扑检查,以及文件比较检查后,还必须进行人工检查和人工复核检查。人工检查是用原表格数据、空间属性数据、解释评价数据、图件、文字报告(含软件源代码)与采集库中相应的各类数据进行人工比对。若有原始纸质图件,则需从采集库中提取相应的数据使用相同软件相同绘图参数绘图,并加以比较。若人工检查发现错误,写明错误原因(图5-11),保存日志。

图5-11 填写人工检查结果界面

人工复核检查与人工检查过程完成一样,只是人员不同。

八、系统归档检查

在入库数据归档到资料库之前,系统对归档项目数据的完整性进行检查,即归档检查。系统根据归档项目的类别、工作性质、测量方法及归档阶段,定义了项目资料归档对照表,该表记录每类项目各个归档阶段的项目资料清单和资料的归档标识。在资料归档时,系统检查项目资料的归档标识。若为非空,说明该资料必须归档;若为空,说明该资料可归档,从而保证了数据库中的项目资料完整性。

如区域航空磁力勘查项目资料归档分为3个阶段(图5-12),第一阶段是生产测量资料归档,航空磁力勘查项目概况(项目概况、勘查项目概况、航磁概况)信息、测区信息生产报告必须归档。第二阶段是数据处理资料归档,航迹线数据、航磁数据、数据处理报告必须归档。第三阶段是地质解释资料归档,项目概况信息、岩石磁性数据、图件数据、文字数据、断裂构造和区域构造单元必须归档。

科研项目资料归档时,根据项目标识号及项目级次,确定该项目是否有子项目,以及子项目资料是否已全部归档。在所有子项目资料全部归档后,使用项目资料归档向导(图5-13)进行该级次的项目资料归档。如果项目属保密项目,系统同时对归档数据进行加密。数据成功归档后,系统删除采集库中已归档数据,并把各种检查日志存放到备份日志表中,以备检查。

图5-12 勘查项目资料归档示意图

图5-13 项目资料归档向导

温馨提示:答案为网友推荐,仅供参考
相似回答