㈠ 数据入库流程
一、规范数据入库流程
规范化的操作流程是避免操作错误产生的有效手段。据此,对航空物探数据入库过程中的数据质量检查内容和方法进行了分析,归纳出系统检查9项和拓扑检查5项(表5-5)。考虑到在数据入库过程中,需要给数据采集人员授予数据库数据编辑和删除权限(以便编辑录入的错误数,删除导入的不正确数据),在编辑或删除数据库数据时,有可能错误地编辑或删除已归档数据,破坏归档数据的完整性和正确性等因素,提出了航空物探数据库入库数据质量检查的规范化流程(图5-2)。
表5-5 入库数据系统检查和拓扑检查
1)创建项目,在数据入库前先创建项目,按项目导入或录入数据。
2)入库前系统检查,导入或录入的入库数据必须通过系统的入库前检查(数据唯一性、数据类型、缺项检查),才能保存到采集库中。
3)数据进入采集库后,须接受入库后系统检查。若是空间数据必须接受拓扑检查,再与原数据文件进行逐字节比较检查,均通过后,进人工检查。
4)人工检查与人工复核,对项目概况数据、空间要素类数据(图形和属性)、文字数据、图件数据、可制成图件的对象类数据应进行人工检查与人工复核。检查方法是人工比对。该方法劳动强度大,检查人员要有较强的责任心才能发现其中的错误。人工检查与人工复核的工作内容相同,系统要求人工检查与人工复核必须由不同人员完成,加强数据检查力度,尽量消除人为因素造成的错误。
图5-2 规范化的数据入库流程
5)系统归档检查,对入库数据的非空字段进行的检查。系统归档检查通过后,入库数据可归档存入资料库。
经测试,严格按照该数据入库流程开展数据入库工作。航空物探资料库数据与入库前原数据文件数据的一致性可达100%。
该流程将入库数据与资料库数据分离,单独建立一个数据采集数据库(简称“采集库”),把待入库数据暂存在采集库中。入库数据在采集库中接受各项质量检查和编辑,或删除操作,直至达到数据入库质量要求,归档进入资料库(进入资料库的数据除数据库管理员外其他用户是无权对其实施编辑或删除操作的),保证资料库数据的一致性和完整性,为整体提高航空物探数据库的质量提供了保障。
二、规则化数据检查方法
50多年来航空物探取得大量的基础资料和成果资料,这些资料在地学基础研究、油气资源评价等领域发挥的重要作用日益显现。人们越来越重视利用航空物探资料来解决所遇到的地质问题等,同时人们也很想了解所用资料的来源、质量等信息(如资料的测量年代、测量方法、仪器精度、飞行高度、定位精度,数据处理方法等),来评价问题解决的可信度。这也正是本信息系统建设者想要给用户提供的。历史已既成事实,许多与资料质量有关的信息,例如在使用数字收录以前有不少项目的测量仪器精度、飞行高度、定位精度等现已处可寻。
过去的不足证明现在的进步,尊重历史尽力适应未来的技术发展,是本信息系统建设所遵循的宗旨。因此,根据资料的实际情况,提出了入库数据有效性检查的规则化方法,较好地解决了不同年代资料信息不齐全的数据入库质量检查问题。
按照通常做法,在软件代码中直接编写出每个数据库表需要做检查字段的有效性检查代码。
//通常方法的数据进行质量检查
//选择表名,分别为每个表编写检查代码
Switch(表名)
{
Case表名1:
检查数据//获取表的检查数据
Switch(表.字段名)
{
Csae表.字段1://如字段检查项包括非空检查、范围检查等
//依据不同检查规则检查数据
If(检查数据[表.字段1]!=空)…//非空检查
…//其他检查
If((检查数据[表.字段1]>值1)&&(检查数据[表.字段1]<值n))//范围检查
Break;
…//对应不同字段名
Csae表.列名n:
…//对应字段数据检查
Break;
}
Break;
…//对应不同表数据检查
Csae表名n:
…//对应表数据检查
Break;
}
本系统采用规则化方法检查入库数据。在完成数据库结构设计之后,针对每张数据库表中每个字段制定了入库数据正确性的检查规则,建立动态检查规则表,针对不同的检查规则编写检查函数,从数据库中获取被检查表数据库字段的检查规则,对入库数据进行检查的。规则化方法代码实现的示例如下:
//本系统对表数据进行质量检查
获取检查数据//检查数据包括表名、字段名、数据
获取规则数据//检查规则包括字段名、检查类型等
获取规则值数据//检查规则对应的值
//依据不同检查规则检查数据
Switch(规则数据[检查规则])
{
Case检查规则.规则1://非空检查
If(检查数据[检查字段名]!=空)……
Break;
…//其他检查规则
Csae检查规则.规则n://选择范围检查
If(规则值数据is包含检查数据[检查字段名])…
Break;
}
系统检查采用传统检查方法实现代码量约15345行(表5-6),代码开发工作量很大,且灵活性差,不利于后期代码维护和扩展,如添加表或表添加检查字段后都需要对代码进行重新修改和编译。而本系统的规则化方法代码量仅495行(表5-6),只有传统检查方法代码的3.22%,且添加表或表添加检查字段后不需要修改代码;用户在数据入库时,根据实际需要直接修改检查规则表即可。
表5-6 系统检查两种实现方式代码量对比表