一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库查询重写规则自动生成方法及系统

2022-07-16 12:56:27 来源:中国专利 TAG:


1.本发明涉及关系型数据系统查询优化技术领域,具体地,涉及一种数据库查询重写规则自动生成方法及系统,尤其是一种基于编译器超优化方法的数据库查询重写规则自动生成方法及系统。


背景技术:

2.随着互联网应用的蓬勃发展,数据库被运用到互联网应用的后端开发中。对于许多互联网应用来说,对数据库的查询延迟高低是关乎用户使用体验的重要因素之一,对查询进行优化也是应用开发工作的重要组成部分。查询重写是查询优化的重要步骤之一,它使用数据库提供的重写规则将原查询转换成语义上等价的一条新查询。查询重写规则指定了查询之间的等价关系,有效的重写规则能够将查询改写为更高效、延迟更低的查询。因此,数据库开发者一直希望寻找更多有效的查询重写规则,以期增加查询重写的机会,增强数据库对查询优化的能力。
3.现有关系型数据库中的查询重写规则通常由数据库专家根据经验手动制定。然而,由于查询语言特性和语义的多样性,使得查询重写规则的制定和正确性验证变得十分困难,手动制定的重写规则的积累速度非常缓慢。同时,随着互联网应用的进一步发展,对象关系映射(object-relational mapping,orm)框架被广泛使用。orm框架让开发者从手动构建结构化查询语言(structured query language,sql)查询的方法中解放出来,通过面向对象编程语言接口生成查询。但这也让生成的查询变得结构复杂、违背直觉,查询无法被现有的重写规则所匹配并重写,导致查询变得低效。
4.编译器超优化方法,是通过穷举并搜索指令序列的方法,将一个机器指令序列替换为另一个与之等效但执行速度更快的指令序列,从而达到优化指令执行的目的。目前已经存在相关工作,利用编译器超优化的思想,寻找重写深度神经网络的规则。然而,目前这种超优化方法的使用场景并没有涉及到数据库查询优化领域。超优化方法的穷举策略应用在数据库查询及重写规则之上较为复杂。由于查询重写规则包含了原查询和新查询上各个参数之间的约束关系,需要对查询进行合适的建模、构建合适的启发式算法,来避免穷举这些约束关系所引起的数目上的指数式爆炸。
5.目前,还没有一种基于编译器超优化方法的,实现查询重写规则的自动生成与验证的工作。因此,先前的工作对于查询优化规则生成的研究并不全面,还存在一定的空白。
6.专利文献cn105718593b公开了一种数据库查询优化方法及系统,该方法包括:将查询语句字符串用查询内部表示结构表示;对所述查询内部表示进行特性分析,生成在语义上等价的查询内部表示;对所述在语义上等价的查询内部表示进行语法分析,生成语义上的数据库内部表示;将语义上的数据库内部表示进行查询优化处理,生成最终的执行计划;对最终的执行计划进行解释和执行,生成查询结果或错误信息。但该方法并未涉及查询优化规则生成和验证的技术问题。


技术实现要素:

7.针对现有技术中的缺陷,本发明的目的是提供一种数据库查询重写规则自动生成方法及系统。
8.根据本发明提供的一种数据库查询重写规则自动生成方法,包括:
9.步骤1:将数据库的查询计划和查询重写规则建模为可枚举的形式;
10.步骤2:对每对查询计划模板之间的约束进行枚举,生成第一查询重写规则。
11.优选地,步骤2,包括:
12.步骤201:对查询计划模板进行枚举,任选两个查询计划模板,得到至少一个模板对;
13.步骤202:对所有模板对的约束进行枚举,得到约束集合;
14.步骤203:对约束集合进行弱化处理,生成第二查询重写规则;
15.步骤204:对第二查询重写规则进行去重处理,得到第一查询重写规则。
16.优选地,步骤201,包括:
17.步骤2011:枚举所有合法的查询计划模板的树结构,查询计划模板的树结构拥有唯一的根节点;
18.步骤2012:对每一个树结构,使用排列组合的方式为树的每个节点分配一种非输入节点的节点类型,构建出具体的查询计划模板;
19.步骤2013:对每一个树结构,在每一个叶子节点上添加输入节点,输入节点的数量等于叶子节点的子节点数;
20.步骤2014:任选两个查询计划模板,得到至少一个模板对。
21.优选地,查询重写规则被建模为一个三元组,包括:原查询计划模板、目标查询计划模板和约束集合。
22.优选地,步骤202,包括:
23.步骤2021:对任意一个模板对,将其中一个查询计划模板作为原查询计划模板,另一个查询计划模板作为目标查询计划模板,并枚举出两个查询计划模板上的符号之间所有可能的约束关系,形成约束集合。
24.根据本发明提供的一种数据库查询重写规则自动生成系统,包括:
25.模块m1:将数据库的查询计划和查询重写规则建模为可枚举的形式;
26.模块m2:对每对查询计划模板之间的约束进行枚举,生成第一查询重写规则。
27.优选地,模块m2,包括:
28.子模块m201:对查询计划模板进行枚举,任选两个查询计划模板,得到至少一个模板对;
29.子模块m202:对所有模板对的约束进行枚举,得到约束集合;
30.子模块m203:对约束集合进行弱化处理,生成第二查询重写规则;
31.子模块m204:对第二查询重写规则进行去重处理,得到第一查询重写规则。
32.优选地,子模块m201,包括:
33.单元d2011:枚举所有合法的查询计划模板的树结构,查询计划模板的树结构拥有唯一的根节点;
34.单元d2012:对每一个树结构,使用排列组合的方式为树的每个节点分配一种非输
入节点的节点类型,构建出具体的查询计划模板;
35.单元d2013:对每一个树结构,在每一个叶子节点上添加输入节点,输入节点的数量等于叶子节点的子节点数;
36.单元d2014:任选两个查询计划模板,得到至少一个模板对。
37.优选地,查询重写规则被建模为一个三元组,包括:原查询计划模板、目标查询计划模板和约束集合。
38.优选地,子模块m202,包括:
39.单元d2021:对任意一个模板对,将其中一个查询计划模板作为原查询计划模板,另一个查询计划模板作为目标查询计划模板,并枚举出两个查询计划模板上的符号之间所有可能的约束关系,形成约束集合。
40.与现有技术相比,本发明具有如下的有益效果:
41.1、本发明实现了查询重写规则的自动化生成,而无需手动制定重写规则。
42.2、本发明将编译器超优化方法应用到查询重写规则的自动生成,对查询计划和查询重写规则建模为可枚举的形式,引入编译器超优化中的枚举方法,能够在较短运行时间内,生成大量重写规则。辅之以启发式算法,过滤无用重写规则,确保最终生成的重写规则有助于提升重写后查询的性能。
43.3、本发明通过枚举的方法,生成现有数据库中不存在的新重写规则,并且部分规则能够成功匹配并重写更多由对象关系映射等框架生成的复杂查询,提升了查询重写能力和互联网应用下数据库查询的性能。
附图说明
44.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
45.图1为本发明的一个流程示意图;
46.图2为本发明的另一个流程示意图。
具体实施方式
47.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
48.图1为本发明的一个流程示意图,如图1所示,本发明提供了一种数据库查询重写规则自动生成方法,包括如下步骤:
49.步骤1:将数据库的查询计划和查询重写规则建模为可枚举的形式。
50.其中,查询重写规则被建模为一个三元组,包括:原查询计划模板、目标查询计划模板和约束集合。
51.具体地,一个查询重写规则被建模为一个三元组:《原查询计划模板q0,目标查询计划模板q1,约束集合c>。查询计划是由关系代数运算符节点组成的树结构,数据库自底向上执行每一个节点上的运算符,每个节点将其子节点的输出结果作为自己的输入,根节
点的输出即为查询的输出结果集。而查询计划模板是指查询计划中运算符节点的参数被符号化的结果。
52.本发明将查询计划模板进行如下建模。
53.首先,运算符节点的参数被符号化为以下符号类型之一:
54.关系符号:一个关系符号rel,符号化一个查询计划模板的输入关系或者输入表;属性列表符号:一个属性列表符号attrs,符号化一个列属性的序列。特别地,一个关系符号rel也对应一个属性列表符号attrs
rel
表示这个关系中的所有列属性;谓词符号:一个谓词符号pred,符号化查询中的一个谓词表达式。
55.其次,本发明定义以下类型的运算符节点,其中下标表示该节点包含的符号。
56.input
rel
:输入节点,表示一个初始的输入关系rel,子节点数为0;projection
attrs
:投影节点,将输入投影到attrs指定的属性列上,子节点数为1;selection
pred.attrs
:过滤节点,过滤其输入中不满足谓词pred的元组,每个元组将attrs中的属性列作为该元组对谓词的输入,子节点数为1;in-sub selection
attrs
:形如“attrs in(...)”的关联子查询过滤,属性列attrs是左子节点的列属性,右子节点代表子查询。过滤左子节点输出中,在属性列表attrs上的值不在子查询输出中的元组,子节点数为2;表连接节点,将两个子节点的输出进行内/左/右连接操作,连接谓词为attrs
l
=attrsr,子节点数为2;deduplication:去重节点,去除输入中的重复元组,子节点数为1。
57.步骤2:对每对查询计划模板之间的约束进行枚举,生成第一查询重写规则。
58.其中,约束是一个判定谓词,用于指定原查询计划模板和目标查询计划模板中符号之间的关系。一个查询重写规则表示,当满足约束集合中的所有约束时,原查询计划模板和目标查询计划模板在语义上等价。
59.具体地,本发明定义如下类型的约束:
60.releq(rel1,rel2):表示两个输入关系rel1和rel2相等,即具有相同的元组;attrseq(attrs1,attrs2):表示两个属性列表相等,即具有相同的属性序列;predeq(pred1,pred2):表示两个谓词相等价,即subattrs(attrs1,attrs2):表示attrs1中的任何属性也属于attrs2中,即attrs1包含的属性列是attrs2的子集;refattrs(rel1,attrs1,rel2,attrs2):表示关系rel1中的属性列attrs1引用关系rel2中的属性列attrs2,即任何在关系rel1中投影在attrs1上的元组都会在关系rel2中投影在attrs2上的元组集中;unique(rel,attrs):表示任何在关系rel中投影在attrs上的元组都是唯一的;notnull(rel,attrs):表示任何在关系rel中投影在attrs上的元组都是非null的。
61.在一种可选的实施方式中,步骤2,包括:步骤201:对查询计划模板进行枚举,任选两个查询计划模板,得到至少一个模板对;步骤202:对所有模板对的约束进行枚举,得到约束集合;步骤203:对约束集合进行弱化处理,生成第二查询重写规则;步骤204:对第二查询重写规则进行去重处理,得到第一查询重写规则。
62.其中,步骤201,包括:步骤2011:枚举所有合法的查询计划模板的树结构,查询计划模板的树结构拥有唯一的根节点;步骤2012:对每一个树结构,使用排列组合的方式为树的每个节点分配一种非输入节点的节点类型,构建出具体的查询计划模板;步骤2013:对每
一个树结构,在每一个叶子节点上添加输入节点,输入节点的数量等于叶子节点的子节点数;步骤2014:任选两个查询计划模板,得到至少一个模板对。
63.进一步地,步骤202,包括:步骤2021:对任意一个模板对,将其中一个查询计划模板作为原查询计划模板,另一个查询计划模板作为目标查询计划模板,并枚举出两个查询计划模板上的符号之间所有可能的约束关系,形成约束集合。
64.下面对步骤201到步骤204进行详细的说明。
65.首先,枚举查询计划模板,即枚举所有合法的查询计划模板的树结构,并枚举每棵树结构上各个运算符节点的类型。包括:枚举所有合法的查询计划模板的树结构,其拥有唯一的根节点。树中的每个节点为空节点,即没有对其分配具体的节点类型;对每一个树结构,使用排列组合的方式为树的每个节点分配一种非输入节点的节点类型,构建出具体的查询计划模板;对每一个树结构,在每一个叶子节点上添加输入节点,输入节点的数量等于该节点的子节点数。
66.其中,限定一个运行时参数n,n为整数,将构建出来的树的节点数量限定在n及以下,在确保查询计划模板多样性的前提下,防止枚举出的查询计划模板数量随着节点数量呈指数型上升,导致程序运行时间过长。由于在所有非输入节点类型中节点的子节点数为1或2,因此用两种类型的节点构建树结构:第一种类型有一个子节点,第二种类型有两个子节点。
67.然后,枚举约束,即任选两个查询计划模板匹配可以形成一对模板,列举出所有模板对。对任意一个模板对,将一方作为原查询计划模板q0,一方作为目标查询计划模板q1,并枚举出两个模板上的符号之间所有可能的约束关系,形成约束集合c
*
,并生成一个三元组表示《q0,q1,c
*
》。
68.在本发明中限制目标查询计划模板q1的运算符节点数量不应比q0多。该限制表明生成出的重写规则不会使原查询变为更复杂的查询,因此更有可能提高重写后查询的性能。
69.再然后,弱化约束集合,生成第二查询重写规则,即为弱化重写规则的应用条件,使其能够匹配更多实际查询、具有更多重写机会,需要对约束集合c
*
进行“弱化”操作,寻找满足“等价最弱”性质的约束集合,生成第二查询重写规则。
70.其中,“弱化”约束集合c
*
,即寻找是否存在c
*
的某个真子集c

,使得仅满足c

中的约束便能保证原查询计划模板q0与目标查询计划模板q1在语义上等价,同时从集合c

中移除任意一个约束后的约束集合都无法保证两个查询计划模板的等价关系。具体以下五个步骤:步骤s1:初始化约束集合c

c*;步骤s2:对约束集合c中的任意一个约束c,尝试移除该约束,验证得到的子集c
′←
c\{c}能否满足q0与q1的等价性;步骤s3:若移除任意约束c得到的子集c

都无法满足q0与q1的等价性,则停止“弱化”操作,原集合c满足“等价最弱”性质,将其加入结果集s中;步骤s4:若移除某个约束c得到的约束集合c

仍能满足q0与q1的等价性,则对所有这样的约束c,令c

c\{c},递归执行步骤s2;步骤s5:将结果集s中的每个约束集合与q0、q1合成形成三元组,从而生成一个或多个正确的第二查询重写规则。
71.具体地,对于证明一对查询计划模板在一个约束集合之下等价的问题,本发明使用spes(spes可参考论文:spes:a two-stage query equivalence verifier)查询等价性求解器,其基于可满足性模理论(satisfiabilitymodulo theories,smt)进行验证。
72.在本发明中为减少约束子集的搜索空间和降低算法开销,默认直接跳过满足以下条件之一的约束集合,不会判断两个查询计划模板在该约束集合下的等价性,即认为该集合是不合法的或必定不是“等价最弱”的,而继续在该集合中尝试删除约束,进行进一步“弱化”操作。具体的,包括以下四个方面。
73.第一方面:约束集合中存在一个约束,其涉及的符号都来自于目标查询计划模板q1,其对于证明两个查询计划模板等价没有作用。
74.第二方面:约束集合不是一个闭包,即约束集合内的一个或多个约束能推导出不存在于该约束集合内的其他约束。
75.第三方面:约束集合中存在相互矛盾的约束,导致查询计划模板不合法。例如一个属性列表符号attrs同时来源于两个不同的输入关系rel1和rel2,即该约束集合中同时存在约束subattrs(attrs1,attrs
rel1
)和subattrs(attrs1,attrs
rel2
)。
76.第四方面,存在约束集合的一个子集,使得两个查询计划模板在该子集的约束下已经等价;或存在约束集合的一个超集,使得两个查询计划模板在该超集的约束下已经不等价。
77.最后,对所有生成出的正确的第二查询重写规则,去除其中冗余的重写规则,得到最终无冗余的规则集合,即第一查询重写规则。
78.具体地,对于一个第二查询重写规则,若对于任意可以被该规则重写的查询,其重写结果与其他一个或多个规则连续应用到该查询后得到的重写结果相同,那么该规则是一个冗余的规则,可以将其去除。
79.实施例一
80.图2为本发明的另一个流程示意图,如图2所示,包括:步骤p1:枚举查询计划模板,枚举所有合法的查询计划模板的树结构,并枚举每棵树结构上各个节点的节点类型,其中,节点数n=1、2、

、n,n为整数,节点类型包括:过滤节点selection
pred.attrs
,在图2中简写为sel、投影节点projection
attrs
,简写为proj、表连接节点简写为join、in-sub selection
attrs
,简写为in-sub和输入节点input
rel
,简写为input。其中,参与枚举的节点类型还包括:去重节点deduplication,简写为dedup。
81.步骤p2:任选两个查询计划模板匹配可以形成一对模板,列举出所有模板对。对任意一个模板对,将一方作为原查询计划模板q0,一方作为目标查询计划模板q1,并枚举出两个模板上的符号之间所有可能的约束关系,形成约束集合c*,并生成一个三元组表示《q0,q1,c
*
》。以其中一个模板对为例,枚举所有约束,枚举出所有约束的集合如下:如图2所示,包括:投影节点projection
a2
和projection
a3
、innerjoin
a0,a1
,a1和输入节点input
r0
、input
r1
和input
r2
,原查询计划模板q0为projection
a2
(innerjoin
a0,a1
(input
r0
,input
r1
)),目标查询计划模板q1为projection
a3
(input
r2
),q0与q1所有可能的约束集合c
*
:c
*
={releq(r0,r1),releq(r0,r2),releq(r1,r2)}∪{attrseq(a0,a1),attrseq(a0,a2),attrseq(a0,a3)}∪{attrseq(a1,a2),attrseq(a2,a3),attrseq(a1,a3)}∪{subattrs(a0,r0),subattrs(a1,r1),subattrs(a2,r0),subattrs(a2,r1)}∪{unique(r0,a0),unique(r1,a1),unique(r0,a2),unique(r1,a2)}∪{notnull(r0,a0),notnull(r1,a1),notnull(r0,a2),notnull(r1,a2)}∪{refattrs(r0,a0,r1,a1),refattrs(r1,a1,r0,a0)}。
82.其中,由于原查询计划模板q0的操作数比目标查询计划模板q1的操作数多,因此
不能将q1作为原模板、q1作为目标模板来进行约束枚举。
83.步骤p3:弱化约束集,生成第二查询重写规则:对约束集合c
*
进行“弱化”操作,寻找满足“等价最弱”性质的约束集合。从约束集合c
*
中尝试删除任意一个约束,当选择删除约束releq(r0,r1)时,得到子集c
*
\{releq(r0,r1)},该集合能够满足两个查询计划模板等价性;从集合c
*
\{releq(r0,r1)}中尝试删除任意一个约束,当选择删除约束releq(r1,r2)时,得到子集c
*
\{releq(r0,r1),releq(r0,r2)},该集合也能够满足等价性;
……
;当选择从集合c
*
中不断地依次删除集合c
dropped
中的每个约束时,每一步删除一个约束所得到的子集或者能满足两个查询计划模板等价性,或者判断为不合法的,或者判断为必定不是“等价最弱”的。在这样的“弱化”操作下,得到约束集合c
*
\c
dropped
,记为c

。验证c

依然能够满足两个查询计划模板等价性,并继续尝试删除c

中的任意一个约束,此时发现任意删除一个约束c,得到的集合c

\{c}都无法满足两个查询计划等价性了,因此c

即为一个“等价最弱”的约束集合。最后,经过整个“弱化”过程,得到c
*
的唯一一个“等价最弱”子集c

,从而得到一个重写规则《q0,q1,c

》,其能够将形如“select t0.c2 from t0 inner join t1 on t0.c0=t1.c1”的sql查询语句改写为“select t0.c2 from t0”的形式。进一步地,得到r=r∪{《q0,q1,c

》}。
84.其中,c
dropped
和c

可以分别用公式(1)和公式(2)表示。
85.c
dropped
={releq(r0,r1),releq(r1,r2)}∪{attrseq(a0,a1),attrseq(a0,a2),attrseq(a0,a3)}∪{attrseq(a1,a2),attrseq(a1,a3)}∪{subattrs(a2,r1)}∪{unique(r0,a0),unique(r0,a2),unique(r1,a2)}∪{notnull(r1,a1),notnull(r0,a2),notnull(r1,a2)}∪{refattrs(r0,a0,r1,a6)};
ꢀꢀꢀ
(1)
86.c

=c
*
\c
dropped
={releq(r0,r2),attrseq(a2,a3)}∪{subattrs(a0,r0),subattrs(a1,r1),subattrs(a2,r0)}∪{unique(r1,a1),notnull(r0,a0),refattrs(r0,a0,r1,a1)}。
ꢀꢀꢀ
(2)
87.步骤p4:对生成出的所有正确第二查询重写规则的集合r,去除其中冗余的重写规则,得到无冗余规则的重写规则集合r

=dropredundant(r),即第一查询重写规则。dropredundant(
·
)函数输入一个重写规则集合r,输出集合r的一个子集r’,r’中的元素都是非冗余的重写规则。其输入集合r,是通过对所有查询计划模板对执行步骤p2和p3之后收集到的所有第二查询重写规则的集合。
88.具体地,为判断一个规则r∈r是否为冗余的规则,首先由规则r生成一个相应的sql查询q,该查询必须是规则r能重写的最小sql模式,即任何能被规则r重写的查询都包含查询q的sql模式。对于该查询q,分别通过规则集合r和集合r{r}对其重写,若重写后的结果一致,则该规则r为规则集合r中的一条冗余规则,反之则不是冗余规则。
89.进一步地,在进行查询重写规则的自动生成时,所有生成的数据均可存于内存中,生成的重写规则可被转化成纯文本形式存于文件,也可通过一定工程上的实现,将生成的新的重写规则实现至现有数据库系统(如mysql,postgresql等)中。
90.本发明提供了一种基于编译器超优化方法的数据库查询重写规则自动生成方法。本发明对数据库查询计划和查询重写规则建模为可枚举的形式,以编译器超优化的指令序列枚举方法为基础,对查询计划模板及每对模板之间的约束进行枚举,自动发现并生成正确的查询重写规则。本发明可生成现有数据库系统中不存在的新重写规则,能够匹配并重
写更多互联网应用中由orm等框架生成的复杂查询,提升数据库查询重写能力和互联网应用下数据库查询的性能。
91.本发明还提供了一种数据库查询重写规则自动生成系统,包括如下模块:
92.模块m1:将数据库的查询计划和查询重写规则建模为可枚举的形式。
93.在本发明中查询重写规则被建模为一个三元组,包括:原查询计划模板、目标查询计划模板和约束集合。
94.模块m2:对每对查询计划模板之间的约束进行枚举,生成第一查询重写规则。
95.其中,模块m2,包括:子模块m201:对查询计划模板进行枚举,任选两个查询计划模板,得到至少一个模板对;子模块m202:对所有模板对的约束进行枚举,得到约束集合;子模块m203:对约束集合进行弱化处理,生成第二查询重写规则;子模块m204:对第二查询重写规则进行去重处理,得到第一查询重写规则。
96.具体地,子模块m201,包括:单元d2011:枚举所有合法的查询计划模板的树结构,查询计划模板的树结构拥有唯一的根节点;单元d2012:对每一个树结构,使用排列组合的方式为树的每个节点分配一种非输入节点的节点类型,构建出具体的查询计划模板;单元d2013:对每一个树结构,在每一个叶子节点上添加输入节点,输入节点的数量等于叶子节点的子节点数;单元d2014:任选两个查询计划模板,得到至少一个模板对。
97.具体地,子模块m202,包括:单元d2021:对任意一个模板对,将其中一个查询计划模板作为原查询计划模板,另一个查询计划模板作为目标查询计划模板,并枚举出两个查询计划模板上的符号之间所有可能的约束关系,形成约束集合。
98.与现有技术相比,本发明具有如下的有益效果:
99.1、本发明实现了查询重写规则的自动化生成,而无需手动制定重写规则。
100.2、本发明将编译器超优化方法应用到查询重写规则的自动生成,对查询计划和查询重写规则建模为可枚举的形式,引入编译器超优化中的枚举方法,能够在较短运行时间内,生成大量重写规则。辅之以启发式算法,过滤无用重写规则,确保最终生成的重写规则有助于提升重写后查询的性能。
101.3、本发明通过枚举的方法,生成现有数据库中不存在的新重写规则,并且部分规则能够成功匹配并重写更多由对象关系映射等框架生成的复杂查询,提升了查询重写能力和互联网应用下数据库查询的性能。
102.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法子模块m进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
103.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献