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

技术编号:2926255 阅读:186 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种智能卡中数据库的查询方法及装置,涉及数据库查询技术,为提高查询速度而发明专利技术。所述方法包括:对查询条件进行分类;将分类结果进行排序,得到查询条件序列;根据所述查询条件序列,生成操作数;按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。所述装置包括:分类单元,排序单元,操作数生成单元以及运算单元。本发明专利技术能够提高数据库的查询速度。

【技术实现步骤摘要】

本专利技术涉及智能卡技术,尤其涉及一种在智能卡数据库中的查询方法及装置。
技术介绍
随着智能卡技术的不断发展,智能卡的硬件工艺水平也不断的增长,例如以CPU为例,智能卡的CPU从智能卡技术发展初期的8位,发展到广为使用的 16位。智能卡的存储容量也由最初的几十字节,发展到现在的几十K、上百K 字节。在智能卡硬件工艺发展的同时,智能卡的片上操作系统也不断的成熟与完 善,这就使得应用于传统计算机上的数据库技术,延伸到了智能卡的片上操作 系统中,这也为更丰富的移动数据服务提供了一个崭新的实现平台。凄t据查询 技术是数据库的核心技术之一。对于智能卡的数据库查询技术而言,位图索引(Bitmap Index, 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补足。其中,运算单元按照第一操作数确定的运算规则,对"不能包含的查询条 件"分类的各查询条件进行"非"运本文档来自技高网
...

【技术保护点】
一种智能卡中数据库的查询方法,其特征在于包括如下步骤:对查询条件进行分类;将分类结果进行排序,得到查询条件序列;根据所述查询条件序列,生成操作数;按照所述操作数确定的运算规则,对所述查询条件序列进行运算,得到查询结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:高松冯秀涛叶新
申请(专利权)人:北京握奇数据系统有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利