该答复的重点是第二个问题,但在此过程中,将出现对第一个问题的部分答案(QA / QC程序指南)。
到目前为止,您最好的办法就是在尝试输入时检查数据质量。用户检查和报告是劳动密集型的,因此应在实际可行的情况下,保留给过程的后期使用。
这里有一些原则,准则和建议,它们是从丰富的经验中得出的(与您相比,许多数据库的设计和创建都比您的数据库大得多)。它们不是规则。您不必跟随他们就可以成功和高效;但它们都是出于极好的原因而存在的,因此您应该认真考虑如何偏离它们。
将数据输入与所有智力要求较高的活动分开。不要让数据输入操作员同时检查,计数等。将他们的工作限制在创建计算机可读的数据传真上,仅此而已。特别是,该原理意味着数据输入表单应反映您最初获取数据的格式,而不是您计划存储数据的格式。在以后将一种格式转换为另一种格式相对容易,但是在输入数据时立即尝试进行转换是一个容易出错的过程。
创建数据审核跟踪:从数据输入阶段开始,对数据进行任何处理时,都要记录下来并记录过程,以便轻松返回并检查出了什么问题(因为事情会出错)。考虑填写以下字段:时间戳,数据输入操作符的标识符,原始数据的源的标识符(例如报告及其页码)等。存储很便宜,但是查找错误的时间却很昂贵。
自动化一切。 假设必须重做任何步骤(根据墨菲定律,在最坏的时间),并做出相应的计划。现在不要尝试通过手动执行一些“简单步骤”来节省时间。
特别是,要创建对数据输入的支持:为每个表(甚至一个电子表格都可以做得很好)做一个前端,以提供一种清晰,简单,统一的方式来获取数据。同时,前端应强制执行“业务”规则:”也就是说,它应该执行尽可能多的简单有效性检查。(例如,pH必须在0到14之间;计数必须为正。)理想情况下,请使用DBMS强制进行关系完整性检查(例如,与测量相关的每种物质确实存在于数据库中)。
不断地计算事物并检查计数是否完全一致。例如,如果一项研究应该测量10个物种的属性,请确保(一旦数据输入完成)确实报告了10个物种。尽管检查计数很简单并且没有信息,但是它非常适合检测重复和省略的数据。
如果数据有价值且重要,请考虑独立地两次输入整个数据集。这意味着每个项目将由两个不同的非交互人员在不同的时间输入。这是捕获打字错误,数据丢失等的好方法。交叉检查可以完全自动化。与100%手动重复检查相比,它更快,更容易捕获错误,并且效率更高。(数据输入“人员”可以包括带有OCR的扫描仪之类的设备。)
使用DBMS来存储和管理数据。电子表格非常适合支持数据输入,但是请尽快将数据从电子表格或文本文件中取出,并进入真实数据库。这可以防止各种隐患,同时增加了对自动数据完整性检查的支持。如果有必要,请使用统计软件进行数据存储和管理,但请认真考虑使用专用的DBMS:它将做得更好。
输入所有数据并自动检查之后,绘制图片:创建排序的表格,直方图,散点图等,然后全部查看。借助任何完善的统计软件包,这些都可以轻松实现自动化。
不要要求人们执行计算机可以执行的重复性任务。在这些方面,计算机更快,更可靠。养成编写(和记录)小脚本和小程序的习惯,以执行无法立即完成的任何任务。这些将成为您的审计跟踪的一部分,并使您可以轻松地重做工作。使用适合您任务的平台。(多年来,根据可用的平台,我使用了各种各样的平台,并且都发挥了有效的作用,从C和Fortran程序到AWK和SED脚本,从Excel和Word的VBA脚本到自定义为关系数据库系统,GIS和R和Stata等统计分析平台编写的程序。)
如果遵循这些指南中的大多数指南,则将数据导入数据库的工作中大约有50%-80%是数据库设计和编写支持脚本。通过这样的项目获得90%的资源,并完成不到50%的资源,却仍能按时完成,这很平常:一旦完成所有设置并进行了测试,数据输入和检查就会非常高效。