蔡雪红 邱宁
【摘 要】数据完整性是管理信息系统有效运行的重要基础。本文设计了一种基于规则分析的通用化、自动化、定制化的数据检测系统。该系统可以简化数据检测的实现,提高检测与修改的效率,从而进一步提高数据的完整性。
【关键词】规则分析;数据完整性;数据检测;ASP.NET
0.引言
计算机和网络技术的不断发展使管理信息系统的应用日趋广泛。然而,管理信息系统的有效运行必须依赖于其所使用数据的完整性,如果数据库中存储有不正确的数据,则该数据库就丧失了数据完整性,进而影响系统正确运行。
为保证数据完整性,越来越多的管理信息系统都不得不提供有效、完善的数据完整性检测机制,从而使得数据完整性检测功能成为系统开发中一项非常重要却又十分繁琐的共性的迫切需要,也成为影响系统开发效率和用户体验的重要因素。
1.系统设计
基于越来越多的管理信息系统应用过程中数据迁移及交换对数据完整性检测的共性需求,本文设计了一种基于规则分析的通用化的数据检测系统,它借助"检测规则设置→检测规则解析→检测规则应用"的规则分析机制,为开发人员提供通用化、定制化的数据检测功能,从而提高项目开发效率。
该系统采用B/S架构,可以由用户自行设置多样化的检测规则,以实现对数据的自动化检测,从而提高数据的有效性和规范性。主要包括数据上传模块,数据规则定义模块,数据检测与修改模块,具体功能如图1所示。
(1)数据上传模块:对需要检测的数据进行上传,导入临时数据表中。
(2)规则定义模块:新建字段的规范规则,修改或删除定义过的规则信息。
(3)数据检测模块:调用已有的检测规则,对数据进行数据检测,修改错误数据并保存。
系统的操作流程如图2所示:用户登录系统后,首先上传待检测的数据文件,然后对待检测的字段设置相应的检测规则,然后进行检测。对检测有错的数据可以进行修改并保存。
2.关键技术
2.1带进度显示的文件上传
待检测的上传文件其包含的数据量可能比较大,由此会导致数据文件上传过程较长。为了避免在此期间用户以为系统假死,特选用了带进度显示的文件上传模式。经过比较,我们选择了Uplodify插件。这是一款基于jQuery的文件上传插件,其功能特色包括:带进度条显示,可现实上传进度或速度;支持单文件或多文件上传,可控制并发上传的文件数;在服务器端支持各种语言与之配合使用,诸如PHP,.NET,Java;通过参数可配置上传文件类型及大小限制;通过参数可配置是否选择文件后自动上传;易于扩展,可控制每一步骤的回调函数(onSelect,onCancel);通过接口参数和CSS控制外观等。上传效果如图3所示。
2.2解析Excel数据文件中设置的规则
除了提供独立的规则设置功能外,系统也提供从上传的Excel数据文件中提取规则,此时须在数据文件的首行分别为每个字段设置检测规则,不检测的字段则留空。为此,系统定义了如表1所示的规则解析特征表。
下面以图4所示的带规则的数据文件为例加以说明。
其中:
(1)院校代码yxdm的规则C[dmYx.Dm]含义为:该列的数据取值参照代码表dmYx中的Dm字段。
(2)同理,院校名称yxmc的规则也是参照代码表dmYx,只是此时为Mc字段。
(3)姓名xm的规则M含义为:该列的数据为必填项。
(4)学号xh的规则M|O|N7含义为:该列的数据为必填、唯一,且数据为7位数字。
(5)身份证号码sfzhm的规则M|O|L[15,18]含义为:该列的数据为必填、唯一,且长度为15位或18位。因为18位身份证号码的最后一位可能为字母X,所以该规则中不能使用N标识符。
(6)性别代码xbdm的规则W[1,2]含义为:该列的数据取值只能是1或2。
(7)成绩score的规则F1|W[0-100]含义为:该列的数据为最多带1位小数的浮点数,且取值范围为0至100。
另外,对于较复杂的规则(如电话号码或电子邮箱等),建议用正则表达式的方式加以限定。例如,电话号码的规则R((0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?,其含义为:电话号码必须由0开头的3-4位区号(可省略不填)、7-8位号码以及至少3位的分机号(也可省略)组成,且每个部分之间用"-"相连。
3.结束语
在目前日益增多的管理信息系统的开发和使用过程中,项目开发人员和用户迫切需要一个既省时又方便的数据完整性检测功能。本文采用B/S模式的体系结构,基于ASP.NET,结合ADO.NET和SQL Server2005,利用自定义规则设置与解析机制设计开发了一个通用化、自动化、定制化的数据完整性检测系统。该系统可以简化数据检测的实现,提高检测与修改的效率,从而进一步提高数据的完整性,以及管理信息系统的开发效率和使用便捷性。 [科]
【参考文献】
[1]罗振一,李陶深.一种实现BSS帐务系统数据检测的技术方案[J].广西科学院学报,2009,25(04):330-332.
[2]焦阳,王德奎,王亚芳等.智能数据检测管理系统的研制[J].河北科技大学学报,2005,26(6):153-155,172.
[3]百度文库.C#读取EXCEL文件的三种经典方法[OL].百度文库.http://wenku.baidu.com/view/334d6d1d59eef8c75fbfb335.html.
[4]一叶知秋.Uploadify使用说明[OL].博客园.http://www.cnblogs.com/msnbluesky/archive/2011/10/13/2210464.html.