软件设计说明书(基于元数据的虚拟数据自动生成系统).docx
-
资源ID:4297637
资源大小:218.17KB
全文页数:13页
- 资源格式: DOCX
下载积分:16金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
软件设计说明书(基于元数据的虚拟数据自动生成系统).docx
基于元数据的虚拟数据自动生成系统设计说明书1 系统简介信息系统一般都是以数据库为后台进行开发的,其功能与性能测试往往需要一定量的数据 为基础。由于安全保密和时效性等原因,在信息系统的开发过程中不能直接加载真实数据进行 测试。因此,需要大量虚拟数据对系统进行全面测试。虚拟数据的获取根据录入的方法的不同可以分为人工和自动生成两种方式。 人工录入方式, 仿真程度高,确保了虚拟数据的质量。但以每张表的记录数百万条计,工作量会非常大,且此 工作没有继承性,以某个需求背景下录入的数据,当背景变化后难以重用。因此,设计一个虚 拟数据生成工具,自动生成虚拟数据非常必要。本系统的设计目的就是为自动为用户提供海量 虚拟数据。本系统的设计采用了元数据技术,根据不同需求背景,通过元数据对数据库结构、数据特 征和关系的描述,设定的模拟数据生成规则,自动生成海量的模拟数据。归纳起来,本系统具 有如下特点:(1)能够适应数据需求变化随着技术的发展和运用场景的变化, 信息系统对虚拟数据在结构和内容上将提出新的要求。 通过传统的手工录入方式, 将不得不大量修改记录甚至重新录入, 实现起来时间长, 工作量大。 本文档所描述的虚拟数据生成系统采用了基于元数据的规则生成技术,当需求改变时,及时更 新相关配置,就可以重新自动生成虚拟数据,提高生产效率。(2)能够高效灵活实现数据生成规则配置 本系统对虚拟数据的生成是基于数据生成规则,而数据生成规则的制定,首先从数据库结 构中自动读取结构化元数据,获取数据的特征及关系,构成基本生成规则。在基本数据规则的 基础上系统给出了针对不同类型数据的规范表达式,帮助用户定制符合自身需求的生成规则, 实现数据生成规则配置的高效灵活。(3)具有较好的资源字典扩展性 信息系统所在的业务领域是不断地发展的,因此总会产生一些对新类型数据需求,而这些 需要应及时加入到信息系统中。本虚拟数据生成系统提供良好的资源字典维护功能,只需要及 时更新字典中相关数据,既可实现了数据的无缝扩展。(4)能够海量生成虚拟数据 本系统的设计目的既实现海量虚拟数据的生成。用户一旦根据需求,配置好数据生成规则 实现资源字典的更新后,系统既可运用规则算法,自动生成海量数据,经测试生成1 百万条记录的数据,大约花费 10 分钟。2 软件设计2.1 软件组成及框架1 所示。系统采用三“基于元数据的虚拟数据自动生成系统”的基本架构及连接关系如图 层体架构,由数据支撑层、系统支撑层、系统应用层组成。系统应用层虚拟规则设置属性特征 规则设置关系特征规则设置N元关自反系 . 关联设置规则数据 需求 设置系统支撑层获取基本规则 生成规则 生成需求读取元数据生成虚拟数据数据支撑层字典类数据虚拟数据 产品库图1 系统组成及连接关系图数据支撑层为系统支撑层和系统应用层提供数据支撑, 包括源数据库和虚拟数据库两部分。 源数据库为包含真实数据的信息系统数据库,包含了数据库结构、字典类数据(用于抽取的固 定数据,如地名字典表)等信息,是整个虚拟数据生成的模板和来源。虚拟数据库与源数据库 结构相同,系统最终生成的虚拟数据存放于此。系统支撑层为系统应用层提供后台软件支撑, 包括元数据管理、 虚拟数据生成两个子模块。 元数据管理子模块用于从源数据库中读取描述数据特征的结构化元数据, 如数据的长度、 类型、 格式等,作为生成虚拟数据的基本标准。虚拟数据生成子模块根据虚拟数据生成规则和生成需 求(如生成虚拟数据数量等)生成数据,并存储到虚拟数据库中。系统应用层面向用户,包括虚拟规则设置、数据需求设置两个子模块。生成虚拟规则设置 子模块将辅助用户,在元数据描述特征的基础上,设置数据生成规则。在数据需求设置子模块 中,用户录入生成数据量、是否唯一等用户对数据的整体需求。2.2 实现方法 虚拟数据要达到代替真实数据的目的,必须做到与真实数据不但形似而且神似,即两者虽 然在内容上不尽相同, 但在结构和反映事物特征上要相同。 本系统尝试以数据建模理论为基础, 结合工程实践,通过分析数据特征,找出规律,提出虚拟数据的实现方法。描述实体的数据有以下几个主要特征:1实体属性特征,作为数据库中原子的数据值,固有的长度、类型、格式等特征;2实体关系特征,描述数据实体之间是如何相关的,根据工程实践关注以下几种:(1)关联关系,包括一对一、一对多、多对多等数据实体间的关联关系;(2)分类关系, 关联关系的一种特殊关系, 相关的实体被分为一组, 其中所有公共属性统 一在一个超类实体中。(3)自反关系, 关联关系的一种特殊关系, 是指一个实体所参与的关系, 在这个关系中该 实体即是父实体又是子实体。2.2.1 实体属性特征实现 实体属性特征描述时包括两个方面。一是数据所在字段的类型,如字段长度、类型、格式 等;二是反映真实实体的特征, 例如“电话号码” 字段是长度为 10的字符串, 它有自定义格式: “XXXX XXXXX ”,前四个“ X”表示区号,后五个“ X”表示号码, “”为二者的分隔。 真实实体用数据进行描述时,通常包含这二个特征。实体属性特征的第一个方面是数据的基本特征,通常较好处理,只需要按数据所在字段的 类型、长度要求,调用随机函数生成符合该特征的虚拟数据即可。实体属性特征的第二个方面,需要在对真实实体特征仔细分析的基础上,利用不同途径实 现。下面尝试四种处理方式:1随机生成法随机生成法首先按照数据的类型、长度、大小等约束条件划定数据的取值范围,然后在范 围区间内随机生成数据。图 2 随机生成法流程随机生成法是虚拟数据生成的基本方法,是其他生成法的基础。可以说其他生成法是在随 机生成法基础上增加其它相关功能和方法实现的。系统默认对数据的生成采用该方法,特点是 适用范围广,任何数据的虚拟都可以采用该方法实现,但遇到需要考验数据的特殊结构和数据 间的逻辑关系时该方式并不适用。1替换实现法主要用于格式固定的随机数据。这类数据有固定的格式,且有部分数值为可变,例如“单 位名称”字段的基本格式为“第 XX 单位 XXX 部门”。针对这类数据的特点将它分段为固定部 分和动态部分, 固定部分保持不变, 动态部分调用随机函数实现, 最后合并各段得到虚拟数据。如前例,“X ”为随机部分,其他为固定部分,处理时调用随机函数生成一个十位整数替换“第XX 单位”中的“ XX ”随机部分;一个为小于 1000 的整数代替“第 XXX 部门”中的“ XXX 随机部分,然后合并固定和动态部分生成虚拟数据。图 2 替换实现法生成流程替代生成法是基础方法,因为大多数数据的数值都有一定的格式规范,即使没有格式规范 的数据,也可以认为该数据动态数值部分为数据本身,固定格式部分为空,如果不必考虑该数 据的逻辑关系,该算法适合生成绝大多数虚拟数据。当然,由于替代生成法是采用随机方式生 成数据的,因此遇到需要考验数据间的拓扑、逻辑、关联的信息时,该方式并不适用。2枚举法主要用于有限集且值域较小的数据。处理方法是,首先建立数据所有可以包括的集合,同 时给出集合中数据出现的概率。然后按照概率随机抽取集合中的数据作为虚拟数据。这种方法 在实际运用中仿真度高,可用性较强。图 3 枚举法生成流程3组合法 将一个字段的值设定为几个特定值的组合。组合规则可以由多个参数组成,各组合参数可 以从系统数据字典和样本数据库中取值,也可以从目标数据库中其他表中取值,还可以是固定 的一个词。比如“公司名称”字段的值可以设定为“地名”+“通信责任有限公司” ,其中“地名”可以从基础数据库中的地名表取值, “通信责任有限公司”为一个固定词组。开开开开开 开开开开开开开开开Y 开开开开开开 开开开开图 3 组合法生成流程组合法应适合虚拟有限数据集的数据, 如果数据分布信息设计成熟, 还能确保虚拟数据的 逻辑分布信息,在实际运用中仿真度高,可用性较强。4偏移生成法 偏移生成法是利用一定数量的真实数据,按照设定的偏移规则进行随机偏移,从而遮蔽数 据的真实性,生成类似真实数据的虚拟数据。虚拟数据生成法实际上就是以真实数据作为基础 数据,并根据字符、数字或日期等类型的字段整体进行偏移规则设置,也可以对以上字段类型 的字段单独进行偏移规则设置。图 4 偏移生成流程偏移生成法主要工作是对偏移规则的设计,配置简单;生成时偏移即可生成,数据速度较 快,且生成的虚拟数据与真实数据具有很高的相似度,物理意义明确、逻辑关系清晰,可理解 性更强。偏移生成法的局限性在于该方法的基础是真实数据,因此必须有真实数据才可进行。 另外,在偏移规则的设定上要着重斟酌,因为偏移量过大,将造成数据失真,过小又不足以遮 蔽数据的真实性。5混淆生成法 混淆生成法是对真实数据的属性进行随机交换,从而实现真实数据的遮蔽。真实数据中常 有这样的属性,将其单个取出,难以表达明确的含义,而需要多个组合,才能包含足够的信息 量。混淆生成法是将数据中这类组合属性打散进行重新随机组合, 获取虚拟数据的方法。 比如, 对于“人员信息表” ,单独获取“姓名”并没有多大的意义,但当“姓名”和“职位”组合就成 为描述个人情况的关键信息。利用混淆生成法将“姓名”与“职位”在表中进行重新随机组合, 既可生成虚拟数据。与替换生成法相比,不但确保了“姓名”的质量(不会出现随机而生成的 奇怪人名),“职位”的布局结构也与真实的拓扑情况基本相同,从而在保障数据质量的同时,遮蔽了数据的真实性。图 5 混淆生成法生成流程混淆生成法生成的虚拟数据与真实数据具有很高的相似度, 能很好的保存真实数据的拓扑结构和逻辑关系,数据质量高。混淆生成法要考虑哪些属性的组织包含关键信息,而不需要过 多考虑数据的逻辑关系和拓扑结构等, 因此设置规则更加简便。 由于该方法的基础是真实数据, 必须有真实数据才可进行,并且如果数据的逻辑关系和拓扑结构也是需要遮蔽的信息,就要酌 情使用该方法。2.2.2 实体关系特征实现 依据实体属性特征生成的数据,能够保证虚拟数据合格,但在反应数据间关联关系的合理 性方面是不足的。针对不同关联关系,提出相应的处理方法。需要注意的是,系统主要解决工 程中实际问题,因此并非严格遵循数据建模相关概念。1外键关联关系生成法 实体间的关联关系落到物理模型层次,表现为表与表间的外键关系,在该关系中作为主键 存在,提供数据的表将之称为字典表,在处理时随机抽取字典表中的数据直接放入到虚拟表中 对应字段即可。 但在实际工程中, 存在大量和外键关系类似, 但并非严格符合数据建模的关系, 例如虚拟表 A 中有“通信地址”字段,那么它与地名字典表存在类似外键关联的关系。对该数 据的处理,不是简单的直接抽取,而是对抽取的数据经过一定的规则转换后,生成虚拟数据, 本文称这种转换后引用的关系为“函数引用” 。如上例 “通信地址”中的数据“ XX 市 XX 区XX 街道 XXX 号”,“ XX 市 XX 区 XX 街道”部分从地名字典表获得,而“ XXX 号”可以随机 生成,然后将两者结合,就生成了虚拟的“通信地址”数据。图 6 外键关联关系生成法流程外键关联关系生成法适合于有主外键关系,或者隐含主外键关系的虚拟数据生成。配置完整字典表,设计符合实际情况的规则是确保是本方法成功的两大关键,因此一旦做好这两个主要工作,系统就可以很方便的生成高质量的虚拟数据。2分类关系生成法分类关系是关联关系中特殊的一类, 考虑到独立实体上有被称为超类实体的一个高层实体,因此在生成独立实体的特有数据时,要首先生成超类实体的共同属性数据。其他处理方式与一 般关联关系基本相同。图 7 分类关系生成法流程分类关系生成法本身不是生成虚拟数据的方法,而应当认为是针对包含超类实体关系的虚 拟数据的一种处理流程。实际数据的处理时,遵循本方法的流程进程,对具体的数据虚拟可以 使用前面提供的生成法进行处理,从而确保虚拟数据的逻辑结构完整。3自反关系生成法自反关系是关联关系中特殊的一类,由于关系中该表字段的数据被本表其他字段引用,因此在实体属性间存在依赖关系,即表自身是自己的字典表。在实际工程中,将该关系进行了扩展,字段间不仅仅是引用,还包括相互间的逻辑关系,如“入伍时间”字段中的数据早于“现 岗时间”字段的数据。图 8 自反关系生成法流程自反关系生成法适用于在同一张表中不同记录间存在引用或者逻辑关联关系的虚拟数据 生成。该方法与关联关系生成法近似,但因为在数据的生成的过程中存在自依赖关系,因此在 某个数据生成要对依赖的记录是否存在进行判断,判断存在才能生成。4外键组关系生成法外键组关系是指虚拟表中一组字段来自于字典表中对应的一组字段的数据。这个概念与前 面描述的外键关系相似,只是对应的字段从一对一变为多对多了。下面给出一个实例来说明外 键组关系的含义,并给出处理方式:假设某“台站”表中有“台站名称”字段格式为“ XXX 短波站”(“XXX ”为地名),“台 站经度”字段格式为“ XXX XXXXXX ”(小数点后取 6 位的浮点数) ,“台站纬度”字段格式 同经度字段。三个字段的虚拟数据可以通过读取“地址字典表”中地名、经度、纬度三个字段 的数据获取。但如果这三个字段分别随机获取,会出现地名与经纬度不一致的情况,如台站名称为“北京短波站”的经纬度可能偏移到广州一带,这种虚拟数据合格但不合理,不可用。因图9 外键组关系生成法流程外键组关系生成法适合于有主外键关系,或者隐含主外键关系的一组虚拟数据生成。外键 组关系生成法是外键关联关系生成法的加强,在使用该方法之前要依据元数据的描述信息对需 要成组生成的数据进行提取并规范,一旦设计完成后,具体实现与外键关系生成法近似。3 使用说明3.1 使用环境本系统是采用 Delhpi7.0 开发的, 支持的数据库是 Oracle8i ,可在 windows XP 、window2007 等操作系统中运行。3.2 使用流程本系统可用生成仿真数据。主要工作包括:选择虚拟表、数据需求设置、配置虚拟数据规 则、虚拟数据生成。具体组织流程如图 10 所示。图 10 使用流程3.2.1 选择混淆表 用户选择需要生成虚拟数据的表后,系统调用元数据管理功能分析该表的结构信息,获取 该表的元数据信息。系统根据获取的元数据,初步生成虚拟数据生成规则,为用户进一步配置 提供基础。初步生成虚拟数据生成规则如下:(1)默认根据字段的类型、长度等生成随机数据生成规则。(1)判断字段是否主外键关系,如果有,自动生成外键关系生成规则。(2)根据字段类型和长度,自动生成该类型随机数的生成规则。(3)判断字段是否为唯一键,自动生成唯一键生成规则,防止违反数据约束条件。(4)判断表中主键或唯一键是否包含多个字段,如果包含将这些字段分为一组生成约束条件。3.2.2 数据需求设置 用户在数据需求设置界面填写对虚拟数据的需求。主要设置如下:(1)虚拟数据的数据量,在“虚拟数据量”文本框中填写大于0 的整数,确定生成虚拟数据的数据量。(2)选择同步虚拟从表。虚拟数据表的同时是否同步虚拟从表数据,如果虚拟从表数据, 选择从表,并进行该表的虚拟规则配置(配置方式与虚拟数据表基本相同) 。(3)选择常用字典表。选择参与虚拟数据生成的基本字典表,如地名、人名等表,为替换 法、枚举法、组合法等方法提供基础。3.2.3 配置虚拟数据规则 用户在系统自动生成的数据规则上进行修改,生成符合用户需求的虚拟数据生成规则: 1精简数据取值范围系统按照元数据自动生成的数据取值范围,该范围通常过大,并不能完全满足用户需求。 用户可以在系统设定取值范围内,进一步对取值范围进行精简,但获取的新范围不超过原有范 围,以免违法数据的约束条件。如果数据的取值方法固定,如人名、地名等,可将基本字典表 作为取值范围进行设置。2设置数据格式 用户对有某些数据有固定的格式要求,如电话号码、邮政编码等。设置数据格式,使数据 的生成按照该格式进行。3组合数据组 某些字段之间有相应的关联关系,如工作时间和在岗时间,前一个一定早于后一个,对这 些有关联关系的字段,可将其视为一组,进行同步处理。4连接关联关系字段包含的外键、自相关、分类等关联关系,系统通过元数据信息,通常可以自动生成, 如果用户认为这类关联关系不能满足需求,可增加这些关联关系,但不允许删除默认生成关联 关系,防止破坏数据的约束性。3.2.4 虚拟数据生成 系统根据配置好的虚拟数据生成规则,调用不同生成法产生虚拟数据。生成流程如下:(1)遍历虚拟数据表中全部字段, 对每个字段依据规则采用不同方式生成满足用户需求的 数据量。(2)首先确定字段是否是从属与某个外键组, 如果是, 将从属该外键组的其他字段也提取 出来, 调用外键组关系生成法生成这几个字段的虚拟数据。生成虚拟数据的字段不再参与遍历。(3)确定字段是否有外键、分类、自反关联关系规则,如果有根据规则描述信息,分别调 用外键关联关系生成法、分类关联关系生成法或自反关联关系生成法等方法生成达到用户需求 量的虚拟数据。生成虚拟数据的字段不再参与遍历。(4)如果字段不涉及实体关系特征的实现, 查看描述字段生成规则, 确定其实体属性特征 实现方法。分别调用替换生成法、组合生成法、偏移生成法、混淆生成法等方法生成达到用户 需求量的虚拟数据。生成虚拟数据的字段不再参与遍历。3.3 操作使用3.3.1 选择虚拟数据表系统启动后,在列表中显示当前可以访问的表。用户选择要虚拟数据的表对象(下文称该 表为虚拟表) 。系统自动执行以下两步操作:1)读取该对象的元数据信息,为下一步虚拟规则设置提供准备。(2)根据元数据信息,自动生成初步的虚拟规则。3.3.2 数据需求设置 选择虚拟数据表后,点击“数据需求设置”页面,填写对虚拟该表的需求:(1)在“虚拟数据量”文本框中填写大于0 的整数,确定生成虚拟数据的数据量。(2)在从表列表中选择同步虚拟的从表。(3)选择常用字典表。选择参与虚拟数据生成的基本字典表,如地名、人名等表,为替换 法、枚举法、组合法等方法提供基础。3.2.3 配置虚拟数据规则用户按照以下顺序设置虚拟数据规则:1设置连接关联关系 用户如果认为字段中的数据存在外键、自相关、分类等关联关系。点击表下拉框,选择表 所属字段,双击确认两者间的逻辑关系,并勾选该逻辑该逻辑关系的类型。也可以手工填写该 关联关系格式为“用户名 表名 字段名”。2组合数据组某些字段之间有相应的关联关系, 将有关联关系的字段设为一组, 并设置两者之间的关系, 进行同步处理。3精简数据取值范围 系统显示数据的取值范围,用户查看该范围后,如果不满足要求,可根据以下格式手工修 改范围。( 1)字符类型的取值设置为“ n,m ”,其中 n 为字符串最短值, m 为字符串最长值; (2)数值类型的取值为“ n,m ”, 其中 n为最小值, m 为最大值;(3)日期类型的取值为“ n,m ”, 其中 n 为最早时间, m 为最晚时间, m 不填写即为系 统当前时间。(4)枚举类型的取值为“ a,b, z”集合。4设置数据格式用户对固定的格式需求的数据进行手工设置, 用!S代表随机字符, !X 代表随机数字, 其他 符合代表固定格式,如电话号码可书写为“ !X!X!X-!X!X!X!X!X!X!X!X ”。3.2.4 虚拟数据生成用户对虚拟规则设置完成后, 通过点击菜单中“虚拟数据生成” ,生成数据。 系统在后台依 据配置的虚拟数据生成规则和数据需求,运用随机数据生成法、替代生成法、混淆生成法等方法生成虚拟数据。完成后,系统弹出“虚拟数据生成完毕”的提示框。