公开/公告号CN103077181A
专利类型发明专利
公开/公告日2013-05-01
原文格式PDF
申请/专利权人 深圳市华傲数据技术有限公司;
申请/专利号CN201210471793.6
申请日2012-11-20
分类号G06F17/30;
代理机构
代理人
地址 518057 广东省深圳市高新区中区高新中一道9号软件大厦7楼713室
入库时间 2024-02-19 18:33:18
法律状态公告日
法律状态信息
法律状态
2023-01-24
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F17/30 专利号:ZL2012104717936 变更事项:专利权人 变更前:深圳市华傲数据技术有限公司 变更后:深圳市华傲数据技术有限公司 变更事项:地址 变更前:518057 广东省深圳市高新区中区高新中一道9号软件大厦7楼713室 变更后:518057 广东省深圳市龙华区民治街道北站社区汇德大厦1号楼2203/2204
专利权人的姓名或者名称、地址的变更
2017-02-08
授权
授权
2013-12-18
实质审查的生效 IPC(主分类):G06F17/30 申请日:20121120
实质审查的生效
2013-05-01
公开
公开
一、技术领域
本发明涉及到一种数据库的处理方法,尤其涉及到一种自动生成近似函数依赖规则的方 法。
二、背景技术
随着社交网络、移动计算和传感器等新的渠道和技术不断涌现,大量新型数据应运而生。 我们生活在一个数据成指数式急剧增的时代,常规技术已经难以应对PB(1024TB)级的大规模 数据量。
分析调研机构IDC在其发布的数字宇宙研究报告(Digital Universe Study)——《从混沌 中提取价值》(Extracting Value from Chaos)中指出,全球信息总量每过两年,就会增长一倍。 2011年,全球被创建和被复制的数据总量为1.8ZB。相较2010年同期,这一数据上涨了超过 1ZB。在被创建的信息数据总量中,有75%来自于个人,这包括文字、图片、视频和音乐。 这些个人数据的蔓延增速要比数据的创建速度更加迅猛。不过,在报告中IDC同时也认为, 企业级的应用数据有朝一日将会占据数据总量的80%。
如何从这些爆炸式增长的数据量中,收集、存储和发掘利用海量数据以获取洞见,为世 界经济创造巨大的价值,是人们急需面对的一个难题。麦肯锡全球研究院在它的《海量数据: 创新、竞争和提高生产率的下一个新领域》报告中预测,擅用海量数据产生价值的行业巨头 战胜不擅利用海量数据的对手,已经越来越成为了显性的趋势。
在当前海量数据环境下或者大数据时代,怎样快速的找出数据之间的规则,分析、挖掘 数据的规律,为企业决策者提供建设性的建议,是IT技术人员需要考虑的问题。本发明正是 在此背景之下,针对海量数据,提出的一种新的、适用海量数据环境的一种自动生成近似函 数依赖规则的方法。
三、发明内容
为了实现本发明目的,本发明提供一种自动生成近似函数依赖规则的方法。所述自动生 成近似函数依赖规则的方法包含以下几个步骤:步骤S100:对数据库r的所有列进行扫描分 析,生成候选列R,并构建所述候选列R各列的分区P(R);步骤S200:对所述候选列R按 照一定的顺序排序,采用策略搜索出所有满足条件的规则左部;步骤S300:对所述策略搜索 的搜索空间,采用修剪规则进行修剪,压缩所述策略搜索的搜索空间;步骤S400:对所述压 缩的搜索空间进行计算并生成近似函数依赖规则的右部,同时生成近似函数依赖规则。
应当理解,以上总体说明和以下详细说明都是说明性和实例性的,旨在提供对所要求的 本发明的进一步说明。
四、附图说明
所包含的附图用于提供对本发明的进一步理解,其被并入说明书并构成其一部分,附图 说明了本发明的实施例,并与说明书一起用于理解本发明的原理。
图1是本发明一种自动生成近似函数依赖规则的方法流程图。。
图2是本发明较佳实施例的计算生成近似函数依赖规则的右部的方法流程图。
图3是本发明较佳实施例的计算当前freesetCol的闭集closedCol和候选子集candidates 方法流程图。
图4是本发明较佳实施例的逆序遍历候选子集candidates方法流程图。
图5是本发明较佳实施例的递增策略搜索结构图。
五、具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发 明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用 于限定本发明。
相关概念和定义
函数依赖(functional dependency,简称FD):是指关系数据库中列与列之间的关系, 其含义为一个列的值由其他某些列的值唯一确定,比如:一数据库中,邮政编码是由城市和 街道地址决定的。
考虑数据库r,定义r中所有列的集合为R,函数依赖可描述为:X→A,其中A∈R 对r中的所有数据组合t和u,当对所有的B∈X都有t[B]=u[B]时,t[A]=u[A],则称函数依赖X→A 在r上成立。即如果在数据库r中,X列的值相同时,A的值也相同,则X→A成立。
对于X→A,如果不存在一个X的子集Y,使得Y→A成立,则称函数依赖X→A是最小的, 或称Y→A是冗余的。如果A∈X,则X→A是没有意义的。函数依赖挖掘的中心任务是从数据库 中挖掘出所有非冗余的且有意义的规则。
近似函数依赖:是指函数依赖X→A近似成立。比如一个人姓名中的名通常决定了性别。 近似函数依赖评价标准有多种,最常用的是依据从数据库r最少删除多少行后X→A成立。我 们在此定义近似函数依赖X→A的误差为需要最少删除的行数比上数据总行数,即
分区(Partition):通常使用分区来定义和计算函数依赖关系,考虑两个元组t和u,对 于列集X,如果对所有的B∈X都有t[B]=u[B],则称t和u关于X是相等的。通过将相同的元 组存贮在一个块c内构成X的分区:P(X)={c1,c2,c3...cn}。
如考虑以下表格中的3列数据:
表一.分区数据源表
可以求出:
P(A)={{1,2,3},{4,5,6},{7,8,9}}
P(B)={{1},{2,3,4,5},{6,7},{8,9}}
P(C)={{1,2,3,7,8,9},{4,5,6}}
P(AB)={{1},{2,3},{4,5},{6},{7},{8,9}}
P(AC)={{1,2,3},{4,5,6},{7,8,9}}等等。
根据函数依赖定义我们有:函数依赖X→A成立当且仅当P(X)=P(X∪A)。
根据分区,近似函数依赖的误差可定义为:
超集、子集:对于两个列集X,Y,如果满足则称Y是X的超集,X是Y的子集。
闭集(closedset):一个列集X是闭集当且仅当不存在一个X的超集Y使得P(Y)=P(X)。
一个列集是闭集也称这个列集是闭的。任一列集X对应的闭集用C(X)表示:
C(X)=X∪{A|A∈R\X,P(X∪A)=P(X)}。
δ-闭集:一个项集X是δ闭集当且仅当不存在一个X的超集Y使得其 e(X→A)<δ,A∈Y\X。X的δ闭集用C(X,δ)表示。通常δ是个接近1的数。
freeset:一个项集X是freeset当且仅当不存在一个X的子集Y使得P(Y)=P(X)。
按freeset的定义,我们可以推导出:
性质1:任何一个freeset的子集也一定是freeset;
性质2:任何一个非freeset的超集也是非freeset;
δ-freeset:一个项集X是δ-freeset当且仅当不存在一个X的子集Y使得 e(Y→A)<δ,A∈X\Y。
自动生成近似函数依赖规则
依据上述概念和定义,给定最小置信度c,本发明提供一种自动生成近似函数依赖规则 的方法,所述方法将从数据库r中挖掘出所有非冗余的近似函数依赖规则X→A,满足 e(X→A)<δ,其中X为δ-freeset,A∈C(X,δ)\X,δ=1-c。如图1所示,一种自动生成近似函 数依赖规则的方法,包含以下几个步骤:
步骤S100:对数据库r的所有列进行扫描分析,生成候选列R,并构建所述候选列R各 列的分区P(R);
步骤S200:对所述候选列R按照一定的顺序排序,采用策略搜索出所有满足条件的规则 左部;所述的一定顺序排序可为候选列R在数据库中顺序排序;所述的策略搜索可为逆序递 增搜索。
为了说明上述递增的策略搜索的方式,以一种树型结构来举例说明我们的列搜索顺序, 如考虑有ABCD四列。我们将从空集出发,依次访问D,C,CD,B,BD,BC...,即按从右到左、 从上到下的顺序搜索。如图5本发明较佳实施例的递增策略搜索结构图所示。
步骤S300:对所述策略搜索的搜索空间,采用修剪规则进行修剪,压缩所述策略搜索的 搜索空间;所述的修剪规则可包含2种修剪规则。
简单的逆序递增搜索策略计算量将会相当的大,计算量与列的数量成指数关系,我们可 采用一定的策略来压缩搜索空间,即对搜索树进行剪枝。我们定义了2种修剪规则,如下:
1.freeset:按定义,规则的左部必须为freeset,若存在一规则X→A,则(X∪A)为非freeset, 而根据freeset的性质2,任何非freeset的超集都是非freeset,故(X∪A)及其下面的树枝都可 以剪掉。如存在一规则B→A,则AB为非freeset,故AB及其所有超集都可以剪掉,如ABC, ABD,ABCD等。
2.冗余规则:若存在一规则X→A,X的所有超集下的Y枝点都是冗余的。如存在一规则 B→D,则B的超集下的所有D枝点都可以剪掉,如ABD,BCD,ABCD等。
步骤S400:对所述压缩的搜索空间进行计算并生成近似函数依赖规则的右部,同时生成 近似函数依赖规则。
计算生成近似函数依赖规则的右部的方法
步骤S401:初始化规则左部freesetCol,闭集closureCol,以及所述freesetCol对应的分 区P(freesetCol);
步骤S402:根据修剪规则进行修剪,将剪去的列更新到closureCol,已修剪的列更新到 freesetCol;所述的修剪规则可包含2种修剪规则。我们定义了2种修剪规则,如下:
1.freeset:按定义,规则的左部必须为freeset,若存在一规则X→A,则(X∪A)为非freeset, 而根据freeset的性质2,任何非freeset的超集都是非freeset,故(X∪A)及其下面的树枝都可 以剪掉。如存在一规则B→A,则AB为非freeset,故AB及其所有超集都可以剪掉,如ABC, ABD,ABCD等。
2.冗余规则:若存在一规则X→A,X的所有超集下的Y枝点都是冗余的。如存在一规 则B→D,则B的超集下的所有D枝点都可以剪掉,如ABD,BCD,ABCD等。
步骤S403:若所述freesetCol为非freeset,转到步骤S408;
步骤S404:根据所述closureCol计算候选列集availableCol;
步骤S405:在所述候选列集availableCol中,计算当前freesetCol的闭集closedCol和候 选子集candidates;
步骤S406:若所述closedCol为非空,则对所述closedCol中的每一个列col,生成近似 函数依赖规则freesetCol→col并保存;
步骤S407:逆序遍历所述候选子集candidates,并转到步骤S401;
步骤S408:结束。
计算当前freesetCol的闭集closedCol和候选子集candidates的方法
步骤S4051:逆序遍历所述availableCol的列col是否结束,倘若结束则直接转到步骤 S4057;
步骤S4052:计算P(freesetCol∪col),并同时计算e(freesetCol→col);
步骤S4053:判断e(freesetCol→col)<(1-c);
步骤S4054:若e(freesetCol→col)<(1-c),将col添加到closedCol,更新所述closureCol, 并转到步骤S4051;
步骤S4055:判断所述col大于所述freesetCol中最大的列;
步骤S4056:若所述col大于所述freesetCol中最大的列,将col,P(freesetCol∪col)信 息保存到所述候选集candidates,并转到步骤S4051;若所述col小于所述freesetCol中最大的 列,则直接转到步骤S4051;
步骤S4057:结束。
逆序遍历候选子集candidates的方法
步骤S4071:逆序遍历所述候选子集candidates的列col是否结束;
步骤S4072:未结束,则将col更新到所述freesetCol和closureCol;
步骤S4073:从所述候选子集candidates中取出col对应于的分区P(freesetCol∪col),并 设置为当前分区:P(freesetCol)=P(freesetCol∪col),转到步骤S401;
步骤S4074:遍历下一col前,回退freesetCol和closureCol到遍历前的状态;
步骤S4075:结束。
机译: 规则信息自动生成系统,规则信息自动生成方法,规则信息自动生成程序
机译: 自动生成规则表达匹配文本规则的规则表达的方法
机译: 计算机网络中基于规则和蠕虫的检测规则的自动生成方法