软件设计说明书(基于元数据的虚拟数据自动生成系统)_第1页
软件设计说明书(基于元数据的虚拟数据自动生成系统)_第2页
软件设计说明书(基于元数据的虚拟数据自动生成系统)_第3页
软件设计说明书(基于元数据的虚拟数据自动生成系统)_第4页
软件设计说明书(基于元数据的虚拟数据自动生成系统)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于元数据的虚拟数据自动生成系统设计说明书1 系统简介信息系统一般都是以数据库为后台进行开发的,其功能与性能测试往往需要一定量的数据为基础。由于安全保密和时效性等原因,在信息系统的开发过程中不能直接加载真实数据进行测试。因此,需要大量虚拟数据对系统进行全面测试。虚拟数据的获取根据录入的方法的不同可以分为人工和自动生成两种方式。人工录入方式,仿真程度高,确保了虚拟数据的质量。但以每张表的记录数百万条计,工作量会非常大,且此工作没有继承性,以某个需求背景下录入的数据,当背景变化后难以重用。因此,设计一个虚拟数据生成工具,自动生成虚拟数据非常必要。本系统的设计目的就是为自动为用户提供海量虚拟数据。本

2、系统的设计采用了元数据技术,根据不同需求背景,通过元数据对数据库结构、数据特征和关系的描述,设定的模拟数据生成规则,自动生成海量的模拟数据。归纳起来,本系统具有如下特点:(1)能够适应数据需求变化随着技术的发展和运用场景的变化,信息系统对虚拟数据在结构和内容上将提出新的要求。通过传统的手工录入方式,将不得不大量修改记录甚至重新录入,实现起来时间长,工作量大。本文档所描述的虚拟数据生成系统采用了基于元数据的规则生成技术,当需求改变时,及时更新相关配置,就可以重新自动生成虚拟数据,提高生产效率。(2)能够高效灵活实现数据生成规则配置本系统对虚拟数据的生成是基于数据生成规则,而数据生成规则的制定,首

3、先从数据库结构中自动读取结构化元数据,获取数据的特征及关系,构成基本生成规则。在基本数据规则的基础上系统给出了针对不同类型数据的规范表达式,帮助用户定制符合自身需求的生成规则,实现数据生成规则配置的高效灵活。(3)具有较好的资源字典扩展性信息系统所在的业务领域是不断地发展的,因此总会产生一些对新类型数据需求,而这些需要应及时加入到信息系统中。本虚拟数据生成系统提供良好的资源字典维护功能,只需要及时更新字典中相关数据,既可实现了数据的无缝扩展。(4)能够海量生成虚拟数据本系统的设计目的既实现海量虚拟数据的生成。用户一旦根据需求,配置好数据生成规则实现资源字典的更新后,系统既可运用规则算法,自动生

4、成海量数据,经测试生成1百万条记录的数据,大约花费10分钟。2 软件设计2.1软件组成及框架“基于元数据的虚拟数据自动生成系统”的基本架构及连接关系如图1所示。系统采用三层体架构,由数据支撑层、系统支撑层、系统应用层组成。图1 系统组成及连接关系图数据支撑层为系统支撑层和系统应用层提供数据支撑,包括源数据库和虚拟数据库两部分。源数据库为包含真实数据的信息系统数据库,包含了数据库结构、字典类数据(用于抽取的固定数据,如地名字典表)等信息,是整个虚拟数据生成的模板和来源。虚拟数据库与源数据库结构相同,系统最终生成的虚拟数据存放于此。系统支撑层为系统应用层提供后台软件支撑,包括元数据管理、虚拟数据生

5、成两个子模块。元数据管理子模块用于从源数据库中读取描述数据特征的结构化元数据,如数据的长度、类型、格式等,作为生成虚拟数据的基本标准。虚拟数据生成子模块根据虚拟数据生成规则和生成需求(如生成虚拟数据数量等)生成数据,并存储到虚拟数据库中。系统应用层面向用户,包括虚拟规则设置、数据需求设置两个子模块。生成虚拟规则设置子模块将辅助用户,在元数据描述特征的基础上,设置数据生成规则。在数据需求设置子模块中,用户录入生成数据量、是否唯一等用户对数据的整体需求。2.2 实现方法虚拟数据要达到代替真实数据的目的,必须做到与真实数据不但形似而且神似,即两者虽然在内容上不尽相同,但在结构和反映事物特征上要相同。

6、本系统尝试以数据建模理论为基础,结合工程实践,通过分析数据特征,找出规律,提出虚拟数据的实现方法。描述实体的数据有以下几个主要特征:1实体属性特征,作为数据库中原子的数据值,固有的长度、类型、格式等特征;2实体关系特征,描述数据实体之间是如何相关的,根据工程实践关注以下几种:(1)关联关系,包括一对一、一对多、多对多等数据实体间的关联关系;(2)分类关系,关联关系的一种特殊关系,相关的实体被分为一组,其中所有公共属性统一在一个超类实体中。(3)自反关系,关联关系的一种特殊关系,是指一个实体所参与的关系,在这个关系中该实体即是父实体又是子实体。2.2.1实体属性特征实现实体属性特征描述时包括两个

7、方面。一是数据所在字段的类型,如字段长度、类型、格式等;二是反映真实实体的特征,例如“电话号码”字段是长度为10的字符串,它有自定义格式:“XXXXXXXXX”,前四个“X”表示区号,后五个“X”表示号码,“”为二者的分隔。真实实体用数据进行描述时,通常包含这二个特征。实体属性特征的第一个方面是数据的基本特征,通常较好处理,只需要按数据所在字段的类型、长度要求,调用随机函数生成符合该特征的虚拟数据即可。实体属性特征的第二个方面,需要在对真实实体特征仔细分析的基础上,利用不同途径实现。下面尝试四种处理方式:1随机生成法随机生成法首先按照数据的类型、长度、大小等约束条件划定数据的取值范围,然后在范

8、围区间内随机生成数据。图2随机生成法流程随机生成法是虚拟数据生成的基本方法,是其他生成法的基础。可以说其他生成法是在随机生成法基础上增加其它相关功能和方法实现的。系统默认对数据的生成采用该方法,特点是适用范围广,任何数据的虚拟都可以采用该方法实现,但遇到需要考验数据的特殊结构和数据间的逻辑关系时该方式并不适用。1替换实现法主要用于格式固定的随机数据。这类数据有固定的格式,且有部分数值为可变,例如“单位名称”字段的基本格式为“第XX单位XXX部门”。针对这类数据的特点将它分段为固定部分和动态部分,固定部分保持不变,动态部分调用随机函数实现,最后合并各段得到虚拟数据。如前例,“X”为随机部分,其他

9、为固定部分,处理时调用随机函数生成一个十位整数替换“第XX单位”中的“XX”随机部分;一个为小于1000的整数代替“第XXX部门”中的“XXX” 随机部分,然后合并固定和动态部分生成虚拟数据。图2 替换实现法生成流程替代生成法是基础方法,因为大多数数据的数值都有一定的格式规范,即使没有格式规范的数据,也可以认为该数据动态数值部分为数据本身,固定格式部分为空,如果不必考虑该数据的逻辑关系,该算法适合生成绝大多数虚拟数据。当然,由于替代生成法是采用随机方式生成数据的,因此遇到需要考验数据间的拓扑、逻辑、关联的信息时,该方式并不适用。2枚举法主要用于有限集且值域较小的数据。处理方法是,首先建立数据所

10、有可以包括的集合,同时给出集合中数据出现的概率。然后按照概率随机抽取集合中的数据作为虚拟数据。这种方法在实际运用中仿真度高,可用性较强。图3 枚举法生成流程3组合法将一个字段的值设定为几个特定值的组合。组合规则可以由多个参数组成,各组合参数可以从系统数据字典和样本数据库中取值,也可以从目标数据库中其他表中取值,还可以是固定的一个词。比如“公司名称”字段的值可以设定为“地名”+“通信责任有限公司”,其中“地名”可以从基础数据库中的地名表取值,“通信责任有限公司”为一个固定词组。图3 组合法生成流程组合法应适合虚拟有限数据集的数据,如果数据分布信息设计成熟,还能确保虚拟数据的逻辑分布信息,在实际运

11、用中仿真度高,可用性较强。 4偏移生成法偏移生成法是利用一定数量的真实数据,按照设定的偏移规则进行随机偏移,从而遮蔽数据的真实性,生成类似真实数据的虚拟数据。虚拟数据生成法实际上就是以真实数据作为基础数据,并根据字符、数字或日期等类型的字段整体进行偏移规则设置,也可以对以上字段类型的字段单独进行偏移规则设置。图4 偏移生成流程偏移生成法主要工作是对偏移规则的设计,配置简单;生成时偏移即可生成,数据速度较快,且生成的虚拟数据与真实数据具有很高的相似度,物理意义明确、逻辑关系清晰,可理解性更强。偏移生成法的局限性在于该方法的基础是真实数据,因此必须有真实数据才可进行。另外,在偏移规则的设定上要着重

12、斟酌,因为偏移量过大,将造成数据失真,过小又不足以遮蔽数据的真实性。5混淆生成法混淆生成法是对真实数据的属性进行随机交换,从而实现真实数据的遮蔽。真实数据中常有这样的属性,将其单个取出,难以表达明确的含义,而需要多个组合,才能包含足够的信息量。混淆生成法是将数据中这类组合属性打散进行重新随机组合,获取虚拟数据的方法。比如,对于“人员信息表”,单独获取“姓名”并没有多大的意义,但当“姓名”和“职位”组合就成为描述个人情况的关键信息。利用混淆生成法将“姓名”与“职位”在表中进行重新随机组合,既可生成虚拟数据。与替换生成法相比,不但确保了“姓名”的质量(不会出现随机而生成的奇怪人名),“职位”的布局

13、结构也与真实的拓扑情况基本相同,从而在保障数据质量的同时,遮蔽了数据的真实性。图5混淆生成法生成流程混淆生成法生成的虚拟数据与真实数据具有很高的相似度,能很好的保存真实数据的拓扑结构和逻辑关系,数据质量高。混淆生成法要考虑哪些属性的组织包含关键信息,而不需要过多考虑数据的逻辑关系和拓扑结构等,因此设置规则更加简便。由于该方法的基础是真实数据,必须有真实数据才可进行,并且如果数据的逻辑关系和拓扑结构也是需要遮蔽的信息,就要酌情使用该方法。2.2.2 实体关系特征实现依据实体属性特征生成的数据,能够保证虚拟数据合格,但在反应数据间关联关系的合理性方面是不足的。针对不同关联关系,提出相应的处理方法。

14、需要注意的是,系统主要解决工程中实际问题,因此并非严格遵循数据建模相关概念。1外键关联关系生成法实体间的关联关系落到物理模型层次,表现为表与表间的外键关系,在该关系中作为主键存在,提供数据的表将之称为字典表,在处理时随机抽取字典表中的数据直接放入到虚拟表中对应字段即可。但在实际工程中,存在大量和外键关系类似,但并非严格符合数据建模的关系,例如虚拟表A中有“通信地址”字段,那么它与地名字典表存在类似外键关联的关系。对该数据的处理,不是简单的直接抽取,而是对抽取的数据经过一定的规则转换后,生成虚拟数据,本文称这种转换后引用的关系为“函数引用”。如上例 “通信地址”中的数据“XX市XX区XX街道XX

15、X号”,“XX市XX区XX街道”部分从地名字典表获得,而“XXX号”可以随机生成,然后将两者结合,就生成了虚拟的“通信地址”数据。图6 外键关联关系生成法流程外键关联关系生成法适合于有主外键关系,或者隐含主外键关系的虚拟数据生成。配置完整字典表,设计符合实际情况的规则是确保是本方法成功的两大关键,因此一旦做好这两个主要工作,系统就可以很方便的生成高质量的虚拟数据。2分类关系生成法分类关系是关联关系中特殊的一类,考虑到独立实体上有被称为超类实体的一个高层实体,因此在生成独立实体的特有数据时,要首先生成超类实体的共同属性数据。其他处理方式与一般关联关系基本相同。图7 分类关系生成法流程分类关系生成

16、法本身不是生成虚拟数据的方法,而应当认为是针对包含超类实体关系的虚拟数据的一种处理流程。实际数据的处理时,遵循本方法的流程进程,对具体的数据虚拟可以使用前面提供的生成法进行处理,从而确保虚拟数据的逻辑结构完整。3自反关系生成法自反关系是关联关系中特殊的一类,由于关系中该表字段的数据被本表其他字段引用,因此在实体属性间存在依赖关系,即表自身是自己的字典表。在实际工程中,将该关系进行了扩展,字段间不仅仅是引用,还包括相互间的逻辑关系,如“入伍时间”字段中的数据早于“现岗时间”字段的数据。图8 自反关系生成法流程自反关系生成法适用于在同一张表中不同记录间存在引用或者逻辑关联关系的虚拟数据生成。该方法

17、与关联关系生成法近似,但因为在数据的生成的过程中存在自依赖关系,因此在某个数据生成要对依赖的记录是否存在进行判断,判断存在才能生成。4外键组关系生成法外键组关系是指虚拟表中一组字段来自于字典表中对应的一组字段的数据。这个概念与前面描述的外键关系相似,只是对应的字段从一对一变为多对多了。下面给出一个实例来说明外键组关系的含义,并给出处理方式:假设某“台站”表中有“台站名称”字段格式为“XXX短波站”(“XXX”为地名),“台站经度”字段格式为“XXXXXXXXX”(小数点后取6位的浮点数),“台站纬度”字段格式同经度字段。三个字段的虚拟数据可以通过读取“地址字典表”中地名、经度、纬度三个字段的数

18、据获取。但如果这三个字段分别随机获取,会出现地名与经纬度不一致的情况,如台站名称为“北京短波站”的经纬度可能偏移到广州一带,这种虚拟数据合格但不合理,不可用。因此要将地址字典表中的三个字段的数据看成一组,从一条记录中读取,处理流程如图5:图9 外键组关系生成法流程外键组关系生成法适合于有主外键关系,或者隐含主外键关系的一组虚拟数据生成。外键组关系生成法是外键关联关系生成法的加强,在使用该方法之前要依据元数据的描述信息对需要成组生成的数据进行提取并规范,一旦设计完成后,具体实现与外键关系生成法近似。3 使用说明3.1 使用环境本系统是采用Delhpi7.0开发的,支持的数据库是Oracle8i,

19、可在windows XP、window2007等操作系统中运行。3.2 使用流程本系统可用生成仿真数据。主要工作包括:选择虚拟表、数据需求设置、配置虚拟数据规则、虚拟数据生成。具体组织流程如图10所示。图10 使用流程3.2.1选择混淆表用户选择需要生成虚拟数据的表后,系统调用元数据管理功能分析该表的结构信息,获取该表的元数据信息。系统根据获取的元数据,初步生成虚拟数据生成规则,为用户进一步配置提供基础。初步生成虚拟数据生成规则如下:(1)默认根据字段的类型、长度等生成随机数据生成规则。(1)判断字段是否主外键关系,如果有,自动生成外键关系生成规则。(2)根据字段类型和长度,自动生成该类型随机

20、数的生成规则。(3)判断字段是否为唯一键,自动生成唯一键生成规则,防止违反数据约束条件。(4)判断表中主键或唯一键是否包含多个字段,如果包含将这些字段分为一组生成约束条件。3.2.2数据需求设置用户在数据需求设置界面填写对虚拟数据的需求。主要设置如下:(1)虚拟数据的数据量,在“虚拟数据量”文本框中填写大于0的整数,确定生成虚拟数据的数据量。(2)选择同步虚拟从表。虚拟数据表的同时是否同步虚拟从表数据,如果虚拟从表数据,选择从表,并进行该表的虚拟规则配置(配置方式与虚拟数据表基本相同)。(3)选择常用字典表。选择参与虚拟数据生成的基本字典表,如地名、人名等表,为替换法、枚举法、组合法等方法提供

21、基础。3.2.3配置虚拟数据规则用户在系统自动生成的数据规则上进行修改,生成符合用户需求的虚拟数据生成规则:1精简数据取值范围系统按照元数据自动生成的数据取值范围,该范围通常过大,并不能完全满足用户需求。用户可以在系统设定取值范围内,进一步对取值范围进行精简,但获取的新范围不超过原有范围,以免违法数据的约束条件。如果数据的取值方法固定,如人名、地名等,可将基本字典表作为取值范围进行设置。2设置数据格式用户对有某些数据有固定的格式要求,如电话号码、邮政编码等。设置数据格式,使数据的生成按照该格式进行。3组合数据组某些字段之间有相应的关联关系,如工作时间和在岗时间,前一个一定早于后一个,对这些有关

22、联关系的字段,可将其视为一组,进行同步处理。4连接关联关系字段包含的外键、自相关、分类等关联关系,系统通过元数据信息,通常可以自动生成,如果用户认为这类关联关系不能满足需求,可增加这些关联关系,但不允许删除默认生成关联关系,防止破坏数据的约束性。3.2.4虚拟数据生成系统根据配置好的虚拟数据生成规则,调用不同生成法产生虚拟数据。生成流程如下:(1)遍历虚拟数据表中全部字段,对每个字段依据规则采用不同方式生成满足用户需求的数据量。(2)首先确定字段是否是从属与某个外键组,如果是,将从属该外键组的其他字段也提取出来,调用外键组关系生成法生成这几个字段的虚拟数据。生成虚拟数据的字段不再参与遍历。(3

23、)确定字段是否有外键、分类、自反关联关系规则,如果有根据规则描述信息,分别调用外键关联关系生成法、分类关联关系生成法或自反关联关系生成法等方法生成达到用户需求量的虚拟数据。生成虚拟数据的字段不再参与遍历。(4)如果字段不涉及实体关系特征的实现,查看描述字段生成规则,确定其实体属性特征实现方法。分别调用替换生成法、组合生成法、偏移生成法、混淆生成法等方法生成达到用户需求量的虚拟数据。生成虚拟数据的字段不再参与遍历。3.3 操作使用3.3.1选择虚拟数据表系统启动后,在列表中显示当前可以访问的表。用户选择要虚拟数据的表对象(下文称该表为虚拟表)。系统自动执行以下两步操作:(1)读取该对象的元数据信息,为下一步虚拟规则设置提供准备。(2)根据元数据信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论