数据生成装置和方法 【技术领域】
本发明涉及数据生成技术, 具体而言, 涉及数据生成装置和方法。背景技术 原有的工资计算, 需要将自然语言转换为工资计算语言, 然后按照工资计算语言 转换为结构化查询语言 (Structure Query Language, 简称 SQL 语言 ), 最后将 SQL 语言在 数据库中执行 . 这种计算方式存在以下不足 : (1) 工资计算语言转换为结构化查询语言, 这 一转换过程比较复杂, 导致工资计算系统臃肿, 难以维护 ; (2) 要考虑工资专员的数据权限 以及业务规则所涉及的人员范围, 导致转换后的 SQL 语句执行效率不高, 客户难以接受。
因此, 需要一种新的数据生成技术, 可以改善数据处理过程, 提高数据处理效率, 降低数据计算系统的复杂性。
发明内容
本发明正是基于上述问题, 提出了一种新的数据生成技术, 可以改善数据处理过 程, 提高数据处理效率, 降低数据计算系统的复杂性。
有鉴于此, 本发明提出了一种数据生成装置, 包括 : 查询条件设置模块, 对查询条 件进行设置 ; 获取模块, 根据所设置的所述查询条件, 从数据库中获取员工信息和辅助信 息; 处理模块, 将所述员工信息和所述辅助信息存储至中间表, 所述中间表存储于所述数据 库中 ; 生成模块, 根据所述中间表生成所述数据的数值。在该技术方案中, 通过将生成需要 得到的数据的数值的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一个中间 表, 则最终生成所需数据的数值时, 不必实时获取或是在数据库中的大量信息中进行查询, 而是直接利用数据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效率。
在上述技术方案中, 优选地, 所述辅助信息包括计税信息, 所述计税信息包括计税 方式、 税率表、 已扣税基数和 / 或已扣税 ; 以及所述数据包括 : 员工工资。在该技术方案中, 上述装置可以用于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的 信息等可以事先生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工 工资” 的数值, 凡是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术 方案。
在上述技术方案中, 优选地, 所述辅助信息还包括 : 业务变量, 所述业务变量包括 年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 所述数据生成装置还包括 : 设定模块, 设定数据生成规则, 所述生成模块根据所述数据生成规则生成所述数据的数值 ; 数值获取模块, 在所述数据生成规则中包含所述业务变量时, 利用预设的业务变量获取规 则获取所述业务变量的数值, 并存储在所述中间表中。在该技术方案中, 可以对数据的数 值的生成设定对应的规则, 这里的规则可能是生成该数值的语言、 条件等, 比如 “工龄小于 5 年的员工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是一个业务变量, 则需要获取对应 , 这时并不满足上述规则, 而应该属于其它规则如 “工龄大于 5 的 “工龄” 的数值, 比如为 “8”年且小于 10 年的员工补贴是工资的 10%” 。
在上述技术方案中, 优选地, 还包括 : 注册模块, 用于所述用户的注册, 生成与所述 用户唯一对应的用户 ID, 使所述用户利用所述用户 ID 登录所述数据生成装置时, 获取与所 述用户 ID 对应的数据权限, 并在所述数据权限下进行操作。在该技术方案中, 每个操作用 户需要事先注册, 并获取与之对应的唯一的 ID, 该 ID 用于在操作前进行登录, 并在登录获 取与之对应的操作权限, 比如员工 A 只能对 “财务部的正式员工” 进行操作, 而不是 “财务 部” 的员工和 “财务部的临时员工” 等则不具有操作权限。权限的设置, 有利于管理上的便 捷。
在上述技术方案中, 优选地, 还包括 : 删除模块, 在生成所述数据的数值后, 删除所 述中间表中的所述员工信息和所述辅助信息。在该技术方案中, 在完成数据的数值的生成 后, 可以将中间表中的数据删除, 因为中间表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数据的删除, 但对于中间表并不进行删除, 而是将空白的列表存储于数据库 中, 一方面节省空间, 另一方面便于以后的再次利用。
根据本发明的又一方面, 还提出了一种数据生成方法, 包括 : 步骤 202, 设置查询 条件, 将根据所述查询条件从数据库中获取的员工信息和辅助信息存储至中间表, 所述中 间表存储于所述数据库中, 以及根据所述中间表生成所述数据的数值。 在该技术方案中, 通 过将生成需要得到的数据的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一 个中间表, 则最终生成所需数据的数值时, 不必实时获取或是在数据库中的大量信息中进 行查询, 而是直接利用数据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效 率。 在上述技术方案中, 优选地, 所述辅助信息包括计税信息, 所述计税信息包括计税 方式、 税率表、 已扣税基数和 / 或已扣税 ; 以及所述数据包括 : 员工工资。在该技术方案中, 上述装置可以用于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的 信息等可以事先生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工 工资” 的数值, 凡是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术 方案。
在上述技术方案中, 优选地, 所述辅助信息还包括 : 业务变量, 所述业务变量包括 年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 在所述步骤 202 之前还包 括: 设定数据生成规则, 在所述数据生成规则中包含所述业务变量时, 利用预设的业务变量 获取规则, 获取所述业务变量的数值, 并存储在所述中间表中 ; 以及所述步骤 202 具体包 括: 根据所述中间表, 并通过所述数据生成规则生成所述数据的数值。在该技术方案中, 可 以对数据的生成设定对应的规则, 这里的条件可能是生成数据的语言、 条件等, 比如 “工龄 小于 5 年的员工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是一个业务变量, 则需要获 取对应的 “工龄” 的数值, 比如为 “8” , 这时并不满足上述规则, 而应该属于其它规则如 “工 龄大于 5 年且小于 10 年的员工补贴是工资的 10%” 。
在上述技术方案中, 优选地, 在所述步骤 202 之前, 还包括 : 使用与所述用户唯一 对应的用户 ID 进行登录, 获取与所述用户 ID 对应的数据权限, 并在所述数据权限下进行所 述步骤 202 的操作。在该技术方案中, 每个操作用户需要事先注册, 并获取与之对应的唯一 的 ID, 该 ID 用于在操作前进行登录, 并在登录获取与之对应的操作权限, 比如员工 A 只能
对 “财务部的正式员工” 进行操作, 而不是 “财务部” 的员工和 “财务部的临时员工” 等则不 具有操作权限。权限的设置, 有利于管理上的便捷。
在上述技术方案中, 优选地, 在所述步骤 202 之后, 还包括删除所述中间表中的所 述员工信息和所述辅助信息。在该技术方案中, 在完成数据的数值的生成后, 可以将中间 表中的数据删除, 因为中间表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数 据的删除, 但对于中间表并不进行删除, 而是将空白的列表存储于数据库中, 一方面节省空 间, 另一方面便于以后的再次利用。
通过以上技术方案, 可以改善数据处理过程, 提高数据处理效率, 降低数据计算系 统的复杂性。 附图说明
图 1 示出了根据本发明的实施例的数据生成装置的框图 ;
图 2 示出了根据本发明的实施例的数据生成方法的流程图 ;
图 3 示出了根据本发明的实施例的生成数据的示意流程图 ; 以及
图 4 示出了根据本发明的实施例的生成数据的具体流程图。 具体实施方式
为了能够更清楚地理解本发明的上述目的、 特征和优点, 下面结合附图和具体实 施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明, 但是, 本发明还可 以采用其他不同于在此描述的其他方式来实施, 因此, 本发明并不限于下面公开的具体实 施例的限制。
图 1 示出了根据本发明的实施例的数据生成装置的框图。
如图 1 所示, 根据本发明的实施例的数据生成装置 100 包括 : 查询条件设置模块 102, 对查询条件进行设置 ; 获取模块 104, 根据所设置的查询条件, 从数据库中获取员工信 息和辅助信息 ; 处理模块 106, 将员工信息和辅助信息存储至中间表, 中间表存储于数据库 中; 生成模块 108, 根据中间表生成数据的数值 ; 设定模块 110, 设定数据生成规则, 生成模 块 108 根据数据生成规则生成数据的数值 ; 数值获取模块 112, 在数据生成规则中包含业务 变量时, 利用预设的业务变量获取规则获取业务变量的数值, 并存储在中间表中 ; 注册模块 114, 用于用户的注册, 生成与用户唯一对应的用户 ID, 使用户利用用户 ID 登录数据生成装 置 100 时, 获取与用户 ID 对应的数据权限, 并在数据权限下进行操作 ; 删除模块 116, 在生 成数据的数值后, 删除中间表中的员工信息和辅助信息。 在该技术方案中, 通过将生成需要 得到的数据的数值的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一个中间 表, 则最终生成所需数据的数值时, 不必实时获取或是在数据库中的大量信息中进行查询, 而是直接利用数据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效率。
在上述技术方案中, 辅助信息包括计税信息, 计税信息包括计税方式、 税率表、 已 扣税基数和 / 或已扣税 ; 以及数据包括 : 员工工资。在该技术方案中, 上述装置 100 可以用 于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的信息等可以事先 生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工工资” 的数值, 凡是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术方案。
在上述技术方案中, 辅助信息还包括 : 业务变量, 业务变量包括年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数。在该技术方案中, 可以对数据的数值的生成 设定对应的规则, 这里的规则可能是生成该数值的语言、 条件等, 比如 “工龄小于 5 年的员 工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是一个业务变量, 则需要获取对应的 “工 龄” 的数值, 比如为 “8” , 这时并不满足上述规则, 而应该属于其它规则如 “工龄大于 5 年且 小于 10 年的员工补贴是工资的 10%” 。
在该技术方案中, 每个操作用户需要事先注册, 并获取与之对应的唯一的 ID, 该 ID 用于在操作前进行登录, 并在登录获取与之对应的操作权限, 比如员工 A 只能对 “财务部 的正式员工” 进行操作, 而不是 “财务部” 的员工和 “财务部的临时员工” 等则不具有操作权 限。权限的设置, 有利于管理上的便捷。
在该技术方案中, 在完成数据的数值的生成后, 可以将中间表中的数据删除, 因为 中间表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数据的删除, 但对于中间 表并不进行删除, 而是将空白的列表存储于数据库中, 一方面节省空间, 另一方面便于以后 的再次利用。 图 2 示出了根据本发明的实施例的数据生成方法的流程图。
如图 2 所示, 根据本发明的实施例的数据生成方法包括 : 步骤 202, 设置查询条件, 将根据查询条件从数据库中获取的员工信息和辅助信息存储至中间表, 中间表存储于所述 数据库中, 以及根据中间表生成数据的数值。 在该技术方案中, 通过将生成需要得到的数据 的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一个中间表, 则最终生成所 需数据的数值时, 不必实时获取或是在数据库中的大量信息中进行查询, 而是直接利用数 据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效率。
在上述技术方案中, 辅助信息包括计税信息, 所述计税信息包括计税方式、 税率 表、 已扣税基数和 / 或已扣税 ; 以及数据包括 : 员工工资。 在该技术方案中, 上述装置可以用 于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的信息等可以事先 生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工工资” 的数值, 凡 是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术方案。
在上述技术方案中, 辅助信息还包括 : 业务变量, 业务变量包括年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 在步骤 202 之前还包括 : 设定数据生成规则, 在数据生成规则中包含业务变量时, 利用预设的业务变量获取规则, 获取业务变量的数值, 并存储在中间表中 ; 以及步骤 202 具体包括 : 根据中间表, 并通过数据生成规则生成数据的 数值。 在该技术方案中, 可以对数据的生成设定对应的规则, 这里的规则可能是生成数据的 语言、 条件等, 比如 “工龄小于 5 年的员工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是 一个业务变量, 则需要获取对应的 “工龄” 的数值, 比如为 “8” , 这时并不满足上述规则, 而应 该属于其它规则如 “工龄大于 5 年且小于 10 年的员工补贴是工资的 10%” 。
在上述技术方案中, 在步骤 202 之前, 还包括 : 使用与用户唯一对应的用户 ID 进行 登录, 获取与用户 ID 对应的数据权限, 并在数据权限下进行步骤 202 的操作。在该技术方 案中, 每个操作用户需要事先注册, 并获取与之对应的唯一的 ID, 该 ID 用于在操作前进行 登录, 并在登录获取与之对应的操作权限, 比如员工 A 只能对 “财务部的正式员工” 进行操
作, 而不是 “财务部” 的员工和 “财务部的临时员工” 等则不具有操作权限。权限的设置, 有 利于管理上的便捷。
在上述技术方案中, 在步骤 202 之后, 还包括删除中间表中的员工信息和辅助信 息。在该技术方案中, 在完成数据的数值的生成后, 可以将中间表中的数据删除, 因为中间 表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数据的删除, 但对于中间表并 不进行删除, 而是将空白的列表存储于数据库中, 一方面节省空间, 另一方面便于以后的再 次利用。
图 3 示出了根据本发明的实施例的生成数据的示意流程图。
如图 3 所示, 是利用上述技术方案进行员工工资计算的过程, 步骤如下 :
步骤 302, 在计算之前, 将预备的信息存储至中间表, 从而利用中间表这一 “缓存” 类型的列表, 使后续的数据如工资的数值的生成更为快捷, 也有利于降低对硬件设备的要 求;
步骤 304, 计算时, 利用之间生成的中间表对工资语言进行解析, 并执行生成对应 的数据如工资的数值 ;
步骤 306, 在计算完成后, 删除中间表中的数据, 并将空白的中间表存储于数据库 中。 对于图 3 中的步骤, 下面结合图 4 进行具体的说明。
图 4 示出了根据本发明的实施例的生成数据的具体流程图。
如图 4 所示, 具体步骤如下 :
步骤 402, 根据用户的数据权限查询需要计算工资的员工, 这里是指进行相关的数 据生成的操作用户, 需要事先注册得到与该用户身份唯一对应的用户 ID, 而用户进行操作 前, 需要先用该 ID 登录, 并取得相应的操作权限, 比如用户 A 所属角色是 “普通业务人员” , 该角色的数据权限是 :
部门权限 : 只能计算 “财务部” 与 “人力资源部” 的员工 ;
员工类别权限 : 只能计算 “正式员工” 的工资。
步骤 404, 在前一步骤中, 用户使用对应的 ID 登录并取得相应权限的前提下, 将本 次参与计算的员工信息存储至中间表, 比如员工名称、 所属部门等信息 ;
步骤 406, 更新员工的计税信息到中间表, 这里对于员工工资的计算, 需要进行相 应的税务计算, 当然, 对于其他情况下的其他数据生成, 也可能是其他的辅助信息, 并不限 于这一种 ;
步骤 408, 判断工资项目语言中是否含有业务变量, 这里的业务变量是指 “年龄” 、 “工龄” 、 “司龄” ( 在本公司的工作年限 )、 “工资期间日历天数” 、 “工资期间工作天数” 等, 对 于这些信息, 可以事先进行计算后, 存储至到中间表中, 则后续步骤中可以直接使用, 提高 计算效率。 而对于工资项目语言, 是指在生成数据如计算工资时, 需要将文字等转换为机器 语言, 如在一个具体的实施例中, 工资项目的 “补贴” 的业务描述是 :
“如果工龄>= 10 那么补贴是基本工资 *15% ;
如果工龄>= 5 并且工龄< 10, 那么补贴是基本工资 *10% ;
如果工龄< 5 那么补贴是基本工资 *5%。 ”
需要按照表 1 进行转换 :
7102354317 A CN 102354326
业务描述 工龄 补贴 基本工资 如果 那么 并且说明书机器语言 workage wage.allowance wage.basesalary if then &&6/9 页是
=表1
那么根据表 1, 就可以得到相应的工资计算语言 :
if workage >= 10, then wage.allowance = wage.basesalary*15% ;
if workage > = 5 && workage < 10 then wage.allowance = wage. basesalary*10% ;
if workage < 5, then wage.allowance = wage.basesalary*5%,
判断上述语言中是否包含业务变量, 如不包含, 则直接进入步骤 412, 如包含, 则进 入步骤 410 ;
步骤 410, 计算出相关业务变量的结果值并更新至中间表, 提前将业务变量或是其 他可以事先进行计算的数值计算出来, 并存储在中间表中, 从而在后续对工资语言的解析 和计算, 具有节省时间、 优化过程的优点 ;
步骤 412, 解析工资语言并执行, 得到用户想要得到的数据如工资的数值, 即每个 员工应得到的工资数目。
步骤 414, 删除中间表数据, 当然, 这一步骤并不是必须的, 而是一方面, 中间表中 的数据往往不是人们所关心的重要的数据, 因此可以删除, 另一方面, 中间表中的数据的删 除, 可以节省数据库或是其他存储装置的空间, 便于存储其他更为重要的数据或文件。
对于上述步骤中对于中间表的利用, 可以通过下面的数据语言之间的对比来进行 说明 :
首先是不使用中间表时的 SQL 语言 :
// 工龄>= 10 的员工
update wage set wage.allowance = wage.basesalary*15%
where/* 添 加 工 龄 > = 10 的 限 制 */(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) >= 10/* 添 加 部 门 权 限 限 制 */and wage.deptid in(select distinct power. resource_data_id from sm_power_deptdoc power where power.pk_role in(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ ))
/* 添加人员类别权限限制 */and wage.psnclid in((select distinct power. resource_data_id from sm_power_psncl power where power.pk_role in (select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ )))
//10 >工龄>= 5 的员工
update wage set wage.allowance = wage.basesalary*10%
where/* 添 加 10 > 工 龄 > = 5 的 限 制 */(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) >= 5
and(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) < 10
/* 添 加 部 门 权 限 限 制 */and wage.deptid in((select distinct power. resource_data_id from sm_power_deptdoc power where power.pk_rolein(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ ))
/* 添加人员类别权限限制 */and wage.psnclid in((select distinct power. resource_data_id from sm_power_psncl power where power.pk_role in(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ )))
// 工龄< 5 的员工
update wage set wage.allowance = wage.basesalary*5%
where/* 工 龄 < 5 的 限 制 */(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) < 5
/* 添 加 部 门 权 限 限 制 */and wage.deptid in((select distinct power. resource_data_id from sm_power_deptdoc power where power.pk_role in(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ ))
/* 添加人员类别权限限制 */and wage.psnclid in((select distinct power. resource_data_id from sm_power_psncl power where power.pk_role in (select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ )))
注: wage——工资数据存放表
sm_user——用户表
sm_user_role——用户角色关系表
sm_power_deptdoc——部门权限表
sm_power_psncl——人员类别权限表
而在使用了中间表后, 相应的 SQL 语言则相对简化了很多 :
// 工龄>= 10 的员工
update wage set wage.allowance = wage.basesalary*15%where wage.pk_psn in(select midname.pk_psn from midname where midname. workage >= 10)
//10 >工龄>= 5 的员工
update wage set wage.allowance = wage.basesalary*10%
where wage.pk_psn in(select midname.pk_psn from midname where midname. workage >= 5 and midname.workage < 10)
// 工龄< 5 的员工
update wage set wage.allowance = wage.basesalary*5%
where wage.pk_psn in(select midname.pk_psn from midname where midname. workage < 5)
通过上述 SQL 语言的对比, 可见该转换使用了中间表, 存在以下优点 :
每个员工的工龄都提前计算出来, 可以直接使用。不必重复添加工龄的 SQL 片段 ;
中间表存储了本次算薪的所有员工, 就框定了本次算薪的数据权限, 所以不再添 加数据权限的限制 ;
转换后的 SQL 就使用到 2 个表 ( 表 1 与中间表 ), 所以转换过程简单, 转换后的 SQL 语句也很简单 ;
中间表中数据量小, 仅仅记录本次计算所关心的员工记录。所以 SQL 执行效率特别高。 因此, 有了计算数据准备阶段, 工资计算过程得到明显的优化, 主要体现在以下几 个方面 :
SQL 语句的数据权限约束简化了 : 系统只需要关联中间表就可以表达数据权限约 束, 如果没有中间表, 则需要拼写负责的 SQL 语句, 关联多个数据表 ( 一般包括权限表, 用户 表等 ) ;
提高计算效率 : 首先 SQL 语句简化, 关联表减少, 直接提高了 SQL 语句的计算效率 ; 除此以外, 中间表还记录了许多可以重复使用的中间计算结果, 比如 : 年龄、 工龄、 司龄、 计 税方式等 ; 最重要的一点中间表中数据量小, 仅仅记录本次计算所关心的员工记录, 所以执 行效率高 ;
降低工资计算公式的解析难度, 降低了工资计算系统的复杂度 : 例如 : 工龄是工 资计算常用的信息项。如果没有中间表, 工龄表现为一个复杂的 SQL 片段, 如果有中间表, 工龄就表现为中间表中的一个字段, 从而降低了公式解析的难度。
此外, 还可以通过下面的表 2 中, 是实际测试的结果, 可供参考 :
表2
由表 2 可见, 在使用了本发明提供的计算方案后, 在数据生成的效率上提升了 80%以上, 有效缩短了生成时间。
以上结合附图详细说明了本发明的技术方案, 考虑到现有技术下的数据如工资生 成过程中, 结构化查询语言转换过程复杂, 导致工资计算系统臃肿, 难以维护, 且转换后的 SQL 语句执行效率不高, 因此, 通过本发明提供的技术方案, 可以改善数据处理过程, 提高数 据处理效率, 降低数据计算系统的复杂性。
以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。