智能卡中数据库的查询方法及装置的制作方法

文档序号:6615744阅读:179来源:国知局

专利名称::智能卡中数据库的查询方法及装置的制作方法
技术领域
:本发明涉及智能卡技术,尤其涉及一种在智能卡数据库中的查询方法及装置。
背景技术
:随着智能卡技术的不断发展,智能卡的硬件工艺水平也不断的增长,例如以CPU为例,智能卡的CPU从智能卡技术发展初期的8位,发展到广为使用的16位。智能卡的存储容量也由最初的几十字节,发展到现在的几十K、上百K字节。在智能卡硬件工艺发展的同时,智能卡的片上操作系统也不断的成熟与完善,这就使得应用于传统计算机上的数据库技术,延伸到了智能卡的片上操作系统中,这也为更丰富的移动数据服务提供了一个崭新的实现平台。凄t据查询技术是数据库的核心技术之一。对于智能卡的数据库查询技术而言,位图索引(BitmapIndex,BMI)技术是应用最为广泛的一种。传统的基于位图索引技术的数据库查询方法包括如下步骤1)将用户输入的数据库查询技术转化成复杂的逻辑运算表达式;2)利用正则表达式,对所述逻辑运算表达式进行逻辑优先级处理,以确定各BMI之间的相关性,及优先级,得到多个BMI位串;3)将目标数据表内同一记录集上生成的多个BMI位串,按照经逻辑优先级处理后的逻辑运算表达式进行相应的逻辑位运算,如与运算,或运算,或者是非运算操作等,得到最终的查询结果,显示给用户。但是,现有技术中基于位图索引技术进行数据库查询的过程中,存在如下问题1)在步骤(2)中,利用正则表达式对逻辑运算表达式进行相应处理的时候,由于正则表达式的处理过于复杂,因此,利用上述的算法,耗用了智能卡操作系统中大量的CPU资源和内存资源,从而降低了查询的速度;2)在步骤(3)中,在对BMI位串进行逻辑位运算的时候,需要在智能卡内,保存每步逻辑位运算的计算结果,并将保存的结果再进行最后的运算,才能得到最终的查询结果。因此,在保存每步逻辑位运算的计算结果的时候,占用了智能卡的内存空间,浪费了智能卡的资源。
发明内容本发明提供了一种智能卡中数据库的查询方法及装置,利用本发明所述的方法及装置,能够提高查询速度。本发明一种智能卡中数据库的查询方法采用以下技术方案一种智能卡中数据库的查询方法,包括如下步骤对查询条件进行分类;将分类结果进行排序,得到查询条件序列;根据所述查询条件序列,生成操作数;按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。其中,所述对查询条件进行分类的步骤具体为按照"可能包含的查询条件"、"必须包含的查询条件"、"不能包含的查询条件"将所述查询条件进行分类。其中,所述对分类结果进行排序,得到查询条件序列的步骤具体为定义"不能包含的查询条件"分类中,各查询条件所对应的逻辑位操作类型为"非"操作;定义"可能包含的查询条件"分类中,各查询条件之间的逻辑位操作类型为"或"操作;定义"必须包含的查询条件"以及"不能包含的查询条件,,分类中,各查询条件之间的逻辑位操作类型为"与"操作;定义"可能包含的查询条件"、"必须包含的查询条件,,以及"不能包含的查询条件"三个分类之间的逻辑位操作类型为"与,,操作;排列与所述三种逻辑位操作类型相对应的三类查询条件,得到查询条件序列。其中,所述排列与所述三种逻辑位操作类型相对应的三类查询条件的步骤具体为按照进行"或"、"与"、"非"逻辑位操作的顺序,排列分别与所述三种逻辑位纟乘作类型相对应的分类,得到查询条件序列("可能包含的查询条件"、"必须包含的查询条件"、"不能包含的查询条件,,)。其中,根据所述查询条件序列,生成操作数的步骤具体为在所述查询条件序列中,根据是否为定义的"不能包含的查询条件"分类中各查询条件所对应的逻辑位4喿作类型,生成第一操作数;在所述查询条件序列中,根据每两个查询条件之间的逻辑位运算关系,生成第二操作数。其中,所述第一操作数和第二操作数的位数,与智能卡操作系统中CPU的位数相同;若所述第一操作数或第二操作数小于所述智能卡操作系统中CPU的位数,不足的位用0补足。其中,所述生成第一操作数的步骤为在所述查询条件序列中,用l表示进行"非"逻辑位运算的查询条件;用0表示进行其他类型逻辑位运算的查询条件;所述生成第二操作数的步骤为在所述查询条件序列中,用"1"表示每两个查询条件之间进行的"或"运算,用"0"表示每两个查询条件之间进行的"与"运算。其中,所述按照所述操作数确定的运算规则,对所述查询条件序列进行运算的步骤具体为按照第一操作数确定的运算规则,对"不能包含的查询条件"分类的各查询条件进行"非"运算,得到"不能包含的查询条件"分类中各查询条件的运算结果;按照第二操作数确定的运算规则,对"可能包含的查询条件"分类的各查询条件进行"或"运算,得到"可能包含的查询条件"分类的运算结果;并与"必须包含的查询条件,,分类的各查询条件,以及按照第一操作数运算获得的"不能包含的查询条件"分类中各查询条件的运算结果进行"与"运算。本发明所述的智能卡中数据库的查询方法,首先对用户输入的查询条件进行分类,得到查询条件序列,并根据在查询条件序列中各查询条件或各查询条件之间的逻辑位操作类型,得到第一操作数和第二操作数。通过得到的第一操作数和第二操作数所定义的运算规则,对查询条件序列进行计算,最终得到查询结果。这样,就避免了现有技术数据库查询技术中需要利用正则表达式进行的复杂运算。因此,本发明的方法大大提高了CPU的处理速度,加快了查询的速度。本发明智能卡数据库的查询装置采用以下技术方案一种智能卡数据库的查询装置,包括分类单元,用于对查询条件进行分类;序列生成单元,用于对分类结果进行排序,得到查询条件序列;操作数生成单元,用于根据所述查询条件序列,生成操作数;运算单元,用于按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。其中,所述序列生成单元包括第一操作类型定义模块,用于定义"不能包含的查询条件"分类中,各查询条件所对应的逻辑位操作类型为"非"操作;第二操作类型定义模块,用于定义"可能包含的查询条件"分类中,各查询条件之间的逻辑位操作类型为"或"操作;第三搡作类型定义模块,用于定义"必须包含的查询条件"以及"不能包含的查询条件"分类中,各查询条件之间的逻辑位操作类型为"与"操作;第四操作类型定义模块,用于定义"可能包含的查询条件"、"必须包含的查询条件"以及"不能包含的查询条件"三个分类之间的逻辑位操作类型为"与:操作;排序单元,用于排列与所述三种逻辑位4喿作类型相对应的三类查询条件,得到查询条件序列,并将所述查询条件序列送入运算单元。其中,所述操作数生成单元包括第一操作数生成单元,用于在查询条件序列中,根据是否为定义的"不能包含的查询条件"分类中各查询条件所对应的逻辑位操作类型,生成第一<作数;第二操作数生成单元,用于在查询条件序列中,根据定义的每两个查询条件之间的逻辑位运算关系,生成第二操作数。其中,所述第一操作数和第二操作数的位数,与智能卡操作系统中CPU的位数相同;若所述第一操作数或第二操作数小于所述智能卡操作系统中CPU的位数,不足的位用0补足。其中,运算单元按照第一操作数确定的运算规则,对"不能包含的查询条件"分类的各查询条件进行"非"运算,得到"不能包含的查询条件"分类中各查询条件的运算结果;按照第二操作数确定的运算规则,对"可能包含的查询条件"分类的各查询条件进行"或"运算,得到"可能包含的查询条件"分类的运算结果;并与"必须包含的查询条件"分类的各查询条件,以及按照第一操作数运算获得的"不能包含的查询条件"分类中各查询条件的运算结果进行"与"运算。本发明所述的智能卡中凝:据库的查询装置,首先由分类单元对用户输入的查询条件进行分类,并由排序单元对所述查询条件进行排序,得到查询条件序列;并根据在查询条件序列中各查询条件或各查询条件之间的逻辑位操作类型,由操作数生成单元分别得到第一操作数和第二操作数。通过得到的第一操作数和第二操作数所定义的运算规则,对查询条件进行计算,最终由运算单元得到查询结果。这样,就避免了现有技术数据库查询技术中需要利用正则表达式进行的复杂运算。因此,本发明的方法大大提高了CPU的处理速度,加快了查询的速度。图1是本发明智能卡中数据库的查询方法的流程图;图2是本发明智能卡中数据库的查询方法具体流程图;图3是本发明智能卡中数据库的查询装置的结构图;图4是本发明智能卡中数据库的查询装置的具体结构图。具体实施方式为使本发明技术方案的优点更加清楚,下面结合附图对本发明做进一步的详细说明。为了解决现有技术数据库查询技术中,需要利用正则表达式进行的复杂运算,而导致查询速度降低的问题,本发明提供了一种在智能卡中数据库的查询方法。如图1所示,所述方法包括Sl:对查询条件进行分类;S2:将分类结果进行排序,得到查询条件序列;S3:根据所述查询条件序列,生成操作数;S4:按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。本发明所述的智能卡中数据库的查询方法,首先对用户输入的查询条件进行分类,得到查询条件序列,并根据在查询条件序列中各查询条件或各查询条件之间的逻辑位操作类型,得到第一操作数和第二操作数。通过得到的第一操作数和第二操作数所定义的运算规则,对查询条件序列进行计算,最终得到查询结果。这样,就避免了现有技术数据库查询技术中,需要利用正则表达式进行的复杂运算。因此,本发明的方法大大提高了CPU的处理速度,加快了查询的速度。此外,利用本发明所述的方法,对查询条件进行分类,并利用生成的才喿作数进行搡作,得到最终的运算结果,占用内存资源少,进一步的提高了查询的速度。下面以查询条件为BMI为例,详细iJL明本发明所述方法的实现过程。在本发明中,设定智能卡芯片的CPU位数为W,用户输入的查询条件BMI个数为N。鉴于智能卡应用的特殊性,设定iVS『。Tl:分析输入的查询条件BMI,将输入的查询条件BMI按照"可能包含的BMI"、"必须包含的BMI"、"不能包含的BMI"将查询条件BMI进行分类。在此,"可能包含的BMI"是指当用户同时输入多个的查询条件BMI,可能包含的某几个查询条件;"必须包含的BMI"是指,查询条件BMI中全部都包含的查询条件;"不能包含的BMI",则是指在输入的查询条件BMI中不能包含的查询条件。经分析得出,在查询条件中,"可能包含的BMI"为",个,为"2个,"不能包含的BMI"为"3个,其中,<formula>formulaseeoriginaldocumentpage12</formula>。在此,用如下的方式表示对BMI的分类结果<formula>formulaseeoriginaldocumentpage12</formula>T2:定义所述"不能包含的BMI"分类中,各BMI所对应的逻辑位操作类型,以及三种分类中各BMI之间的逻辑位操作类型。在本发明的实施例中,将"不能包含的BMI"的各BMI所对应的逻辑位运算类型定义为进行逻辑"非"操作。同时,定义"可能包含的BMI"分类中,各查询条件之间的逻辑位操作类型为"或,,操作;定义"必须包含的BMI"以及"不能包含的BMI"分类中,各查询条件之间的逻辑位操作类型为"与"操作。行定义。T3:定义"可能包含的BMI"、"必须包含的BMI"、"不能包含的BMI"三个分类之间的逻辑位操作类型为"与"操作。T4:将按照上述方式定义的三种类型的BMI进行排序。在具体应用中,可按照任意的顺序对上述三种类型的查询条件BMI进行排序。在本发明中,为了保证三种类型逻辑位操作的优先级相同,保证查询速度,按照如表1的方式对三种类型的BMI组合进行排序。表l<table>tableseeoriginaldocumentpage12</column></row><table>按照表1所示的顺序,得到排序后的BMI序列<formula>formulaseeoriginaldocumentpage12</formula>層",……層w)。T5:按照T2中定义的三类BMI中,各BMI的逻辑位操作类型,得到第一操作数0P1。第一操作数的生成规则如下在所述查询条件序列中,根据是否为定义的"不能包含的查询条件"分类中各查询条件所对应的逻辑位操作类型,生成第一操作数。针对本发明,在所述BMIs中,用l表示需要进行"非"操作的BMI所对应的逻辑位操作类型,用0表示不需要进行"非"操作的BMI。当然还可用其他的方式对上述的逻辑为操作类型进行定义,只要能区分开是否为"非"操作即可。为了操作方便,按照上述的规则,从BMIs的低位开始(也可从高位开始定义),分别对BMIs中的各BMI进行定义,得到操作数0P1。0P1(左低位右高位)的格式如下BMIs:(層/,,,層/,2,……服/,w)(崖/",層/乂2,……窗/"2)(,颜u,……服4J<formula>formulaseeoriginaldocumentpage13</formula>T6:在所述查询条件序列中,根据每两个查询条件之间的逻辑位运算关系,生成第二操作数0P2。在本发明中,用1表示查询条件序列中前后两个BMI之间进行"或"运算,用O表示前后两个BMI之间进行"与,,运算。各分类之间的逻辑运算关系为进行"与,,运算,也即进行"或,,运算的分类的计算结果,要分别与进行"与"运算的各查询条件,以及进行了"非,,运算的各查询条件之间再进行"与"运算。按照上述的规则,从BMIs的低位开始(也可从高位开始定义),得到操作数0P2。BMIs:(層/",册/,2,……舰/,w)(舰/",5M/p,……舰々2)(,層h,……層J<formula>formulaseeoriginaldocumentpage13</formula>由于0P2描述的是查询序列中,两个查询条件之间的关系。当只有一个查询条件时是没有意义的,因此第一个查询条件对应的位恒置0,利用0P2进行运算时,该位对应为无操作。通过上面的分析可以看出,0P1和0P2的位数均为W,与智能卡中CPU的位数相同,这就保证了利用本发明的方法进行查询的速度。因此,若得到的0P1和0P2的位数,与智能卡中CPU的位数不同,则用0补足。T7:将BMIs和OPl、0P2送入到智能卡操作系统中的运算单元,利用0P1和0P2确定的运算规则,对BMIs进行运算,得到最终的查询结果SM/^。具体如下T71:对BMIs先用0P1所确定的运算规则进行计算,即对各个查询条件^M^,5M/t2,……SM/^分别进行"非"运算,得到各个查询条件的计算结果,表示形式如下層w、層*2、層w.......層^、層^T72:对BMIs按照0P2确定的规则,对(5M/n,SM/,2,…...)进行"或"运算,得到结果5M/u。T73:然后,将S似/u、BM/"、SM/"……BM/"2、、BM/i2……万似43之间进行"与"运算,得到最终的查询结果。谢U嵐/,,A谢/"A谢/"A……A層/"2A層/"A5M^2A......A皿U。通过执行上述过程,避免了复杂的正则表达式的运算,快速的得到了最终的查询结果。同时,通过将进行"或"运算的分类的计算结果,分别与进行"与"运算分类中的各个查询条件,以及进行"非,,运算后的"不能包含的查询条件"分类中的各个查询条件进行"与"运算,避免了现有技术中需要不断的将每两个查询条件的计算结果进行保存的步骤,节约了内存的占用,提高了查询的速度。下面以一个具体的例子描述以下上述方法的具体实施过程。假设当前有BMI序列BMIs包括BMI"BMI2,BMI3,BMI4,BMI5,BMI"BM"。对所述BMI进行分类,-假设其中"可能包含的BMI"的有BML、BMI7,"必须包含的BMI"的有BML、BMI""不包含的BMI,,有BMI!、BMI4、BMI5,求此BMI序列的逻辑操作结果。1)将BMIs分类排序得出操作序列(BMI3MI7)(BMI2BMI6)(BMI^MLBMIs),并确定n为2,112为2,113为3,N=n2+n产7。2)才艮据BMIs各BMI以及相互之间的逻辑:操作,生成操:作数0P1和0P2,具体编码见下表所示<table>tableseeoriginaldocumentpage15</column></row><table>假定当前智能卡CPU的位数W:8,将0P1、0P2补足为8位,则可得出0P1,用十六进制表示为0x70(二进制表示为01110000,不足8位时,在高位补0),0P2的十六进制表示为0x02(二进制表示为00000010,不足8位时,在高位补0)。将BMI序列BMIs和OPl、0P2送入运算模块进行运算,得出最终结果BMI印d。本发明所述的方法不4又仅局限于应用在智能卡的数据库查询中,还可应用在其他领域中的数据库查询技术。与本发明所述的智能卡中数据库的查询方法相对应,本发明还提供了一种智能卡中数据库的查询装置。如图3所示,所述智能卡中数据库的查询装置包括如下模块分类单元,用于对查询条件进行分类;序列生成单元,用于对分类结果进行排序,得到查询条件序列;操作数生成单元,用于根据所述查询条件序列,生成4喿作数;运算单元,用于按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。本发明所述的智能卡中数据库的查询装置,首先由分类单元对用户输入的查询条件进行分类,并由排序单元对所述查询条件进行排序,得到查询条件序列;并根据在查询条件序列中各查询条件或各查询条件之间的逻辑位操作类型,由操作数生成单元分别得到第一操作数和第二操作数。通过得到的第一操作数和第二操作数所定义的运算规则,对查询条件进行计算,最终由运算单元得到查询结果。这样,就避免了现有技术数据库查询技术中需要利用正则表达式进行的复杂运算。因此,本发明的方法大大提高了CPU的处理速度,加快了查询的速度。如图4所示,所述序列生成单元包括第一操作类型定义模块,用于定义"不能包含的查询条件"分类中,各查询条件所对应的逻辑位操作类型。在本发明中,将"不能包含的查询条件"分类中,各查询条件所对应的逻辑位l喿作类型定义为"非"运算。第二操作类型定义冲莫块,用于定义"可能包含的查询条件"分类中,各查询条件之间的逻辑位操作类型为"或"操作。第三操作类型定义冲莫块,用于定义"必须包含的查询条件"以及"不能包含的查询条件"分类中,各查询条件之间的逻辑位l喿作类型为"与"操作。第四操作类型定义模块,用于定义"可能包含的查询条件"、"必须包含的查询条件"以及"不能包含的查询条件"三个分类之间的逻辑位操作类型为"与"操作。排序单元,用于按照一定的顺序,排列与所述三种逻辑位操作类型相对应的三类查询条件,得到查询条件序列,并将所述查询条件序列送入到运算单元中。为了提高查询速度,所述排序单元在排列顺序的时候,按照进行"或"、"与"、"非"逻辑位操作的顺序进行排序,得到查询条件序列("可能包含的查询条件"、"必须包含的查询条件"、"不能包含的查询条件")。所述操作数生成单元包括第一操作数生成单元,用于在查询条件序列中,根据是否为定义的"不能包含的查询条件"分类中各查询条件所对应的逻辑位操作类型,生成第一操作数。在所述查询条件序列中,用l表示进行"非"逻辑位运算的查询条件;用0表示其它的查询条件。按照上述的方式,得到第一操作数。第二操作数生成单元,用于在查询条件序列中,才艮据定义的每两个查询条件之间的逻辑位运算关系,生成第二操作数。在所述查询条件序列中,用"0"表示"每两个查询条件之间进行的"与,,运算;用'T,表示每两个查询条件之间进行的"或"运算,同时,第一个查询条件对应的位置0。按照上述的方式,得到第二操作数。为进一步提高查询速度,所述第一操作数和第二操作数的位数,与智能卡操作系统中CPU的位数相同,若第一操作数和第二操作数少于所述智能卡的CPU位数,则在第一操作数和第二操作数中用0补足。在运算单元计算最终的查询结果时,首先按照第一操作数确定的运算规则,对"不能包含的查询条件"分类的各查询条件进行"非"运算,得到"不能包含的查询条件"分类中各查询条件的运算结果。再按照第二操作数确定的运算规则,对"可能包含的查询条件"分类的各查询条件进行"或,,运算,得到"可能包含的查询条件"分类的运算结果;并与"必须包含的查询条件"分类的各查询条件,以及按照第一操作数运算获得的"不能包含的查询条件,,分类中各查询条件的运算结果进行"与"运算。综上所述,利用本发明所述的装置,根据定义的各BMI的逻辑位操作类型,以及各BMI之间的逻辑位操作类型,对各BMI进行排序所得到的BMIs,以及由第一、第二操作单元生成的0P1和0P2,所述的运算单元能够快速的计算出最终的查询结果,避免了现有的数据库查询技术中,需要利用正则表达式进行复杂的逻辑运算的麻烦。当然,本发明的实施例还可有很多种,在不背离本发明的实施例精神及其和变形,但这些相应的改变和变形都应属于本发明的实施例所附的权利要求的保护范围。权利要求1、一种智能卡中数据库的查询方法,其特征在于包括如下步骤对查询条件进行分类;将分类结果进行排序,得到查询条件序列;根据所述查询条件序列,生成操作数;按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。2、根据权利要求1所述的智能卡中数据库的查询方法,其特征在于,所述对查询条件进行分类的步骤具体为按照"可能包含的查询条件"、"必须包含的查询条件"、"不能包含的查询条件"将所述查询条件进行分类。3、根据权利要求1所述的智能卡中数据库的查询方法,其特征在于,所述对分类结果进行排序,得到查询条件序列的步骤具体为定义"不能包含的查询条件"分类中,各查询条件所对应的逻辑位操作类型为"非"操作;定义"可能包含的查询条件"分类中,各查询条件之间的逻辑位#:作类型为"或"操作;定义"必须包含的查询条件"以及"不能包含的查询条件,,分类中,各查询条件之间的逻辑位操作类型为"与"操作;定义"可能包含的查询条件"、"必须包含的查询条件,,以及"不能包含的查询条件"三个分类之间的逻辑位4喿作类型为"与"才喿作;排列与所述三种逻辑位操作类型相对应的三类查询条件,得到查询条件序列。4、根据权利要求3所述的智能卡中数据库的查询方法,其特征在于,所述排列与所述三种逻辑位操作类型相对应的三类查询条件的步骤具体为按照进行"或"、"与"、"非"逻辑位4喿作的顺序,排列分别与所述三种逻辑位操作类型相对应的分类,得到查询条件序列("可能包含的查询条件"、"必须包含的查询条件"、"不能包含的查询条件,,)。5、根据权利要求3所述的智能卡中数据库的查询方法,其特征在于,根据所述查询条件序列,生成操作数的步骤具体为在所述查询条件序列中,根据是否为定义的"不能包含的查询条件"分类中各查询条件所对应的逻辑位操作类型,生成第一操:作数;在所述查询条件序列中,根据每两个查询条件之间的逻辑位运算关系,生成第二操作数。6、根据权利要求5所述的智能卡中数据库的查询方法,其特征在于,所述第一操作数和第二操作数的位数,与智能卡操作系统中CPU的位数相同;若所述第一操作数或第二操作数小于所述智能卡操作系统中CPU的位数,不足的位用0补足。7、根据权利要求5或6所迷的智能卡中数据库的查询方法,其特征在于,所述生成第一操作数的步骤为在所述查询条件序列中,用l表示进行"非"逻辑位运算的查询条件;用0表示进行其他类型逻辑位运算的查询条件;所迷生成第二4乘作数的步骤为在所迷查询条件序列中,用"1"表示每两个查询条件之间进行的"或,,运算,用"0"表示每两个查询条件之间进行的"与,,运算。8、根据权利要求1或5所述的智能卡中数据库的查询方法,其特征在于,所述按照所述操作数确定的运算规则,对所述查询条件序列进行运算的步骤具体为按照第一操作数确定的运算规则,对"不能包含的查询条件"分类的各查询条件进行"非"运算,得到"不能包含的查询条件"分类中各查询条件的运算结果;按照第二操作数确定的运算规则,对"可能包含的查询条件"分类的各查询条件进行"或"运算,得到"可能包含的查询条件"分类的运算结果;将所述"可能包含的查询条件"分类的运算结果、"必须包含的查询条件"分类的各查询条件、按照第一操作数运算获得的"不能包含的查询条件"分类中各查询条件的运算结果进行"与"运算。9、一种智能卡数据库的查询装置,其特征在于,所述装置包括分类单元,用于对查询条件进行分类;序列生成单元,用于对分类结果进行排序,得到查询条件序列;操作数生成单元,用于根据所述查询条件序列,生成操作数;运算单元,用于按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。10、根据权利要求9所述的智能卡中数据库的查询装置,其特征在于,所述序列生成单元包括第一操作类型定义模块,用于定义"不能包含的查询条件"分类中,各查询条件所对应的逻辑位操作类型为"非"操作;第二操作类型定义模块,用于定义"可能包含的查询条件"分类中,各查询条件之间的逻辑位操作类型为"或"操作;第三操作类型定义模块,用于定义"必须包含的查询条件,,以及"不能包含的查询条件"分类中,各查询条件之间的逻辑位操作类型为"与"操作;第四操作类型定义模块,用于定义"可能包含的查询条件"、"必须包含的查询条件,,以及"不能包含的查询条件"三个分类之间的逻辑位操作类型为"与,操作;排序单元,用于排列与所述三种逻辑位操作类型相对应的三类查询条件,得到查询条件序列,并送入运算单元。11、根据权利要求9所述的智能卡中数据库的查询装置,其特征在于,所述操作数生成单元包括第一操作数生成单元,用于在查询条件序列中,根据是否为定义的"不能包含的查询条件"分类中各查询条件所对应的逻辑位操作类型,生成第一4喿作数;第二操作数生成单元,用于在查询条件序列中,4艮据定义的每两个查询条件之间的逻辑位运算关系,生成第二梯:作数。12、根据权利要求11所述的智能卡中数据库的查询装置,其特征在于,所述第一操作数和第二操作数的位数,与智能卡操作系统中CPU的位数相同;若所述第一操作数或第二操作数小于所述智能卡操作系统中CPU的位数,不足的位用Q补足。13、根据权利要求ll或12所述的智能卡中数据库的查询装置,其特征在于,运算单元按照第一操作数确定的运算规则,对"不能包含的查询条件"分类的各查询条件进行"非,,运算,得到"不能包含的查询条件"分类中各查询条件的运算结果;按照第二操作数确定的运算规则,对"可能包含的查询条件"分类的各查询条件进行"或"运算,得到"可能包含的查询条件"分类的运算结果;并与"必须包含的查询条件,,分类的各查询条件,以及按照第一操作数运算获得的"不能包含的查询条件,,分类中各查询条件的运算结果进行"与"运算。全文摘要本发明公开了一种智能卡中数据库的查询方法及装置,涉及数据库查询技术,为提高查询速度而发明。所述方法包括对查询条件进行分类;将分类结果进行排序,得到查询条件序列;根据所述查询条件序列,生成操作数;按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。所述装置包括分类单元,排序单元,操作数生成单元以及运算单元。本发明能够提高数据库的查询速度。文档编号G06F17/30GK101216827SQ20071030434公开日2008年7月9日申请日期2007年12月27日优先权日2007年12月27日发明者冯秀涛,新叶,松高申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1