用于确定对象在对象序列中的索引的系统和方法

文档序号:8487811阅读:268来源:国知局
用于确定对象在对象序列中的索引的系统和方法
【技术领域】
[0001]本发明涉及用于确定对象在对象序列中的索引的系统和方法。对象序列通常由于使用合适的查询(如SQL查询或UPnP (AKA DLNA)内容目录服务(CDS)[参考:http://www.upnp.0rg/specs/av/UPnP-av-ContentDirectory-vl_Service.pdf]搜索动作)来查询如数据库的数据源而可获得。
【背景技术】
[0002]常常存在可获得包括多个对象的对象序列的情况,可从所述序列检索所述对象。查询可以规定:搜索准则,其确定查询结果中将可获得哪些对象;和次序准则,其确定查询结果中的对象次序。例如,在关系数据库中,表格是可以用SELECT语句来查询的记录的容器,搜索准则是用WHERE子句来规定的,并且次序准则是用ORDER BY子句来规定的。另一个实例是具有相应地规定的搜索准则和排序准则的UPnP CDS搜索动作。
[0003]这种查询的结果是对象序列。对象可被视为以连续的唯一索引(或另外为唯一标识符或关键字)存在于序列中,所述序列是查询的结果集合。唯一索引的格式是什么并不重要,只要序列中的每个对象具有不同的索引值即可。
[0004]查询结果通常由迭代器类API (例如,SQL数据库游标,或UPnP⑶S搜索动作中的StartingIndex与RequestedCount对)来表达。这种方法一次提供查询结果序列的片段,而不是整个结果对象集合。这可以改进传输和存储性能。迭代器/片段与序列中的索引相关,对象(或多个对象)是以所述索引提供的。
[0005]为了从序列获取在当前迭代器/片段索引下不可获得的对象,应将迭代器/片段移动到新的索引。索引移动操作可能是耗时的或不同步的,因此在整个序列上的迭代并不是简单的任务。
[0006]然而,在许多应用中,仅考虑查询结果序列的片段,这使得这种方法是方便且常用的模式。
[0007]例如,为了请求序列中的下一个对象,常常需要确定对象在序列中的索引。通常,数据库不包括参考前一个/下一个记录的嵌套式记录。这种方法将是效率低下的,因为将必须在序列的每次排序时重建前一个/下一个记录。
[0008]因此,高效确定对象在对象序列中的索引存在问题,其中对象的唯一标识符是已知的。优选地,解决方案应确定对象是否存在于序列中。
[0009]因此需要提供一种用于确定对象在对象序列中的索引的改进方法。

【发明内容】

[0010]本发明的目标是一种用于确定对象在对象序列中的索引的方法,所述方法包括以下步骤:获得给定对象O的唯一标识符值;获得序列的查询定义Q,所述Q查询包括根据所述对象O的参数的次序定义;基于所述Q查询构建Q’查询,所述Q’查询与所述Q查询不同之处在于,其相对于所述Q查询具有反转的结果排序,并且提供的结果具有在Q查询结果集合中的对象序列中在对象O前面或匹配所述对象O的参数值的对象的所述参数值;由查询执行引擎执行所述Q’查询;检查所述对象O是否作为Q’结果集合中的第一项目存在,并且在是的情况下,通过检索Q’结果集合的对象计数获得对象O在Q序列中的索引。
[0011 ] 优选地,唯一标识符值是数值。
[0012]有利地,对象的标识符和次序定义的参数是对象O的相同属性。
[0013]优选地,在构建Q’查询之前,获得对象O的参数值。
[0014]优选地,如果查询Q的排序不严格,那么由额外次序准则用查询Ql替换查询Q,所述额外次序准则使Ql的排序严格。
[0015]优选地,所述Ql查询中的额外次序准则是指对象的唯一标识符。
[0016]有利地,所执行的查询Q’是以如下方式构建以使得Q’结果的总计数的检索利用已经可获得的结果。
[0017]优选地,查询是在SQL数据库中执行。
[0018]优选地,查询是在UPnP⑶S中执行。
[0019]本发明的另一个目标是一种包括程序代码部件的计算机程序,所述程序代码部件用于在所述程序在计算机上运行时进行根据本发明的方法的所有步骤。
[0020]本发明的另一个目标是一种存储计算机可执行指令的计算机可读介质,所述计算机可执行指令在计算机上执行时进行根据本发明的方法的所有步骤。
[0021]本发明的又一个目标是一种用于确定对象在对象序列中的索引的系统,所述系统包括:对象O寄存器,其被配置来存储给定对象O的唯一标识符值;源查询Q寄存器,其被配置来存储序列的查询定义Q,所述Q查询包括根据所述对象O的参数的次序定义;目标查询寄存器,其被配置来存储基于Q查询的新构建的Q’查询;其中源查询次序反转器被配置来相对于Q查询反转结果排序;控制器,其被配置来获得源查询次序反转器的输出并且定义Q’查询,所述Q’查询与所述Q查询不同之处在于,其提供的结果具有在所述Q查询结果集合中的所述对象序列中在对象O前面或匹配所述对象O的参数值的对象的参数值;所述控制器还被配置来:请求由查询执行引擎执行所述Q’查询,并且检查所述对象O是否作为Q’结果集合中的第一项目存在,并且在是的情况下,通过检索Q’结果集合的对象计数获得对象O在Q序列中的索引。
【附图说明】
[0022]在附图上借助于示例性实施方案示出本发明,在附图中:
[0023]图1呈现根据本发明的方法;
[0024]图2呈现根据本发明的方法的用途的实施例;以及
[0025]图3呈现根据本发明的系统。
【具体实施方式】
[0026]表不法和命名法
[0027]以下详细描述的一些部分是依据可在计算机存储器上进行的数据处理程序、步骤或对数据位的运算的其它符号表示来呈现。因此,计算机执行这类逻辑步骤,从而需要物理数量的物理操纵。
[0028]通常,这些数量呈能够在计算机系统中被存储、传递、组合、比较并且以其它方式操纵的电信号或磁信号的形式。由于常见用途,这些信号被称为数据位、数据包、消息、值、元素、符号、字符、项目、数字等。
[0029]另外,所有这些类似术语将与适当物理数量相关联并且仅仅是应用于这些数量的方便标签。如“处理”或“创建”或“传递”或“执行”或“确定”或“检测”或“获得”或“选择”或“计算”或“产生”等术语是指计算机系统中的动作和过程,所述动作和过程操纵在计算机寄存器和存储器内表示为物理(电子)数量的数据并且将其变换成在存储器或寄存器或其它这类信息存储体内类似地表示为物理数量的其它数据。
[0030]根据本发明,假设对象O的标识是事先已知的。标识可以是指对象的某个唯一标识符或主要关键字。在数据库结构(通常是表格)中,唯一关键字或主要关键字是唯一地定义每一行的特征的关键字。主要关键字必须由不能被任何其它行全体复制的特征组成。在UPnP CDS中,借助于ObjectID来定义标识。
[0031]但是,对象O的所有属性未必是事先已知的。
[0032]还假设查询Q定义(参数)是事先已知的。这个查询可以由系统的用户来定义。如已经指出,另一个假设是,查询结果序列中的对象的次序是确定性的,也就是说查询Q次序准则的定义方式使得次序是严格的。
[0033]表示序列的查询结果是有限序列,并且其基数容易获得。例如,在SQL数据库连同每个记录数据的情况下,可以添加额外计数列(SQL中的count (*))。作为另一个实例,在UPnP⑶S搜索动作的情况下,TotalMatches提供关于序列基数的信息。请注意,基数信息通常提供为
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1