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

文档序号:6430717阅读:427来源:国知局
专利名称:数据库查询方法及智能卡的制作方法
技术领域
本发明涉及智能卡数据库技术领域,尤其涉及一种数据库查询方法及智能卡。
背景技术
随着信息化日益发展,将重要信息存放在便携式硬件中已经成为一种趋势。其中, 大容量存储卡将数据库技术应用于智能卡操作系统,为更好更丰富的移动数据服务提供了一个崭新的实现平台。连接是关系型数据库模型的主要特点,通过连接运算可以实现数据库中多个表的查询。这是此类数据库管理系统区别于其它类型数据库管理系统的一个标志。在关系型数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。智能卡作为一种关系型数据库的载体,同样需要实现表的连接,只是需要克服许多硬件限制。现有的智能卡通过各表连接操作实现查询的方法为按照传入的表的顺序对各表进行单条记录的读入;每读入一条记录便将该条记录的冗余字段删除。对于有连接条件的情况,按照传入的表的顺序对各表进行单条记录的读入时,将各表中满足连接条件的记录顺序读入,且每读入一条记录时删除该条记录的冗余字段,最后删除计算字段输出。而对于无连接条件的情况,按照传入的表的顺序对各表进行单条记录的读入时,需要读入所有表单条记录按上述顺序组合的所有情况,且每读入一条记录时删除该条记录的冗余字段,最后输出。可见,在上述过程中,需要有足够的内容存放每次读入的数据,但是,由于智能卡内存大小的局限,将影响连接操作的实现。各表初始时是有一定顺序的,按照原有顺序进行连接,内存消耗未必达到最小,假设读入数据可用的内存大小比利用该技术所需消耗的内存大小只少一个字节,此次连接仍会因内存不足而失败。即使在内存大小足够的情况下进行多表连接,该技术将消耗更多的I/O次数,连接查询所需时间会因此增长,因而直接影响连接查询的效率。例如,在无连接条件时,设三个表的记录条数分别为10、5和2。若采用该技术,读表的次数总共将为 10+5X10+2X5X10 = 160。但反过来,读表的次数总共将为2+5X2+10X5X2 = 112。可见,记录条数的数量级越高,该技术的I/O消耗就越明显。

发明内容
本发明提供一种数据库查询方法及智能卡,用以优化现有的多连接查询数据方法,提高智能卡的操作效率及多连接成功率。本发明提供了一种数据库查询方法,包括确定N个待连接表中每一个表的冗余字段的长度值,其中N大于等于2 ;根据所述每一个表的冗余字段的长度值,确定所述N个待连接表的连接顺序,其中,所述冗余字段的长度值越大的表,被执行连接操作的顺序越靠前;按照所述连接顺序对所述N个待连接表进行连接操作,并输出查询结果。本发明还提供了一种智能卡,包括冗余长度确定单元,用于确定N个待连接表中每一个表的冗余字段的长度值,其中N大于等于2;连接顺序确定单元,用于根据所述每一个表的冗余字段的长度值,确定所述N个待连接表的连接顺序,其中,所述冗余字段的长度值越大的表,被执行连接操作的顺序越靠

连接输出单元,用于按照所述连接顺序对所述N个待连接表进行连接操作,并输出查询结果。利用本发明提供的数据库查询方法及智能卡,具有以下有益效果可以优化多连接查询,使得多表连接操作对内存的需求大大降低,从而提高了智能卡的操作效率及多连接成功率。


图1为本发明实施例中数据库查询方法流程图;图2为本发明实施例中数据库查询方法详细流程图;图3为本发明实施例中对单个表的冗余字段长度值的计算方法流程图;图4为本发明实施例中确定消耗最小内存连接顺序流程图;图5为本发明实施例中智能卡结构图。
具体实施例方式下面结合附图和实施例对本发明提供的数据库查询方法及智能卡进行更详细地说明。在关系型数据库中,每个表由至少一条记录构成,每条记录包括至少一个字段。对于有连接条件的查询,记录中字段的类型包括输出字段、计算字段和冗余字段三种。对于无连接条件的查询,记录中字段的类型包括输出字段、冗余字段两种。其中,输出字段是指该条记录中最终需输出的字段;计算字段是指不需要输出但需要参与后续连接计算的字段; 冗余字段是指既不需输出又不需参与连接计算的字段。举例说明,如表1为员工表,每条记录包括如下字段编号、姓名、部门、性别;表2 为员工工资表,每条记录包括如下字段编号、薪资、入职年份。现在欲查找每名员工的薪资情况,此时,输出字段为表1.姓名、表2.薪资;连接条件表1.编号=表2.编号,即表 1.编号和表2.编号为计算字段;剩下的表1.部门、表1.性别、表2.入职年份这三个字段既不输出又不参与连接,故为冗余字段。表1员工表
权利要求
1.一种数据库查询方法,其特征在于,包括确定N个待连接表中每一个表的冗余字段的长度值,其中N大于等于2 ; 根据所述每一个表的冗余字段的长度值,确定所述N个待连接表的连接顺序,其中,所述冗余字段的长度值越大的表,被执行连接操作的顺序越靠前;按照所述连接顺序对所述N个待连接表进行连接操作,并输出查询结果。
2.如权利要求1所述的方法,其特征在于,在确定所述N个待连接表的连接顺序时,对于冗余字段的长度值相等的表,表中记录数目越少,表被执行连接操作的顺序越靠前。
3.如权利要求1或2所述的方法,其特征在于,按照所述连接顺序对所述N个待连接表进行连接操作之前,进一步包括根据所述连接顺序,确定执行连接操作所需消耗的内存最小值; 确定当前内存剩余值不小于所需消耗的内存最小值时,按照所述连接顺序对所述N个待连接表进行连接操作;确定当前内存剩余值小于所需消耗的内存最小值时,放弃本次数据库查询,或者等待至内存剩余值不小于所需消耗的内存最小值时,再按照所述连接顺序对所述N个待连接表进行连接操作。
4.如权利要求3所述的方法,其特征在于,根据所述连接顺序,确定执行连接操作所需消耗的内存最小值,具体包括按照所述连接顺序,分别计算每个表的单条记录的长度,与该表之前的所有表删除冗余字段后的单条记录的长度的和,获得N个数值;确定所述N个数值中的最大值为执行连接操作所需消耗的内存最小值。
5.如权利要求1或2所述的方法,其特征在于,所述确定N个待连接表中每一个表的冗余字段的长度值,具体包括将所述每一个表的各个字段的名称分别与输出字段的名称和计算字段的名称进行比较,确定所述每一个表的各个字段中属于冗余字段的字段名称;根据所述属于冗余字段的字段名称以及所述每一个表的各个字段的长度值,确定每一个表的冗余字段的长度值。
6.一种智能卡,其特征在于,包括冗余长度确定单元,用于确定N个待连接表中每一个表的冗余字段的长度值,其中N大于等于2;连接顺序确定单元,用于根据所述每一个表的冗余字段的长度值,确定所述N个待连接表的连接顺序,其中,所述冗余字段的长度值越大的表,被执行连接操作的顺序越靠前;连接输出单元,用于按照所述连接顺序对所述N个待连接表进行连接操作,并输出查询结果。
7.如权利要求6所述的智能卡,其特征在于,在确定所述N个待连接表的连接顺序且存在冗余字段的长度值相等的表时,连接顺序确定单元还用于确定冗余字段的长度值相等的每个表的记录数目,记录数目越少的表,被执行连接操作的顺序越靠前。
8.如权利要求6或7所述的智能卡,其特征在于,还包括内存消耗确定单元,用于根据所述连接顺序,确定执行连接操作所需消耗的内存最小触发单元,用于在当前内存剩余值不小于所需消耗的内存最小值时,触发所述连接输出单元按照所述连接顺序对所述N个待连接表进行连接操作;在当前内存剩余值小于所需消耗的内存最小值时,放弃本次数据库查询,或者等待至内存剩余值不小于所需消耗的内存最小值时,再触发所述连接输出单元按照所述连接顺序对所述N个待连接表进行连接操作。
9.如权利要求8所述的智能卡,其特征在于,内存消耗确定单元具体用于按照所述连接顺序,分别计算每个表的单条记录的长度,与该表之前的所有表删除冗余字段后的单条记录的长度的和,获得N个数值;确定所述N个数值中的最大值为执行连接操作所需消耗的内存最小值。
10.如权利要求6或7所述的智能卡,其特征在于,冗余长度确定单元具体用于 将所述每一个表的各个字段的名称分别与输出字段的名称和计算字段的名称进行比较,确定所述每一个表的各个字段中属于冗余字段的字段名称;根据所述属于冗余字段的字段名称以及所述每一个表的各个字段的长度值,确定每一个表的冗余字段的长度值。
全文摘要
本发明公开了一种数据库查询方法及智能卡,该方法包括确定N个待连接表中每一个表的冗余字段的长度值,其中N大于等于2;根据所述每一个表的冗余字段的长度值,确定所述N个待连接表的连接顺序,其中,所述冗余字段的长度值越大的表,被执行连接操作的顺序越靠前;按照所述连接顺序对所述N个待连接表进行连接操作,并输出查询结果。本发明使得多表连接操作对内存的需求大大降低,从而提高了智能卡的操作效率及多连接成功率。
文档编号G06F17/30GK102262675SQ20111023114
公开日2011年11月30日 申请日期2011年8月12日 优先权日2011年8月12日
发明者高晶 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1