软件设计说明书(基于元数据的虚拟数据自动生成系统).doc

上传人:龙*** 文档编号:1095059 上传时间:2018-12-05 格式:DOC 页数:13 大小:746KB
下载 相关 举报
软件设计说明书(基于元数据的虚拟数据自动生成系统).doc_第1页
第1页 / 共13页
软件设计说明书(基于元数据的虚拟数据自动生成系统).doc_第2页
第2页 / 共13页
软件设计说明书(基于元数据的虚拟数据自动生成系统).doc_第3页
第3页 / 共13页
软件设计说明书(基于元数据的虚拟数据自动生成系统).doc_第4页
第4页 / 共13页
软件设计说明书(基于元数据的虚拟数据自动生成系统).doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

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

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

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

4、成海量数据,经测试生成 1 百万条记录的数据,大约花费 10 分钟。2 软件设计2.1 软件组成及框架“基于元数据的虚拟数据自动生成系统”的基本架构及连接关系如图 1 所示。系统采用三层体架构,由数据支撑层、系统支撑层、系统应用层组成。设置规则虚拟规则设置样本数据库元数据管理虚拟数据产品库虚拟数据生成读取元数据属性特征规则设置获取基本规则关系特征规则设置生成规则生成虚拟数据字典类数据N 元关系自反关联系统应用层系统支撑层数据支撑层. . .数据需求设置生成需求图 1 系统组成及连接关系图数据支撑层为系统支撑层和系统应用层提供数据支撑,包括源数据库和虚拟数据库两部分。源数据库为包含真实数据的信息

5、系统数据库,包含了数据库结构、字典类数据(用于抽取的固定数据,如地名字典表)等信息,是整个虚拟数据生成的模板和来源。虚拟数据库与源数据库结构相同,系统最终生成的虚拟数据存放于此。系统支撑层为系统应用层提供后台软件支撑,包括元数据管理、虚拟数据生成两个子模块。元数据管理子模块用于从源数据库中读取描述数据特征的结构化元数据,如数据的长度、类型、格式等,作为生成虚拟数据的基本标准。虚拟数据生成子模块根据虚拟数据生成规则和生成需求(如生成虚拟数据数量等)生成数据,并存储到虚拟数据库中。系统应用层面向用户,包括虚拟规则设置、数据需求设置两个子模块。生成虚拟规则设置子模块将辅助用户,在元数据描述特征的基础

6、上,设置数据生成规则。在数据需求设置子模块中,用户录入生成数据量、是否唯一等用户对数据的整体需求。2.2 实现方法虚拟数据要达到代替真实数据的目的,必须做到与真实数据不但形似而且神似,即两者虽然在内容上不尽相同,但在结构和反映事物特征上要相同。本系统尝试以数据建模理论为基础,结合工程实践,通过分析数据特征,找出规律,提出虚拟数据的实现方法。描述实体的数据有以下几个主要特征:1实体属性特征,作为数据库中原子的数据值,固有的长度、类型、格式等特征;2实体关系特征,描述数据实体之间是如何相关的,根据工程实践关注以下几种:(1)关联关系,包括一对一、一对多、多对多等数据实体间的关联关系;(2)分类关系

7、,关联关系的一种特殊关系,相关的实体被分为一组,其中所有公共属性统一在一个超类实体中。(3)自反关系,关联关系的一种特殊关系,是指一个实体所参与的关系,在这个关系中该实体即是父实体又是子实体。2.2.1 实体属性特征实现实体属性特征描述时包括两个方面。一是数据所在字段的类型,如字段长度、类型、格式等;二是反映真实实体的特征,例如“电话号码”字段是长度为 10 的字符串,它有自定义格式:“XXXXXXXXX” ,前四个“X”表示区号,后五个“X”表示号码, “”为二者的分隔。真实实体用数据进行描述时,通常包含这二个特征。实体属性特征的第一个方面是数据的基本特征,通常较好处理,只需要按数据所在字段

8、的类型、长度要求,调用随机函数生成符合该特征的虚拟数据即可。实体属性特征的第二个方面,需要在对真实实体特征仔细分析的基础上,利用不同途径实现。下面尝试四种处理方式:1随机生成法随机生成法首先按照数据的类型、长度、大小等约束条件划定数据的取值范围,然后在范围区间内随机生成数据。开始结束读取组合规则确定数据类型确定字符长度确定数据范围确定时间范围范围内随机生成字符串范围内随机生成数值范围内随机生成时间图 2 随机生成法流程随机生成法是虚拟数据生成的基本方法,是其他生成法的基础。可以说其他生成法是在随机生成法基础上增加其它相关功能和方法实现的。系统默认对数据的生成采用该方法,特点是适用范围广,任何数

9、据的虚拟都可以采用该方法实现,但遇到需要考验数据的特殊结构和数据间的逻辑关系时该方式并不适用。1替换实现法主要用于格式固定的随机数据。这类数据有固定的格式,且有部分数值为可变,例如“单位名称”字段的基本格式为“第 XX 单位 XXX 部门” 。针对这类数据的特点将它分段为固定部分和动态部分,固定部分保持不变,动态部分调用随机函数实现,最后合并各段得到虚拟数据。如前例, “X”为随机部分,其他为固定部分,处理时调用随机函数生成一个十位整数替换“第 XX 单位”中的“XX”随机部分;一个为小于 1000 的整数代替“第 XXX 部门”中的“XXX” 随机部分,然后合并固定和动态部分生成虚拟数据。开

10、始 结束读取组合规则随机生成动态部分是否有要替换的动态部分NY组合动态和固定部分生成虚拟数据区分动态和固定部分图 2 替换实现法生成流程替代生成法是基础方法,因为大多数数据的数值都有一定的格式规范,即使没有格式规范的数据,也可以认为该数据动态数值部分为数据本身,固定格式部分为空,如果不必考虑该数据的逻辑关系,该算法适合生成绝大多数虚拟数据。当然,由于替代生成法是采用随机方式生成数据的,因此遇到需要考验数据间的拓扑、逻辑、关联的信息时,该方式并不适用。2枚举法主要用于有限集且值域较小的数据。处理方法是,首先建立数据所有可以包括的集合,同时给出集合中数据出现的概率。然后按照概率随机抽取集合中的数据

11、作为虚拟数据。这种方法在实际运用中仿真度高,可用性较强。开始结束读取组合规则按照概率表随机读取枚举数值建立枚举数值集合获取枚举数值概率表图 3 枚举法生成流程3组合法将一个字段的值设定为几个特定值的组合。组合规则可以由多个参数组成,各组合参数可以从系统数据字典和样本数据库中取值,也可以从目标数据库中其他表中取值,还可以是固定的一个词。比如“公司名称”字段的值可以设定为“地名”+“通信责任有限公司” ,其中“地名”可以从基础数据库中的地名表取值, “通信责任有限公司”为一个固定词组。开始 结束读取组合规则 组合段赋值组合段为空否YN组合各段数据并赋予元数据对应字段读取下一条组合段图 3 组合法生

12、成流程组合法应适合虚拟有限数据集的数据,如果数据分布信息设计成熟,还能确保虚拟数据的逻辑分布信息,在实际运用中仿真度高,可用性较强。 4偏移生成法偏移生成法是利用一定数量的真实数据,按照设定的偏移规则进行随机偏移,从而遮蔽数据的真实性,生成类似真实数据的虚拟数据。虚拟数据生成法实际上就是以真实数据作为基础数据,并根据字符、数字或日期等类型的字段整体进行偏移规则设置,也可以对以上字段类型的字段单独进行偏移规则设置。开始结束读取组合规则用偏移量修改原始数据获取原始数据值在偏移范围类随机生成偏移量图 4 偏移生成流程偏移生成法主要工作是对偏移规则的设计,配置简单;生成时偏移即可生成,数据速度较快,且

13、生成的虚拟数据与真实数据具有很高的相似度,物理意义明确、逻辑关系清晰,可理解性更强。偏移生成法的局限性在于该方法的基础是真实数据,因此必须有真实数据才可进行。另外,在偏移规则的设定上要着重斟酌,因为偏移量过大,将造成数据失真,过小又不足以遮蔽数据的真实性。5混淆生成法混淆生成法是对真实数据的属性进行随机交换,从而实现真实数据的遮蔽。真实数据中常有这样的属性,将其单个取出,难以表达明确的含义,而需要多个组合,才能包含足够的信息量。混淆生成法是将数据中这类组合属性打散进行重新随机组合,获取虚拟数据的方法。比如,对于“人员信息表” ,单独获取“姓名”并没有多大的意义,但当“姓名”和“职位”组合就成为

14、描述个人情况的关键信息。利用混淆生成法将“姓名”与“职位”在表中进行重新随机组合,既可生成虚拟数据。与替换生成法相比,不但确保了“姓名”的质量(不会出现随机而生成的奇怪人名) , “职位”的布局结构也与真实的拓扑情况基本相同,从而在保障数据质量的同时,遮蔽了数据的真实性。开始结束设置需混淆的组合规则随机组合生成新数据获取组合字段读取生成规则读取组合的真实数据保存新组合的数据替换原数据图 5 混淆生成法生成流程混淆生成法生成的虚拟数据与真实数据具有很高的相似度,能很好的保存真实数据的拓扑结构和逻辑关系,数据质量高。混淆生成法要考虑哪些属性的组织包含关键信息,而不需要过多考虑数据的逻辑关系和拓扑结

15、构等,因此设置规则更加简便。由于该方法的基础是真实数据,必须有真实数据才可进行,并且如果数据的逻辑关系和拓扑结构也是需要遮蔽的信息,就要酌情使用该方法。2.2.2 实体关系特征实现依据实体属性特征生成的数据,能够保证虚拟数据合格,但在反应数据间关联关系的合理性方面是不足的。针对不同关联关系,提出相应的处理方法。需要注意的是,系统主要解决工程中实际问题,因此并非严格遵循数据建模相关概念。1外键关联关系生成法实体间的关联关系落到物理模型层次,表现为表与表间的外键关系,在该关系中作为主键存在,提供数据的表将之称为字典表,在处理时随机抽取字典表中的数据直接放入到虚拟表中对应字段即可。但在实际工程中,存

16、在大量和外键关系类似,但并非严格符合数据建模的关系,例如虚拟表 A 中有“通信地址 ”字段,那么它与地名字典表存在类似外键关联的关系。对该数据的处理,不是简单的直接抽取,而是对抽取的数据经过一定的规则转换后,生成虚拟数据,本文称这种转换后引用的关系为“函数引用” 。如上例 “通信地址”中的数据“XX 市 XX 区XX 街道 XXX 号” , “XX 市 XX 区 XX 街道”部分从地名字典表获得,而“XXX 号”可以随机生成,然后将两者结合,就生成了虚拟的“通信地址”数据。开始结束读取规则随机抽取 字典表中的数据 x是否达到虚拟数据量NY按规则转换数据得到 f ( x )图 6 外键关联关系生

17、成法流程外键关联关系生成法适合于有主外键关系,或者隐含主外键关系的虚拟数据生成。配置完整字典表,设计符合实际情况的规则是确保是本方法成功的两大关键,因此一旦做好这两个主要工作,系统就可以很方便的生成高质量的虚拟数据。2分类关系生成法分类关系是关联关系中特殊的一类,考虑到独立实体上有被称为超类实体的一个高层实体,因此在生成独立实体的特有数据时,要首先生成超类实体的共同属性数据。其他处理方式与一般关联关系基本相同。开始 结束生成独立实体数据是否有超类实体数据生成超类实体数据图 7 分类关系生成法流程分类关系生成法本身不是生成虚拟数据的方法,而应当认为是针对包含超类实体关系的虚拟数据的一种处理流程。

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

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

20、、纬度三个字段的数据获取。但如果这三个字段分别随机获取,会出现地名与经纬度不一致的情况,如台站名称为“北京短波站”的经纬度可能偏移到广州一带,这种虚拟数据合格但不合理,不可用。因此要将地址字典表中的三个字段的数据看成一组,从一条记录中读取,处理流程如图 5:开始结束读取规则按 组 随机抽取字典表中的数据集 x 1 , . . , x n 是否达到虚拟数据量NY按规则转换数据集得到 f ( x 1 ) , . . , f ( x n ) 图 9 外键组关系生成法流程外键组关系生成法适合于有主外键关系,或者隐含主外键关系的一组虚拟数据生成。外键组关系生成法是外键关联关系生成法的加强,在使用该方法之

21、前要依据元数据的描述信息对需要成组生成的数据进行提取并规范,一旦设计完成后,具体实现与外键关系生成法近似。3 使用说明3.1 使用环境本系统是采用 Delhpi7.0 开发的,支持的数据库是 Oracle8i,可在 windows XP、 window2007 等操作系统中运行。3.2 使用流程本系统可用生成仿真数据。主要工作包括:选择虚拟表、数据需求设置、配置虚拟数据规则、虚拟数据生成。具体组织流程如图 10 所示。用 户 系 统配置虚拟数据生成规则设置自动产生虚拟数据生成规则依据生成规则生成虚拟数据结束选择虚拟表获取表元数据数据需求设置图 10 使用流程3.2.1 选择混淆表用户选择需要生

22、成虚拟数据的表后,系统调用元数据管理功能分析该表的结构信息,获取该表的元数据信息。系统根据获取的元数据,初步生成虚拟数据生成规则,为用户进一步配置提供基础。初步生成虚拟数据生成规则如下:(1)默认根据字段的类型、长度等生成随机数据生成规则。(1)判断字段是否主外键关系,如果有,自动生成外键关系生成规则。(2)根据字段类型和长度,自动生成该类型随机数的生成规则。(3)判断字段是否为唯一键,自动生成唯一键生成规则,防止违反数据约束条件。(4)判断表中主键或唯一键是否包含多个字段,如果包含将这些字段分为一组生成约束条件。3.2.2 数据需求设置用户在数据需求设置界面填写对虚拟数据的需求。主要设置如下:(1)虚拟数据的数据量,在“虚拟数据量”文本框中填写大于 0 的整数,确定生成虚拟数据的数据量。(2)选择同步虚拟从表。虚拟数据表的同时是否同步虚拟从表数据,如果虚拟从表数据,选择从表,并进行该表的虚拟规则配置(配置方式与虚拟数据表基本相同) 。(3)选择常用字典表。选择参与虚拟数据生成的基本字典表,如地名、人名等表,为替换法、枚举法、组合法等方法提供基础。3.2.3 配置虚拟数据规则用户在系统自动生成的数据规则上进行修改,生成符合用户需求的虚拟数据生成规则:1精简数据取值范围

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。