CN1647076A - 查询关系数据库的方法和设备 - Google Patents
查询关系数据库的方法和设备 Download PDFInfo
- Publication number
- CN1647076A CN1647076A CNA038077086A CN03807708A CN1647076A CN 1647076 A CN1647076 A CN 1647076A CN A038077086 A CNA038077086 A CN A038077086A CN 03807708 A CN03807708 A CN 03807708A CN 1647076 A CN1647076 A CN 1647076A
- Authority
- CN
- China
- Prior art keywords
- tabulation
- inquiry
- hub
- relevant
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24535—Query rewriting; Transformation of sub-queries or views
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了评价一个包含一个或多个关系数据库的查询的方法,每个数据库包括了一个关系数据库管理***(RDBMS),所述查询与关系数据库的至少两个列表相关,所述方法包括确定一个列表集合,包括查询中涉及的列表,其中所述集合中的每个列表与至少一个其他列表相连,这样,在数据库的图表表示中,其中,以节点表示列表,以节点间连线表示列表间链路,它们形成了与一个对应在查询中涉及的列表的节点相连接的链接图表,在与初级查询对等的所述集合中执行一个查询,其中,在所述集合中执行所述查询的所述步骤包括执行串行部分查询,其中,在前查询的结果作为在后查询的输入,结合所述部分查询的结果以得到初级查询的结果。本发明还提供关系数据处理***和程序。
Description
技术领域
本发明涉及一种用于评价有关关系数据库的查询的方法以及有关的装置和程序。
背景技术
生物信息学的主要对象是提供能迅速、有效和完整检索到生物信息的搜索工具。目前有存储生物信息的庞大数据库。可是除此以外,还存在许多较小的数据库以及并不象数据库那样构建的电子数据库,也可以说成是平面文件,如科学杂志中的出版物。因此生物信息学中的搜索工具必须经常综合来自各种资料源的数据。由于用户希望立刻在屏幕上得到结果,在这点上时间显得犹为重要。
已经证实SRS查询语言和数据包是构建这种搜索工具的有效手段。SRS可以综合来自各种资料源的数据。在WO00/41094中指出了SRS的原理。基本上,SRS以两步过程操作。第一步是识别数据源中的条目,第二步通过分析程序提取。尽管这个概念很适用于平面文件,但是关系数据库的应用还是带来了问题,有关标识符的信息如列表密匙的提取可能在大数据库中要花费相对长的时间。这是因为这些请求信息通常必须从多个不同的列表中采集,而这些列表可能并非直接相互连接。目前的关系列表管理***以建立查询所涉及的所有列表的连接表的方式操作。由于该连接表的尺寸基本上是单个列表行尺寸的产物,因此这很快导致形成大的结果集,并且相应地引起评价这些结果集的处理时间过长。这样,从查询中引用的列表检索信息可以是对大的数据库的比较慢的处理。如果包含多个列表的查询是例如SQL标准语言下的输入,则RDBMS(关系数据管理***)将形成包含的所有列表的连接列表。由于,这在实质上是所有列表的笛卡儿乘积,所以连接的列表的尺寸随查询中每另一个列表呈指数增长。这导致了随包含的列表数量快速下降的计算机速度。
发明内容
本发明的一个目的是提供一种用于在关系数据库中进行查询的方法、装置以及程序,其中查询可以更容易地进行,更易于理解,并且查询过程可以更快速,尤其是提供一种能兼容从其它数据源如平面文件中提取信息的流程的方法。
根据本发明,这个目标是通过评价涉及一个或多个关系数据库的查询的方法来实现的,每个关系数据库包括一个关系数据库管理***(RDBMS),所述查询与关系数据库中至少两个列表相关,所述方法包括:
确定一个列表集合,包括在查询中涉及的列表,其中,所述集合中的每个列表与至少一个其它列表相连,这样,在数据库的图表表示中,其中,列表以节点表示,列表间的链路用节点间的线表示,它们形成了连接对应查询中涉及的列表的节点的链接图表。
在所述集合中实现一个与初级查询相当的查询,其中在所述集合中执行所述查询的所述步骤包括执行连续的部分查询,其中在先查询的结果作为下次查询的输入,优选地,沿着所述图表的下次查询,将所述部分查询的结果结合来获得初级查询的结果。
为了进一步讨论,以数据库的表示作为节点图是有帮助的。节点图被理解为数据库的图表表示,其中,列表以节点表示,列表间的链路用节点间的连线表示。特别地,列表间的链路可以是通过外键(foreign key)的链路,但不受此限制。使用节点图的概念,在数据库的两个列表间的任何关系可以可视化为两个节点间的直接或间接(其中,在此的情况是两个列表问的直接链接)的并通过一个和多个中间节点的通路。使用这个概念,可以控制在一个查询中包含的节点数目并以包含的中间列表的明确数量来设计查询。
本发明提供了一种实现查询的方法,查询被选的列表,在以节点表示列表并以节点之间连线表示列表间链路的数据库的图表表示中,形成了连接到与初级查询相关的列表的链接图。
本发明的一个重要方面是一个大的查询可以分割成许多更容易评价的中间查询,因为涉及的连接表更小。实质上,在所述图表中两个列表间的链路用接续(junction)代替。两个列表间的接续表示这两个列表不涉及同一个查询,但对一个列表在前一查询中找到的对于链路的链接关键字值或另一个输入用作输入,例如,作为包含第二个列表的查询中的链接关键字的输入。
根据本发明,部分查询是这样构造的,使得只有直接连接到所述查询中另外一个列表中的列表包含在部分查询中,并且所述图表中每个列表包含在至少一个查询中。
因此,有一个从集线器列表引导到查询中涉及的列表的完整查询链。
当列表间的关系是外键关系时,本发明可以提供在先查询的结果,其包括了在后查询中包括的列表的外键值,并且其中,所述外键的所述值用作在后查询的输入。
本发明可以提供的在所述集合上执行查询的所述步骤包括:
在所述列表集合中确定两个或多个部分查询,它们结合等于初级查询,其中,至少包括所述列表集合的第一子集的第一部分查询和包括至少与第一子集部分不同的列表的第二子集的第二部分查询。
其中,所述第一子集中至少一个列表不包含在所述第二子集中,该至少一个列表具有与在所述第二子集中且不在所述第一子集中的列表的链路,所述链路对应所述图表中连线,移除连线将导致图表断开,
其中,所述第一查询导致了一个结果,该结果包括所述两列表间的链接关键字的值,并且其中,所述第二查询具有作为输入的在第一查询中确定的链接关键字的值,
执行所述第一查询,
执行所述第二查询,
应用所述第一查询的结果,
结合所有部分查询的结果得出初级查询的结果。
本发明可以提供相互不同的所述第一和第二子集。
本发明可以提供在运行时间中动态产生的所述第一和第二部分查询。
本发明也可以提供不包含在一个单一数据库中的包含在所述集合中的所述列表。
对于每次部分查询,结果都储存起来以被随后检索,用于使各种部分查询的结果结合为初级查询的结果或部分结果。为了清楚起见,来自根据本发明开始的方法的查询可以在此并随后称为“初级查询”。
根据一个优选实施例,查询是不重叠的意思是分开形成在先查询的输入,只有不在其它部分查询中查询的列表才被查询。
把一个大的查询分割成多个顺序出现的更小的查询,其具有以下优点,即,更小的查询返回更小的结果集合。因为沿图表中的连续列表被直接连接,在连续列表之间也有直接连接,意味着连接起来的单一部分查询的列表通常不是特别大。有多少连续列表通过部分查询包含取决于列表间的关系。通常,将在结果集合容易处理和消除冗余的方式下确定各种部分查询。
本发明可以在每个部分查询后在结果列表中提供一个冗余校验和/或一致性校验。根据本发明的实施例,基于部分查询的结果集合产生了没有冗余和/或不一致的对象。
储存的结果在进一步部分查询的结果的基础上过滤或清除。比如,如果第一部分查询返回的在后出现的关键字的值与在初级查询中涉及的列表不相关,则对象中的数据与所述结果相关,并且包含了可以从结果集合移除的所述关键字。
本发明可以提供的有:每次部分查询涉及一个列表或互相连接的多个列表,并且,其中每次部分查询具有在前建立的列表的关键字的值作为输入,尤其是链接关键字。所述链接关键字将所述列表或一个或多个所述多个列表与另外一个不包含在所述部分查询中的列表相连。
所述链接关键字的值可以作为在先部分查询的结果寻找。用作输入的关键字也可以是在先步骤中确定的网关列表(gateway table)的关键字值。第一部分查询在网关列表中的不同是查询部分,而它的关键字数值用作输入。术语网关列表将在下面说明。
本发明可以提供的有:所述图表包含至少一个分支节点,该分支节点与至少两个其他节点相连,并且,其中初级查询中涉及的列表与所述分支节点得出的分离的分支相关,其中,执行包括对应所述分支节点(分支列表)的列表的部分查询,并且,其中对一个或多个包含在每个分支中的列表执行至少一个部分查询,每个分支具有包含分支列表作为输入的部分查询。
每个分支的各自的串行部分查询可以具有另外的串行部分查询,其最终包括与初级查询相关的列表。每个分支的查询链可以被串行或相互并行评价。
如果一个分支包括与必要查询条件,比如,在SQL下WHERE子句中确定的相关的列表,则可以优选地首先评估这个分支,并且由此检索实际上与满足所述条件的条目相关的分支节点的那些关键字。一般来说,这些关键字要比那些在分支节点被“通过”,即,包括在初级查询中,用于第一次的关键字少。因此,包括节点分支的第一部分查询结果将减少到只包含分支节点的这些关键字。这个减少了的关键字值集合,将然后用作对与其他分支相关的一个或多个部分查询的输入。
如果两个或多个分支与必要查询条件相关,也可以通过在事先评价的所述分支节点的关键字的基础上分别评估每个分支而进行。每个分支的评价将分别作为结果返回,分支节点的那些关键字与满足必要条件的一个条目相关。在相关结果的顺序处理中,只有那些包含了与符合任一条件的条目相关的分支节点的关键字的条目将被保留。
本发明可以提供一种评价涉及包括至少一个关系数据库管理***(RDBMS)的关系数据库查询的方法,所述查询与所述关系数据库的至少一个列表有关,所述方法包括将所述关系数据库的一个列表确定为网关列表来评价所述查询,通过所述的RDBMS来检索涉及查询的列表中一个或多个条目的所述网关列表的一个或多个唯一的标识符,使用所述RDBMS,从一个和多个与所述网关列表的所述查询的唯一的标识符相关的被检索的一个或多个列表检索信息,并给所述查询提供结果。该结果可以是传统意义上结果列表中的包括了与所述检索信息相关的网关列表中查询到的初级关键字的一个结果集合,或者是包括了可以从这种传统结果列表中导出的包含了查询结果的对象。
根据本发明,选择“网关列表”构成该查询评价的起点。在某种意义上,将它作为该查询评价的入口点或“网关”。根据本发明,在提出所述查询之前或者在其评价过程中,指定列表作为网关列表,意味着依照这个列表执行检索一个或多个唯一标识符的步骤,当然假定这个列表与查询中所引用的列表有关。指定列表作为网关列表可以预先执行,例如在提交查询之前指定其作为***或数据库设定的一部分或者通过用户设置的方式。然而,本发明也可以提供在该查询评价的过程中,根据合适的标准确定列表作为网关列表,上述步骤是在关于指定这个列表之后执行的。在优选实施例中,以上提及的唯一标识符是网关列表的主码或唯一索引。然而,本发明还可以提供所述唯一标识符是不同列的索引的综合以及在某些情况下列表的行的所有索引的综合,所述的唯一标识符是通过定义的在关系数据库管理***中的唯一的标识符。
本发明可以提供,当检索所述网关列表的一个或多个唯一标识符时,在第一步骤中检索了预定的索引。如果这个索引或这些索引没有以唯一方式指定一行列表,唯一标识符就由这些索引根据适当的步骤形成。一个步骤可以是将索引加入到在所述初始步骤中检索过的索引中,直到所述索引的综合是用于与列表中将要查询的条目有关的行的唯一标识符。在这种情况下,这可以一直持续到行的所有标识符都包含在该综合中。这样形成了唯一标识符,证实该有关的行仍与将要查询的列表中的所述条目相关。如果不是这样,该相应的标识符被删除。可选择的,例如可以提供如果在所述初始步骤中已检索过的索引实际上指定了网关列表的多个行,只继续进行该第一行,由此接受可能的信息损失。
本发明可以提供:所述关系数据库包括一个或多个预定的集线器列表,所述查询与所述关系数据库的至少一个列表有关,其中所述方法包括通过所述RDBMS的方式检索与将要查询的列表中的一个或多个条目有关的集线器列表的一个或多个唯一标识符、使用所述RDBMS、从将要查询的列表中检索与所述集线器列表的所述被检索的唯一标识符有关的信息并向该查询提供结果,例如以结果集的形式(对象或结果列表),其包括与所述被检索的信息有关的该集线器的被检索的主码。
本发明可以提供:基于一个或多个数据库定义了一个或多个程序库。在此的用意是,将程序库定义成列表的汇集,这些列表彼此连接并且它们不需要在同一数据库中,其中恰好有一个列表被定义成集线器列表。程序库中的所有列表直接或间接地连接到集线器。因此,通过集线器中的条目以及与该集线器的(直接或间接)关系能访问程序数据库中的任何条目。由此,可以认为集线器列表代表该程序库。也就是说,本发明意义上的程序库具有用于查询评价的一个唯一入口点或网关,实质上即所述单个集线器。如果程序库专门基于一个数据库定义的,其可以被看成受限的数据库。另一方面,如果第二数据库列表包括在程序库中,该程序库在某种意义上是数据库的扩展。不同的程序库可以享有同一列表。根据本发明使用程序库的概念,可以以比底层数据库更高的水平定义概念,其可以适合应用的需要或用户的希望,而不会影响数据库的底层结构。
使用程序库的概念,如果该程序库涉及多个数据库,显而易见就可以进行多个数据库中的查询,而不用在每个数据库中具有集线器。在这种情况下,在一个数据库中仅有一个集线器,即程序库的集线器(根据定义其包括在一个所述数据库中)。
因此,无论何时参考数据库的集线器或网关列表,应当理解的是这个集线器或网关列表可以是程序库的集线器或网关列表,其中程序库定义在所述数据库上或包括所述数据库的多数据库上。由于程序库实质上是添加在底层数据库上的数据库结构,因此应当理解无论何时参考数据库中的查询或数据库中的查询评价,其阅读须加以必要的变更,除非给出了相反的指示。
集线器列表(也称为“集线器”)实质上是用于在所述数据库或程序库中评价查询的预定的网关列表。通常,查询是用于可搜索的实体中的相关条目的整组,即与列表中的唯一识别的条目相关的在任何列表中的信息,或一部分这种组。如果该可搜索实体是关系数据库,所述整组的相关条目包括与所述数据库中所述条目直接或间接连接的所有条目。通过在数据库上或交叉数据库定义更高水平的实体如程序库(在上述说明中已经理解),一整组相关条目是所述程序库中的一组所有条目,其直接或间接地与包含在所述程序库中的列表中的唯一被识别的条目相关。在许多情况下既不需要也没有必要提供与列表中的条目相关的所有信息。在这种情况下,将会限制到对列表的某列或某列表的查询。在SQL语言中,可以使用标准语法进行这种选择。在优选实施例中,列表和/或列表列的选择将由用户或管理员来预先确定,作为在键入指定查询前用户界面的部分设置。如果专门基于一个单独的数据库确定程序库,该程序库中的一整组相关条目将是整个数据库的一整组相关条目的部分。这意味着通过在数据库上定义程序库,已经形成了对将要查询的列表及列表列的限制,使得当提交参考这个程序库的查询时,不要查询该数据库的其它列表。可是,必须注意,程序库中的一整组相关条目可能不完全包含在数据库的一整组相关条目中,这是因为该程序库可以包括两个或更多不同数据库的列表。
在多数情况下,用户键入的查询输入将由包含在查询结果中的查询条件指定数据组成的。为了所讨论的目的,将查询条件考虑为在该查询中某些元素存在于某些指定的数据字段中的条件。对于关系数据库,这将意味着某些列表中的某些条目具有指定的值。对于平面文件,这将意味着某一顺序的数据,例如以字母顺序,出现在某一数据字段中。尽管这是用户所理解的,该查询条件并没形成可由***处理的全部查询。为了返回结果,***需要附加信息,该附加信息是关于哪条涉及所述查询条件的信息应该被返回,例如其它表中的有关信息。附加信息包含在设定中,该设定可以部分或整体由用户确定。基于这些查询条件和预定的关于将要查询的表和列的设定,***生成一个或多个提交给关系型数据库管理***(RDBMS)的查询命令。查询条件通常将条件加于将要选定的列的行。在这样情况下,依照本发明的方法将首先寻找满足以查询条件表示的条件的条目,然后返回一个或多个集线器索引,或在优先实施例中集线器表的唯一标识符。
本发明也可以提供在查询中将要检索的列中的所有条目,在这种情况下该查询将检索集线器表的关于某一列的所有的唯一标识符。
本发明可以提供:所述查询,用于一个或多个数据库或程序库的相关条目的完整组或用于所述的关系数据库的这样完整组的预定部分,并且所述查询包括涉及所述数据库或程序库的一个或多个查询条件,其中所述方法包括:
—识别涉及查询条件中指定条目的网关表,
—识别涉及符合查询条件的所述的条目的所述网关表的一个或多个唯一的标识符,
—检索相关条目的完整集合或部分集合,其中该部分集合涉及所述的网关表的唯一的标识符。
在多个实例中,查询将涉及不同的实体,例如涉及两个数据库或两个程序库、数据库或程序库和平面文件或多个数据库、程序库和/或平面文件。同样地,也可以是查询涉及一个数据库中的表,表涉及相同数据库的不同集线器。在所有这样的实例中,依照其中的优选实施例,本发明提供的那些涉及集线器或者在不同于程序库或关系数据库的实体的情况下涉及所述的第二实体的一个或多个子实体的查询的部分将会被分别处理,并且通过利用集线器唯一的标识符之间的关系,例如集线器的主码和其它实体的唯一的标识符,以及在这种情况下多个这样的标识符之间的关系将部分搜索结果结合在一起。简单的情况下,确定哪个集线器的唯一标识符涉及另一集线器的其它标识符或者涉及哪个标识符,并且将相关的两部分的查询的结果结合在一起。
本发明可以提供的所述查询包括至少一个位于所述的数据库外部或位于包括在所述查询中的程序库外的第二可搜索实体,所述第二实体包括子实体,每个子实体具有至少一个标识符,用于唯一识别所述的子实体,并且其中所述方法包括:
检索所述第二可搜索实体的子实体的一个或多个标识符,所述的第二可搜索实体与所述的查询相关,特别是与所述查询的查询条件相关,
检索所述关系数据库或程序库的集线器的一个或多个唯一标识符,例如主码,所述关系数据库或程序库与所述子实体的所述被检索的标识符相关,
检索相关条目的集合,特别是相关条目的完整集合,其涉及所述集线器的所述的被检索的唯一的标识符,
从所述的子实体检索由所述第二实体中被检索的标识符识别的信息,
将来自于所述的第二可搜索实体和所述的数据库或程序库的检索信息合并为结果集。
另外或可选择地,本发明可以提供的所述查询包括至少一个位于所述的数据库外部或位于包括在所述查询中的程序库外的第二可搜索实体,并且包括子实体,每个子实体具有至少一个唯一指定所述子实体的标识符,并且其中所述方法包括:
检索一个或多个与条目相关的所述的数据库或程序库的集线器的唯一标识符,所述的条目与所述的查询相关,特别是与所述查询的查询条件相关,
检索所述第二可搜索实体的子实体的标识符,所述的第二可搜索实体与所述的集线器的所述的检索唯一标识符相关,
检索相关条目的集合或其与所述的集线器的所述的检索唯一标识符相关的部分,
从所述的子实体检索由在所述的第二可搜索实体中被检索的标识符识别的信息,
将来自于所述的第二实体和所述的数据库或程序库的检索信息合并为结果。
本申请中的可搜索实体的意义可以是数据库、程序库,其中的标识符可以是主码或集线器表的其它唯一标识符。
本发明可以提供的所述的第二可搜索实体是第二关系数据库或程序库,所述的标识符是主码或所述的关系数据库或第二程序库中的集线器表的另一唯一标识符,所述的子实体是表、连接表或其部分的结合。
本发明可以提供的所述的第二可搜索实体是平面文件的汇集,在该汇集中子实体作为平面文件。
检索涉及第二实体的检索标识符和/或集线器的检索唯一标识符的信息的步骤可以在检索第二实体的标识符和唯一标识符或集线器的标识符之间的关系步骤之前或之后进行。然而,在本发明的优选实施例中,首先对涉及查询条件的一个实体的标识符进行评价,然后检索其它实体的相关标识符,并将其它实体的这些标识符用作检索其它可搜索实体中的相关信息的起点。如果查询条件既涉及数据库或程序库又涉及第二可搜索实体,优选首先对第二实体的标识符和涉及查询条件的集线器的唯一标识符进行检索,然后将所述的第二实体的标识符和所述的集线器的标识符建立联合,所述的集线器的标识符涉及所有的查询条件,也就是,两种条件既涉及关于数据库或程序库的条件又涉及第二可搜索实体,然后只检索那些与所有查询条件一致的附加信息。
本发明可以提供的所述的检索所述的第二可搜索实体的标识符和所述的数据库或程序库的唯一标识符之间关系的步骤包括:解除集线器的唯一标识符和所述的第二可搜索实体的标识符的结合的步骤,其中第二可搜索实体的标识符与查询条件不一致,以及只检索涉及标识符的附加信息的步骤,该标识符包括在与选定的参数一致的标识符的结合中。
本发明可以提供:该查询涉及列表,该列表与至少两个集线器表有关,其中所述的方法包括:
—检索集线器表的一个或多个唯一标识符,其在涉及各自的集线器的表中涉及满足查询条件的条目,
—检索其它各自的集线器的唯一标识符,其涉及所述的关于满足所述的查询条件的条目的所述检索唯一标识符,
—检索相关条目的集合或依照该查询其与所述的集线器的所述的检索唯一标识符相关的部分,
—将涉及所述集线器的检索信息合并为结果。
检索其它各自的集线器的唯一标识符可以包括在第一步检索涉及查询条件的检索唯一标识符中找到的唯一标识符。在这样情况下,无论唯一标识符的结合是否满足查询条件,都会执行一致性检查。
本发明可以提供:所述的检索集线器列表的唯一标识符之间关系的所述步骤包括:解除集线器的与查询条件不一致的唯一标识符的结合的步骤,以及只检索涉及至少一个集线器的至少一个唯一标识符的这种附加信息的步骤,该标识符包括在与搜索的参数一致的唯一标识符的结合中。
上述的两个集线器中,至少一个可以是程序库的集线器或两个集线器都可以是程序库的集线器。也可以设置为所述的两个集线器是在相同的关系数据库里的集线器。这些可以,但不一定是限定在这个数据库中的两个程序库的集线器。一个或两个也可以是不涉及程序库的集线器。
本发明也可以提供在执行所述的涉及条目的集合或其中的部分的每个集线器的部分查询之后,各自的结果连接,并随后检查与查询条件的一致性,例如检查冗余。本发明也可以提供为每个部分结果创造对象,并且将这些结果进一步处理来产生查询结果。
本发明可以提供的检索可搜索实体的标识符的步骤是基于所述的实体的标识符之间预先设定的关系而执行的,其中所述的标识符与可搜索实体的另一个标识符有关。
本发明也可以提供的检索可搜索实体的标识符的步骤是在执行查询期间而动态执行的,其中所述的标识符与可搜索实体的另一个标识符有关。本发明也可以提供所述的步骤是部分基于所述的实体的标识符之间预先设定的关系和部分动态执行的。
特别地,数据库的集线器和另一可搜索实体的标识符之间的关系可以基于静态链接或“匆忙”创建的动态链接而建立。
这样,分支列表与集线器列表相似,因为多个查询是来源于其中的。事实上,在大多数情况下,集线器列表也是分支列表,典型的实例就是数据库,其中图表表示的数据库是星形的,集线器在星形的中心。因此,评价来源于分支节点的分支的方法可以与评价来源于同一集线器的相异图表的方法相似。然而,应当记住集线器列表和分支列表的确定是不同的。在确定集线器列表和分支列表之间的差别是集线器列表是用于评价基本查询的预先确定的入口点,它不一定标注一个分支,而节点列表也可以是在评价初始查询中确定的列表。
依照本发明的方法包括步骤:
—识别涉及初始查询中引用的列表的单个或多个集线器,
—在所述数据库的图表表示中,确定至少用于一个、优选确定用于所有集线器的、将所述集线器连接到所有列表的最佳图表,其中所述的列表与所述的集线器相关,并且其在初始查询中被引用,
—执行关于所述最佳图表的查询。
可以提供评价关于所述的图表的所述查询,包括关于所述的最佳图表相互串行的列表的串行部分查询被执行。
上面引用的最佳图表是由最优化算法确定的图表。用于找到连接给定点的最佳图表的最优化算法,诸如Dijkstra算法在本领域是熟知的。该图表优先地对速度进行优化,以此速度可以解决部分查询的顺序。进行的一个方法是给图表中的节点之间的每个链接分配权重并改变初始图表直到累加权重被优化。该权重可以作为度规来实现,并且因此依照该度规来寻找“最短的”路径。
利用节点图来定制查询进程的概念以及将大查询***为若干较小的串行查询的概念,特别是接续的概念,并不局限于对包括预先确定的集线器列表和涉及所述集线器的列表的查询的评价。事实上,该概念可以不依赖集线器的概念来应用,例如因为对于包括关系数据库的查询来讲,可以确定网关列表,如上所述该网关列表形成了评价该查询的起点,并且由此建立和评价到包括在该查询中的列表的路径和图表。该网关列表并不一定是静态的或预先确定的,例如集线器,但其也可以就具体的查询来选择,甚至在以连接该网关列表和该查询中引用的列表的图表关于评价进程速度被优化的方式(例如上述的算法)评价的进程中。
例如,该概念的进一步的应用可以是两个数据库链接之间的评价。依照本发明的实施例,两个数据库之间的关系始终是通过这两个数据库的集线器建立的。为了建立这样的关系,这两个数据库的两个列表(以后称为“链接列表”)之间存在的链接可以用于在该两个数据库的两个集线器之间提供动态链接。从第一数据库集线器列表和该集线器的某个唯一标识符开始,找到第一数据库中的链接列表,并且所述的集线器列表到链接列表之间的关系建立,例如利用该数据库的节点图。所述的链接列表中的涉及集线器列表的所述的唯一标识符的条目和第二数据库中的链接列表中的相关条目被确定。随后,第二数据库的集线器的涉及所述的第二链接列表的条目的唯一标识符被确定。尽管该步骤可以预先执行,例如对于所包括的集线器的主码,其中这样找到的集线器的主码之间的关系可以静态地预先存储,目前在评价查询中优选地动态执行这些步骤。节点图中的图表概念和接续概念可以应用到动态执行这样的链接中。如以前所阐述的,可以建立通过链接列表连接两个集线器的图表(其中不同数据库的两个链接列表之间的链接象数据库中的正常链接来处理)并且执行并评价多个串行查询,其以主码的确定值或第一集线器的另一个唯一标识符开始,最终通向第二集线器。为了完整性,应该提及的是也可以使用混合型的链接,其中部分步骤预先执行并且部分动态执行。
本发明可以提供的检索所述的网关列表的唯一标识符的所述步骤包括:
—确定初始查询中引用的列表,
—在所述数据库的图解表示中,确定连接所述列表的网关列表,其中列表被描绘成节点,列表之间的链路描绘成节点之间的连线,
—查询所述的数据库中的网关列表的涉及所述列表的一个或多个索引,特别是主码。
本发明可以提供的所述的列表的一个或多个特定的条目由查询条件包含,并且查询所述的数据库中的网关列表的涉及所述条目的一个或多个索引。
本发明可以提供在所述的图解表示中,建立从所述列表到所述网关列表的路径,以及对所述索引的查询的执行是通过查询与所述的图表中的节点相对应的所有列表,来寻找所述的图表中列表之间的链接关键字的值,这是从查询中所引用的列表和例如其某些条目开始。
本发明可以提供:依照预先确定的度规,所述的路径是作为所述的列表和所述的网关列表之间最短的路径选定的。
本发明可以提供:所述的路径是一部分或是等于用于确定部分查询的图表,所述的部分查询用于从涉及所述的网关列表的列表中检索附加信息。
本发明可以提供:如果涉及网关列表的同一行的且由所述的查询数据库步骤确定的索引或一组索引没有唯一识别所述的网关列表的行,网关列表的一行或多行与所述的索引相关唯一标识符被确定。
本发明可以提供:用于评价初始查询的部分查询至少部分并且优选地是完全在所述的评价进程中动态生成。
本发明可以提供:所述的结果集由面向对象的表示方法来表示。
本发明可以提供:所述的初始化查询的结果表达为通过对象关系映射得来的对象。在该优选实施例中,在评价初始化查询的进程中每个部分查询执行后,通过对象关系映射生成对象,并且表示所述的初始化查询结果的对象来源于与部分查询有关的这些对象。在一个实施例中,由部分查询结果生成的这个或多个对象表述在XML中。
本发明可以提供:对所述的查询的评价是在对象管理器的控制下执行的,所述的对象管理器包括一组由计算机***执行的命令。
本发明可以提供:所述的对象管理器处理对象,其中该对象代表将被查询的一个或多个数据库的概要或部分概要。
本发明可以提供:所述的对象管理器确定动态生成并初始化的类。
本发明也可以提供:用于控制对包含有关系数据库的查询进行评价的数据处理***,其中所述的关系数据库包括关系数据库管理***(RDBMS),所述的查询涉及所述的关系数据库的至少一个列表,该数据处理***包括:
—用于确定列表用作评价所述查询的网关列表的装置,
—用于在将被查询的列表和网关列表之间建立关系的装置,
—用于使RDBMS检索所述的网关列表的一个或多个唯一标识符的装置,其中所述的唯一标识符涉及将被查询的列表中的一个或多个条目,
—用于使RDBMS从将被查询的列表中检索涉及所述条目的所述唯一标识符的信息的装置,
—用于向所述的查询提供或使得被提供结果的装置,其可以是结果集或结果对象,它包括涉及所述的检索信息的网关列表的检索到的主码。
所述的数据处理***包括用于将所述的关系数据库中的某列表设定为预先确定的网关列表的装置,网关列表用于将被评价的查询,
依照本发明的数据处理***,在进一步的实施例中,可以包括用于通过数据处理***控制如前所述的方法的执行的装置。
本发明也提供了计算机程序和包括这样程序的计算机可读取的存储介质,其中使得当计算机程序在计算机或计算机***上执行时,计算机或计算机***来执行以前所述的方法的步骤。
根据本发明的一个重要方面,依照本发明的方法使用标准的关系数据库管理***,并且确定该关系数据库管理***之外的所有查询操作。这带来了大范围的灵活性,并且事实上生成了可不依赖基础***而独立应用的平台。令人惊讶地,如果涉及到具有多个1∶N关系的列表,据发现依照本发明的方法,特别是评价依照图表和接续概念的查询,可以使速度显著上升,可以提升50%甚至更高,使得组合剧增开始出现。
附图说明
其它发明的进一步的特征和优点将从以下对本发明实施例联系相应附图所进行的描述中变得显而易见。
图1表示具体实例的解释中所参考的单个数据库的节点图。
图2A至2E表示根据图1的数据库的列表。
图3表示第二实例的节点图表。
具体实施方式
根据本发明的一个实施例,首先对将用于实现本发明的数据库进行分析。实质上即汇集关于该数据库列表、列、类型、大小、其索引以及码的信息。用于汇集这些信息的分析工具在现有技术中就可以得到。可以使用例如JDBC(JAVA数据库连接)或任何其它的RDBMS API来汇集这些信息。从这些信息中,使用列表之间的码关系以最小生成树的形式构建数据库的节点图表。实质上,对于任何列表,都期待有将这个列表和其它列表相连接的关键字(链接关键字),并且如果存在这样的链接关键字,引入代表这两个列表的两个节点之间的边来表示两个列表。必须理解,没有画实际的曲线图,而是构建了映射这个曲线图的目标结构。为了便于解释,在此引用该曲线图或该曲线图的元素,可以理解这些引用意味着与各个元素、关系或对相应的数据结构的操作有关。
通常,给节点和边分配某些属性。例如,可以给以后要用来确定最优曲线图的每个边分配权重,可以分配表示边代表1∶1、1∶N、N∶N或N∶1关系的属性,或者可以分配代表索引的存在的属性,特别是两个列表之间的关系,仅提出几个实例。已分配给节点(列表)的属性例如可以是列的名称、它们的大小、所其它相关信息。
在这一点上,还可以手工添加或改变列表之间的关系,其中在列表之间需要有联系。例如,如果存在列出科学出版物的作者的列表和有关联系方式如E-mail地址的列表,该列表与作者列表无关或不直接有关,可以手工***在其中一个列表中的作者姓名和另一个列表中的他或她的E-mail地址之间的关系。这个关系可以作为该数据库的改进而实现。然而,还可以在数据库外作为两个列表之间的外部链接来实现。
这个步骤的结果是代表列表模式的对象。这个模式对象被存储是为了进一步使用。在此所描述的实施例使用SRS环境,在这个环境下,这个模式对象将被存储为SRS对象管理器对象,例如通过SRS Java应用程序界面(API)。该对象管理器是一种控制SRS下查询评价的工具。SRS查询语言的具体情况可以在例如http://srs.ebi.ac.uk中找到。
作为进一步的步骤,确定集线器列表,其作为在查询的评价中的向列表的入口点或网关。对集线器的要求是它包括唯一的标识符,即列表中的每个数据集可以通过标识符来唯一识别。优选地,唯一的索引或主码用作唯一标识符,但是例如还可以使用索引的唯一组合。事实上存在两个使列表定义为集线器的理由。其中一个理由是源自用户范围并寻求提供查询中对用户有指导意义的焦点。另一个理由是更技术性的,并且寻求以可以更有效执行查询的方式来定义该列表。因而,集线器列表可以是表示感兴趣中心点的信息的列表。从技术角度看,集线器列表应该是可能被查询的列表,并且其优选地直接与其它列表相链接,其它列表可能被查询或涉及某种程度上其查询包括集线器的这种列表,并且这些列表可以由RDBMS最快地评价。例如,考虑建立统计表,其列表在关系数据库中非常频繁地被查询,并且列表的综合经常被查询到并相应地选择集线器列表。这两个理由可以经常相互调和,因为经常被查询到的列表通常也是用户主要关心的列表。
关心的焦点可以根据用户而转移。然而一个用户可能主要关心科学申请的作者,另一个用户可能主要对科学申请中的某个关键词感兴趣,并且不关心或者只是稍微关心作者。因此,本发明可以使得用户或数据库管理员能够定义一个集线器或多个集线器作为用户设定的部分,或者甚至当键入查询时。应当注意不止一个集线器可以限定在单个数据库中。这可能在大数据库中有用,因为它允许形成更小的子结构,例如程序库,特别是在大的数据集的大模式情况下,其可以用来提高性能。另一个可以使得在数据库中确定多个集线器的原因是可以以这种方式在数据库中确定列表簇,据知该列表是联合查询的,或者就不同的簇而言,其不是经常相互联合查询的。这以后将限制在许多情况下将被查询的集线器和列表之间的可能路径的数量,并由此对应用速度作出贡献。集线器的定义在SRS下还具有进一步的目的。通过选择集线器列表和唯一标识符(例如主码)作为进入数据库的入口点的标识符,得到可以被视作是围绕“集线器列”集中的数据结构,意味着通过定义明确的标识符访问数据。这与平面文件具有相似性,并由此允许将已经研发用于平面文件的SRS程序用于关系数据库。
当用户输入查询时,他通常仅指定他感兴趣的关键词,并且得到与所述关键词有关的所有信息。这些信息可能是完整的数据库条目。本发明的实施例可以提供,用户可以在绘成曲线图的用户界面上指定他感兴趣的数据库的列表或列。例如这可以通过提供用户用于表示感兴趣的信息的选择框而实现。关于这些需要的信息的范围的另外的信息可以在***设置中实现,该***设置可以或不可以由用户改变。
当用户在查询中键入信息时,根据该实例的该***以两步过程工作,与用于检索信息的SRS下的标准程序类似。在第一步中,识别一个集线器(或多个集线器)的唯一标识符,这些标识符与关于查询条件的列表有关,例如含有用户需要的关键词的列表。在第二步中,检索与查询条件有关的所有信息,直到这些信息在***设置中或由用户输入而指定。
更确切的,在第一步中用分析程序执行查询分析,例如用ICARUS分析程序。该分析得出的结果可以是二进制树形网络,其代表该查询的分级分析,并以较更高级指定该数据库,以较低级指定标识符字段“作者”、和甚至以更低级指定需要的关键词如“Smith”。该***现在将这个查询映射到在该***中存储的数据库的节点曲线图中。为了与上述实例保持一致,该***证实是否在指定的数据库中存在唯一识别作者和列的列表,其中应当出现作者的姓名。如果发现这种列表,该***证实集线器与所述节点曲线图中的这个列表是否有关,并证实究竟是哪个集线器与这个列表有关。然后它生成对集线器列表的唯一标识符如主码的查询,该标识符与所述列表中的符合查询条件的条目有关。由于已预先确立该集线器与该输入查询中的列表通过至少一个路径相关,因此应当存在集线器的与该条目相关的至少一个唯一标识符。
在特定实施例中,该***在所述节点曲线图中确立了从将要被查询的列表到集线器列表的路径,并且在该集线器的唯一标识符的查询中,还查询了该路径中与该查询条件所指定的条目相关的中间列表(节点)的码。这样,确立了与条目相关的整组关系,该条目符合查询条件、且包括集线器的唯一标识符。
假定在该查询中仅存在一个集线器和一个数据库,那么现在该***在所述节点曲线图中确立了曲线图或树,所述节点曲线图具有作为其起点的集线器列表,在该查询中参考的所有列表作为节点出现。该曲线图优选为没有任何环路的曲线图,即从集线器列表到在该查询中所参考的任何列表仅有一个路径。该曲线图可以具有几个源自集线器的支路,每个支路可以进一步包含支路。理论上,该曲线图在查询中所参考的列表之间的部分应该是最小化的。可是,这并不是在能绘成曲线图意义上的理解,而是在曲线图上所定义的并用于最优算法的度规意义上的理解。例如,对应于包括多个中间列表的曲线图的查询评价可以比对应于一个单独的中间列表的曲线图的查询评价更快速,其中包括多个中间列表的曲线图在其列表之间具有1∶1的关系,只具有一个单独的中间列表的曲线图的中间列表与沿着该曲线图的它的相邻的列表具有1∶N的关系,因此在有关度规的意义上该查询评价被“缩短”了。
已确立最优曲线图后,由于对在初始查询中所参考的列表中的条目进行查询,其中这些条目与第一步识别的唯一标识符的值有关,因此该图表被评价。更特别的,该***形成了对该查询的包括类别和部分SQL查询的目标计划,其中动态形成部分SQL查询。用于形成并说明类别和部分查询所必须的信息被保持在所谓“转盘”的数据结构中,其中该数据结构含有执行具有不同初始输入的查询所需要的所有信息,该不同初始输入也就是用于集线器标识符的不同值。该目标计划根据关于这个查询的曲线图的图解和信息而形成,并且可以包括最优化步骤。一旦已经形成这个目标计划,也就给出了初始信息,即集线器的唯一标识符的值以及随后运行的值。在该查询评价中,该***将查询该列表所有条目的值,这些列表由与集线器的主码相关的支路上的节点来表示。正如预先指出的那样,对于沿支路的多个列表,如果以通常方式形成,这可能引起具有许多虚假条目的大的结果集。根据本发明,将沿支路包括部分曲线图列表的查询分成了多个沿曲线图的列表的连续的查询,其中在部分查询中涉及的列表的各自的数量小于涉及整个支路的查询中的列表的数量。这些多个查询彼此连续,其中在先查询的结果被存储,并且至少部分地被用作至少一个随后接着的查询的输入。
因为其中第一查询的结果或部分结果被用作随后接着的查询的输入,连接两个沿曲线图的顺接的查询的技术在此被称为接续。接续意味着对应于曲线图的节点的两个列表并没有包括在同一查询中,其中这些节点直接相互连接。对于与沿曲线图直接连接的节点相对应的每对列表,存在以确立这两个列表之间的关系的、通常是链接关键字的一种链接。使用接续,输入该连接,在对包括这两个列表中的其中一个列表的前一个查询的评价中确立的连接码的值,通常被用作包括另一个列表的随后的查询的输入。这意味着没有包括这两个列表的连接,并且由此每个部分查询的结果集将变得更小。
在每个部分查询后,确定前一步中确定的码是否完全与沿曲线图的随后的列表有关。如果没有关系,各自的码值将从部分查询的结果中删除。另外,为了存储前的每个部分查询的结果,执行过滤以及检查冗余和/或相容性。在一个实施例中,冗余检查可以从与列表相关的列开始,沿着现在被查询的离集线器最远的曲线图部分。如果相同的码的组合证实是在这个等级,并且沿该部分曲线图没有N∶1或N∶N的关系,就意味着存在冗余并且除去了各自的条目。当然可以应用冗余检查的另一种技术。由于在每一步中仅形成和过滤小结果集,因此如果立刻查询初始查询中参考的所有列表,将产生以下结果,这种过滤、冗余检查等可以比大结果集的冗余检查和过滤更快更有效地进行。每个部分查询的结果具有已除去的冗余和不相容性,其存储为对象,并且存储检索所述对象所需要的信息。
在曲线图的支路的评价中,如果识别了进一步的支路,就可以独立地执行沿着每个支路随后接着的查询,这些随后接着的查询或者相互平行或者相互连续。可是,如果随后接着的支路相对较短,在给定的情况下,也可以在一个单独的部分查询中选择包括沿着这些随后接着的支路的列表以及与支路节点对应的列表。
以这种方式对支路作出整体评价后,综合该部分查询的结果并再一次检查冗余和相容性。对源自集线器的每个支路评价后,得到每个支路的结果集,每个支路的结果集都是由集线器唯一标识符的值来识别。然后将不同支路的结果汇总在一起,并再一次检查冗余和相容性,以得到最后的结果。
这个结果被表示成目标结构,如SRS的结构中提供的目标结构。对这个目标结构或代表随后的部分查询结果的这些目标作出定义,可以利用动态类,即当继续时对其作出定义然后对其进行说明以形成目标的类。动态类本身并不是新的,并且在Smalltalk语言中已知,但是这些动态类并不能在现有的只有一个静态或编译时间的类的语言如C++或Java中得到。SRS支持动态类,尽管早先的应用并不使用它。
根据本发明的重要方面,在初始查询的评价期间所形成的所有查询都是当运行时动态形成的。在其它实施例中,可以事先确定并优化沿着在集线器和列表之间的某些部分曲线图的部分查询,这些部分查询是经常被要求的。还可以期望事先确定引至表的“簇”的某些部分路线,其中动态确定(匆忙地)至要求列表的路线的最后的部分。进一步的优化技术可以忽视数据库曲线图中的某些连接。
上述两步过程可以被看成是在第一步中解决查询条件,在第二步中检索与其结果相关的信息。在本发明一个实施例中,包括符合查询条件要求的条目的列表并不必然是在所述第二步中进行的部分查询的部分,例如如果从列表中提取的信息被限定成与查询条件相关的条目值。还可以提出,已经提取并储存在第一步中的所有信息,这些信息与由在同一列表中的查询条件所指定的条目有关,使得后来不需要“再访问”该相关列表。
上述两步过程不是必须的。可以设想一个实施例,其中当该***检索该集线器的唯一标识符时,检索另外的信息,从在查询条件中参考的列表开始。例如可以提出,在查询集线器的主码时,该***还查询某一路径中的中间列表的码,该路径从由查询条件指定的条目开始到相关集线器结束,并且在随后的查询中,该***检索与这些码有关的信息。
对于仅包括一个集线器或一个数据库或程序库的实例在之前已经进行了描述。例如在一个单独的数据库中的多个数据库、多个程序库或多个集线器的实例中所包括多个集线器,具有这样的多个集线器的实例被以将初始查询分成几个部分查询的方式处理,其对应于曲线图的部分具有作为末端的集线器,其剩余部分仅包含一个集线器。
在两个集线器的实例中,在第一步中,如上所述检索与具有符合查询条件的条目的列表相关的集线器列表的唯一标识符的值,与所述列表的所述关系并不包括另一集线器。随后在第二步中,确定包括部分曲线图(与部分查询相对应)和一个或多个部分曲线图(与一个或更多个部分查询相对应)的最优化曲线图,其中独有部分曲线图(与部分查询相对应)与一个单独的集线器相关,并且不包括任何其它集线器,一个或多个部分曲线图(与一个或更多个部分查询相对应)与集线器相互连接。然后将评价每个集线器惟独与这个集线器相关的部分曲线图并存储各自的结果。然后将评价该查询或对应于该部分曲线图或这些集线器之间的曲线图的查询。然后综合这些部分曲线图的结果以生成整个查询的结果。
可选择的,可以应用接续的概念来评价两个集线器之间的链接,并且在部分曲线图中连接两个接续的每个集线器之后以及根据给定的事实在这些曲线图的进一步的位置上引入接续。评价这些连接集线器的部分曲线图,启动一个集线器的唯一标识符的值并评价对其它集线器的唯一标识符的相关值的查询,这些可以以相同方式进行,尤其是使用接续,正如之前对包括集线器和相关列表的查询的实例中所描述的那样。结果,将得到其它集线器的唯一标识符的一组值,然后检查这组值与查询条件的相容性。如果查询条件仅和与一个集线器相关的列表有关,那么这种做法就特别具有优势。在这种情况下,将在第一步中仅检索这个集线器的主码,另一个集线器象曲线图中分支点那样处理,引入接续代替曲线图上的连接第二集线器的最后的链接。
依据集线器的本质特性以及依据该集线器是否是在***设置中预先定义的或由用户选择的,可以期望在一个单独数据库中存储多个集线器的主码之间的预定的关系。这从概念上意味着在节点曲线图中引入两个集线器之间的直接链接,该直接连接将代替上述动态连接使用。
另一个期望的可能性是在该过程的第一步中检索包括所有查询条件的一个查询中的所有集线器的主码,由此得到主码的相应综合。这可以是一种明智的方式,尤其是在集线器之间存在直接连接特别是1∶1的连接的情况下。
包括多于一个数据库的实例可以以与包括多个集线器的实例相同的方式处理。为了简化起见,假设每个数据库仅包括一个集线器,并且数据库通过连接列表相互连接,每个数据库有一个连接列表,那么能将两个数据库之间通过连接列表的连接看成是节点曲线图中的正常边。以这种方式代表两个数据库,从概念上并尽可能考虑到本发明评价查询的方法,与在单独数据库中的两个集线器的实例存在微小差别。即,如之前所述的,在查询条件的基础上检索集线器的相关的唯一标识符,将通过包括两个数据库的集线器和在查询中所参考的任何其它列表的两个数据库来确定曲线图。该曲线图将包括只和一个数据库中的集线器相关的部分曲线图、只和另一数据库的集线器相关的第二曲线图、以及使第一数据库的集线器和第二数据库的集线器相连接并通过所述两个链接列表延伸的部分曲线图。应当注意该这些链接列表并不必须是集线器列表。
此外,该查询评价与之前所述的查询评价类似。将评价与第一和第二集线器相关的部分查询,输入在三个部分曲线图之间的接续,并以上述方式评价在两个集线器之间的路线。应当注意,在评价两个集线器之间的曲线图时,如果在两个集线器之间不存在直接链接,将会再一次使用接续的概念。在两个集线器的实例中,通过从一个集线器到另一个集线器的节点曲线图来确定最优路径,并且在某些节点之间输入接续,由此定义单独评价的部分查询,该部分查询的结果最终彼此综合以得到连接两个集线器的部分曲线图的部分结果,然后该部分结果与剩下的与各自的集线器有关的两个部分曲线图汇合在一起。
如果该查询仅与一个数据库有关,并且得到与符合所述查询条件的条目相关的信息仅需要第二数据库,象之前对于在一个单独的数据库中的两个集线器的实例所描述的那样,可以进行检索与查询条件的条目相关的第一数据库的集线器的主码,然后评价与另一个数据库中的集线器的动态链接,根据通过这个链接的评价所检索的第二数据库的集线器的主码值,评价源自所述第二数据库的集线器的部分曲线图。
将查询分成几个部分查询并且每个部分查询包括集线器的上述概念还可以应用在评价查询中,其中查询包括关系数据库和另外的可搜索实体,可搜索实体包括用来识别子实体并从所述子实体中提取数据的标识符,尤其是指平面文件。如果关系数据库和平面文件包括在同一个查询中,可以将初始查询分成三个部分,即一个部分包括集线器和在关系数据库中与其相关的列表,一个部分包括从平面文件中提取信息,一个部分关于该平面文件和该关系数据库之间的链接。这样,可以在节点曲线图中在本发明的概念内处理平面文件,节点曲线图象没有与其相关的进一步的列表的集线器。
为了进一步解释本发明的原理,参考图1所示的结构给出略微简单的实例。图1表示关系数据库,其包括列表RESEARCHERS(调查者)、DEPARTMENTS(部门)、ARTICLE(文章)、AUTHORS(作者)以及TITLE/ABSTRACT(题目/摘要)。可以有进一步的列表,其通过图1中虚线来表示。列表调查者具有列RNAME(调查者姓名)和RI(调查者标识符),后者定义了这个列表的主码。RI形成与列表DEPARTMENTS的连接(link)码,RNAME形成与列表AUTHORS的列RNAME的连接(link),其还包括列ANAME(作者姓名)和ARTID。ARTID依次形成与列表ARTICLE的连接。列表ARTICLE包括列ARTID、JOURNAL YEAR(期刊年份)和PAGE(页)。ARTID还形成从列表ARTICLE至列表TITLE/ABSTRACT的连接,其中列表TITLE/ABSTRACT具有列TITLE和ABSTRACT。在这个实例中,将列表RESEARCHERS预定为集线器列表,例如这是因为数据库的用户是希望由雇员进行监控该调查的R&D(研究开发)机构。
让我们现在假定提交了一份查询,该查询是关于在摘要中出现“insulin”的所有文章,同时要求检索关于该文章、该题目和该姓名以及各自的作者的部门的书目数据。该***将首先在列表ABSTRACT/TITLE的列ABSTRACT中寻找包括单词“insulin”的实体。接着,该***将检查在列表ABSTRACT/TITLE和集线器列表RESEARCHERS之间是否存在关系。当二者之间有关系时,通过列表链ABSTRACT/TITLE-ARTICLE-ANAME-RESEARCHERS,该***继续检索与包含有单词“insulin”的列表ABSTRACT/TITLE中的列ABSTRACT中的条目有关的码RI。经证实有两个RI值符合这个条件,即值1和值2(对应于调查者Smith和Jones)。
该***现在从要求信息的那些列表开始检查。这些是列表RESEARCHERS(调查者)、DEPARTMENTS(部门)、ARTICLE(文章)以及ABSTRACT/TITLE(摘要/题目)。由此,该***现在将确定将这些列表和集线器列表RESEARCHERS相连的曲线图,正如图1中的实线所表示的。在第一步中,该***接着将评价列表AUTHOR中具有姓名Smith和Jones(对应于RI1和2;为了简单起见,假定这些名字是调查者的唯一标识符)的所有条目,并且检索ARTID的相关值。这个结果作为第一部分结果集被存储。应当注意,并没有在这一步中查询随后的列表ARTICLE和AB STRACT/TITLE,意味着形成了列表AUTHORS和ARTICLE之间的接续。在第一步中检索的码ARTID现在用作随后的检索书目数据、题目和摘要的查询的输入。观察这个查询的结果,应当注意,该结果含有文章3和4,这是因为Smith和Jones作为这些文章的作者被列出。可是这些文章并不符合查询条件。因此该***检查这个用于相容性的第二部分查询的部分结果,并除去结果集的那些不与查询条件(摘要含有单词“insulin”)相容的部分。这剩下了如以下所示的具有文章ID1和2的结果集。
RI | RNAME | ARTID | JOURNAL | YEAR | PAGE | TITLE | ABSTRACT |
1 | Smith | 1 | Journal X | 2000 | 193 | Title1 | “…胰岛素…” |
1 | Smith | 2 | Journal Y | 1999 | 295 | Title2 | “…胰岛素…” |
2 | Jones | 1 | Journal X | 2000 | 193 | Title1 | “…胰岛素…” |
将要注意的是文章ID1出现了两次,这是因为Smith和Jones是文章1的共同作者。
现在已经对该曲线图的第一支路进行了评价,其结果在上述结果集表示出来,该***现在转向评价包括集线器RESEARCHERS和列表DEPARTMENTS。当在这个支路内仅包括两个列表时,该***不需要进一步的接续,检索RI1和2对应于Smith和Jones以及Smith在部门A工作、Jones在部门B工作的信息。这个结果现在和在先的结果集综合在一起,使得整个结果集如下所示。
RI | RNAME | DEPID | ARTID | JOURNAL | YEAR | PAGE | TITLE | ABSTRACT |
1 | Smith | DepartmentA | 1 | Journal X | 2000 | 193 | Title1 | “…胰岛素…” |
1 | Smith | DepartmentA | 2 | Journal Y | 1999 | 295 | Title2 | “…胰岛素…” |
2 | Jones | DepartmentB | 1 | Journal X | 2000 | 193 | Title1 | “…胰岛素…” |
该查询现在实质上已经完成。为了简单起见,这个结果被表示成结果表。根据优选实施例,使三个部分查询的结果转化成目标,接着目标被综合以生成整个查询的结果。
让我们假定,在数据库的不同设置中,列表RESEARCHERS和ARTICLE已经被选作集线器。在这种情况下,为了评价该相同查询,该***将在第一步中确立ARTID1和2与查询条件(摘要含有单词“insulin”)相符合。然后该***在第一步中评价包括列表ARTICLE和ABSTRACT/TITLE的部分曲线图,并检索对应于文章1和2的书目数据、题目和摘要。在第二步中,该***将从ARTID的值1和2开始,通过列表链ARTICLE-AUTHORS-RESEARCHERS来确定列表RESEARCHERS的有关的RI。这可以在一个单独的查询中进行。还可以期望在AUTHORS和RESEARCHERS之间引入接续,即首先评价用于AUTHORS的码的部分查询,然后其被用作RI值的进一步查询的输入。在包括集线器列表RESEARCHERS和列表DEPARTMENTS的第三部分查询中,对集线器列表RESEARCHERS和列表DEPARTMENTS进行检索。这些部分查询的结果集被综合,其与上述初始查询的结果集相同。
如果将列表链ARTICLE-AUTHORS-RESEARCHERS看成在两个集线器之间的链接,我们知道,如果该列表RESEARCHERS和ARTICLE属于不同的数据库或不同的程序库,并且通过列表AUTHORS和RESEARCHERS之间的链接而连接,那么可以应用相同的程序。应该理解,在这些数据库之间的链接不需要属于数据库或程序库其中一个的集线器列表。
在一个数据库中有两个集线器的上述实例的改进中,还可以在第一步中确定符合查询条件的两个集线器的主码的值。这将返回RI1和2以及ARTID1和2,然后这些将用来评价包括各自的集线器列表以及其依据的列表的曲线图的两个支路。作为进一步的选择,可以在ARTICLE和RESEARCHERS之间的选择实现直接的静态链接。
在进一步的实例中,将参照表3所示的数据库来表示包括接续的优点。这个数据库包括以下示出的三个列表,列表“文章列表”被定义成集线器列表,ArticleID被限定成所述集线器列表的唯一标识符。
文章列表
ArticleID | Title |
12 | Title12 |
88 | Title88 |
754 | Title754 |
参考列表
ArticleID | Ref |
88 | Ref1 |
34 | Ref467 |
88 | Ref2 |
88 | Ref3 |
作者列表
ArticleID | Auth |
88 | Smith |
12 | Klein |
88 | Jones |
34 | French |
考虑到对于有关文章序号88的所有信息的搜索,阐述了两种情况,即一种情况是在集线器列表(文章)和每个相关列表(参考和作者)之间没有任何接续,一种情况是二者之间有接续。
情况1:没有接续
构建并提交单一的查询。该结果集将具有3乘以2等于6行。
ArticleID | Title | Ref | Auth |
88 | Title88 | RefP1 | Smith |
88 | Title88 | RefP1 | Jones |
88 | Title88 | RefP2 | Smith |
88 | Title88 | RefP2 | Jones |
88 | Title88 | RefP3 | Smith |
88 | Title88 | RefP3 | Jones |
返回的单一结果集
该冗余数据将在过滤处理和从唯一数据构建的对象期间被忽略。在该种情况下,例如数据“88”和“题目88”尽管出现了6次,但其将只被读取一次。同样适用于RefP1、RefP2、RefP3以及Smith和Jones冗余。由于过滤和对象生成算法,每个唯一字段只被读取一次。将搜索结果表示成对象或对象的结构,可以避免结果中的冗余。这样,当然优选在第一位置处避免冗余。这可以通过接续的概念进行。
情况2:两个链路都是接续
以串行或并行的方式构建并提交两个查询。如下所示的两个结果集被返回。
ArticleID | Title | Ref |
88 | Title88 | RefP1 |
88 | Title88 | RefP2 |
88 | Title88 | RefP3 |
结果集1
ArticleID | Title | Ref |
88 | Title88 | Smith |
88 | Title88 | Jones |
结果集2
忽略冗余数据(这种情况中仅“88”和“题目88”)。从这两个结果集构建对象。该对象等同于情况1中构建的对象。
应当注意通过该单一查询,结果集更大并且包括更多的冗余信息。返回的行数将随着列表数的增加(不同于1-1的关系)而显著地增加。在大多数真实世界数据库中复杂关系是通常的情况。
应当理解上述的实例仅仅是为了描述,并且本发明决不局限于这些实例。
本发明的说明书、权利要求以及附图中公开的特征两者单一地、也可以任意组合地,可以是实现不同实施例中发明的素材。
Claims (47)
1.一种评价包括一个或更多关系数据库的查询的方法,每个包括一个关系数据库管理***(RDBM),所述查询与所述关系数据库的至少两个列表相关,
所述方法包括:
确定包括在查询中涉及的列表的列表集合,其中,所述集合中的每个列表与至少一个其它列表相连,这样,在数据库的图表表示中,其中,列表用节点表示,且列表间的链路用节点间的连线表示,它们形成了连接与查询中涉及的列表所对应的节点的链接图表,
在与初级查询相当的所述集合上执行一个查询,其中,在所述集合上执行所述查询的步骤包括执行串行的部分查询,其中,在先查询的结果用作在后查询的输入,
将所述部分查询的结果结合来获得初级查询的结果。
2.根据权利要求1中的方法,其中在所述集合中执行查询的所述步骤包括:
在所述列表的集合中确定两个或更多的部分查询,这些查询结合等于初级查询,其中,至少有包括所述列表的集合的第一子集的第一部分查询和包括至少部分与所述第一子集不同的列表的第二子集的第二部分查询,
其中,不包含在所述第二子集中的在所述第一子集中的至少一个列表具有到所述第二子集中且不包含在所述第一子集中的一个列表的链路,所述链路对应所述图表中的一条线,它的移除将造成图表断开,
其中,所述第一查询得到包括所述两个列表间链接关键字的值的结果,并且,其中,所述第二查询具有作为输入的第一查询中确定的链接关键字的值,
执行所述第一查询,
使用所述第一查询结果执行所述第二查询,
将所有部分查询的结果结合得到初级查询的结果。
3.根据权利要求2的方法,其中,所述第一和第二子集互相不同。
4.根据权利要求1到3中任何一个的方法,其中,所述第一和第二部分查询在运行时间中动态生成。
5.根据权利要求1到4中任何一个的方法,其中,在先查询的所述结果包括在在后查询中包含的列表的外键值,并且,其中,所述外键的所述值作为所述在后查询的输入。
6.根据权利要求1到5中任何一个的方法,其中所述部分查询的结果存储为一个对象或多个对象。
7.根据权利要求1到6中任何一个的方法,其中在每个部分查询之后,在各个结果中实施一个冗余校验和/或一致性校验并且储存所述移除了冗余和/或不一致的所述部分查询的结果。
8.根据权利要求6和7的方法,其中所述冗余和/或一致性校验在生成包括所述部分查询的结果的所述对象时执行,或在所述对象生成后直接在所述对象上执行。
9.根据权利要求1到8中任何一个的方法,其中每个部分查询涉及一个列表或互相连接的多个列表,并且其中不是第一查询的每个部分查询具有作为输入的一个在前建立的链接关键字的值,所述链接关键字将所述列表或一个或多个所述多个列表连接到不包括在所述部分查询中的其它列表。
10.根据权利要求1到9中任何一个的方法,其中,所述图表包括至少一个与至少两个其它节点相连的分支节点,并且,其中,初级查询中涉及的列表与从所述分支节点得出的分离的分支相关,其中,执行的一个部分查询包括对应所述分支节点(分支列表)的列表,并且,其中对包含在每个分支中的一个或更多列表执行至少一个部分查询,每个分支具有包含作为输入的分支列表的部分查询的结果。
11.根据权利要求1到10中任何一个的方法,其中包含在所述集合中的所述列表不包含在一个单独的数据库中。
12.评价包含至少一个关系数据库的查询的方法,所述关系数据库包括一个关系数据库管理***(RDBMS),所述查询与所述关系数据库的至少一个列表相关,
所述方法包括
确定所述关系数据库的一个列表作为评价所述查询的网关列表,
检索与被查询的列表中一个或多个条目相关的所述网关列表的一个或多个唯一标识符,
从与所述网关列表的所述检索的唯一标识符相关的被查询的一个或多个列表中检索信息,
提供所述查询的结果,
其中,检索所述网关列表的一个或更多主码的所述步骤或从与所述网关列表的所述被检索的主码相关的被查询的列表中检索信息的步骤中的至少一个包括根据权利要求1到8中一个的查询评价。
13.根据权利要求9中的方法,其中,第一所述部分查询包括网关列表,且不同于第一查询的查询与在初级查询中涉及的列表相关。
14.根据权利要求12或13中的方法,其中,所述关系数据库包括一个或更多预定的集线器列表并且所述查询与所述关系数据库的至少一个列表相关,并且其中所述方法包括:
检索与将被查询的列表中一个或多个条目相关的集线器列表的一个或多个唯一标识符,
从与所述集线器列表的所述检索到的唯一标识符相关的被查询的列表中检索信息,
提供所述查询的结果。
15.根据权利要求12到14中的任何一个的方法,其中,至少一个程序库在一个或多个所述数据库中定义,所述程序库由互相连接的列表构成并且正好具有一个作为集线器列表定义的列表。
16.根据权利要求12到15中的任何一个的方法,其中,所述查询用于所述关系数据库或一个程序库的相关条目的完整集合,或者用于条目的部分这样的完整集合,并且包括一个或多个与所述数据库相关的查询条件,其中所述方法包括:
识别一个与查询条件中确定的条目相关的网关列表,
识别一个或多个与查询条件相符的所述条目相关的所述网关列表的唯一标识符,
检索一个与所述网关列表的所述主码相关的相关条目的完整集合或其部分。
17.根据权利要求14到16中任何一个的方法,其中所述查询包括在所述查询中包含的所述数据库以外或所述程序库以外的至少第二可搜索实体,所述第二实体包括每个具有至少一个标识符的子实体,其中,标识符唯一地标识所述子实体,并且,其中所述方法包括:
检索与所述查询相关的所述第二可搜索实体的子实体的一个或多个标识符,
检索与所述子实体的检索到的标识符相关的所述关系数据库或程序库的集线器列表的一个或多个唯一标识符,
检索与所述集线器的所述检索的唯一标识符相关的相关条目或其预定部分的集合,
检索来自所述第二子实体中的检索到的标识符所识别的子实体的信息,
将从所述第二可搜索实体和所述数据库或程序库检索的信息结合为结果。
18.根据权利要求14到17中任何一个的方法,其中,所述查询包括在所述查询中包括的所述数据库之外或程序库之外的至少一个第二可搜索实体,并且包括子实体,每个子实体具有至少一个唯一地标识所述子实体的标识符,并且,其中所述方法包括:
检索与所述查询相关的实体所涉及的所述数据库或程序库的集线器列表的一个或多个唯一标识符,
检索与所述集线器列表的所述检索到的唯一标识符相关的所述第二可搜索实体的子实体的标识符,
检索与所述集线器的所述检索的唯一标识符相关的相关实体或其预定部分的集合,
检索来自所述第二可搜索实体中检索的标识符所识别的所述子实体的信息,
将从所述第二实体和所述数据库或程序库中检索到的信息结合为结果。
19.根据权利要求17或18中的方法,其中所述第二可搜索实体是第二关系数据库或程序库,并且所述标识符是所述第二关系数据库或程序库中集线器列表的唯一标识符。
20.根据权利要求17或18中的方法,其中,所述的第二可搜索实体是平面文件的汇集,在该汇集中子实体作为平面文件。
21.根据权利要求17到20中任何一个的方法,其中,检索所述第二可搜索实体的标识符和所述的数据库或程序库的集线器的唯一标识符之间关系的所述步骤包括:解除集线器的标识符和所述的第二可搜索实体的标识符的结合的步骤,其中第二可搜索实体的标识符与查询条件不一致,以及只检索涉及标识符的附加信息的步骤,该标识符包括在与选定的参数一致的标识符的结合中。
22.根据权利要求12到21中任何一个的方法,其中,所述查询涉及与至少两个集线器列表有关的列表,其中所述方法包括:
—检索集线器列表的一个或多个唯一标识符,所述标识符在涉及各自的集线器列表中涉及满足查询条件的条目,
—检索各自的其它一个或多个集线器的唯一标识符,其涉及与满足所述查询条件的条目相关的所述检索的唯一标识符,
—检索相关条目的集合或其预定部分,它们依照该查询与所述集线器的所述检索唯一标识符相关,
—将涉及所述集线器的检索信息合并为结果。
23.根据权利要求22的方法,其中所检索所述集线器列表唯一标识符之间关系的步骤包括解除与查询条件不符的集线器列表唯一标识符的结合的步骤,和只检索那些附加的与至少一个集线器列表的唯一标识符相关的信息,所述标识符包含在与搜索参数一致的唯一标识符的结合中。
24.根据权利要求22或23中的一个权利要求的方法,其中至少一个所述集线器是程序库的集线器,并且该查询涉及所述的程序库。
25.根据权利要求24的方法,其中该查询涉及两个程序库,并且所述的集线器是两个程序库的集线器。
26.根据权利要求22至25中的一个权利要求的方法,其中所述的两个集线器是在相同关系数据库中的集线器。
27.根据权利要求12至26中的一个权利要求的方法,其中检索集线器列表的唯一标识符和/或可搜索实体的唯一标识符的步骤是基于所述实体的关键字和/或标识符之间预先设定的关系而执行的,其中集线器列表的唯一标识符和所述可搜索实体的标识符与集线器列表的另一唯一标识符和/或可搜索实体的标识符有关。
28.根据权利要求12至26中的一个权利要求的方法,其中检索集线器列表的唯一标识符和/或可搜索实体的唯一标识符的步骤是在执行查询期间而动态执行的,其中集线器列表的唯一标识符和所述的可搜索实体的标识符与集线器列表的另一唯一标识符和/或可搜索实体的标识符有关。
29.根据权利要求12至28中的一个权利要求的方法,其中在执行所述的检索涉及所述的网关列表的唯一标识符的信息的步骤中,查询选定的列表,该列表形成将网关列表连接到初始查询中所引用的列表的链接图表,其中在图表表示的数据库中,将列表描述为节点,列表之间的链路描述为节点之间的连线。
30.根据权利要求29的方法,其中所述查询所述图表的列表的步骤包括执行串行的部分查询,其中前一个查询结果被用作后一个查询的输入,第一部分的所述部分查询包括网关列表,并且不同于首次查询的查询涉及初始查询中所引用的列表。
31.根据权利要求12至30中的一个权利要求的方法,包括步骤:
—识别涉及初始查询中引用的列表的单个或多个集线器列表,
—在所述数据库的图表表示中,确定至少用于一个集线器列表的、优选将所述集线器连接到所有列表的最佳图表,其中所述的列表与所述的集线器相关,并且其在初始查询中被引用,
执行串行的部分查询,该查询包括关于所述最佳图表相互串行的列表。
32.根据权利要求12至31中的一个权利要求的方法,其中检索所述网关列表的主码的所述步骤包括:
—确定初始查询中引用的列表,
—在所述数据库的图表表示中,确定连接所述列表的网关列表,其中列表被描绘成节点,列表之间的链路描绘成节点之间的连线,一查询所述数据库中的网关列表的涉及所述列表的一个或多个索引。
33.根据权利要求32的方法,其中所述的列表的一个或多个特定的条目由查询条件包含,并且查询所述的数据库用于所述网关列表的涉及所述一个或多个条目的索引。
34.根据权利要求32或33的方法,其中在所述图表表示中,建立从所述列表到所述网关列表的路径,以及对所述索引的所述查询的执行是通过查询与所述图表中的节点相对应的所有列表,用于所述的图表中列表之间的链接关键字的值,该查询是从查询中所引用的列表和在此情况下其某些条目开始的。
35.根据权利要求34的方法,其中依照预先确定的度规,所述的路径是作为所述列表和所述网关列表之间最短的路径而选定的。
36.根据权利要求34或35的方法,其中所述的路径是一部分或是等于该用于确定部分查询的图表,所述的部分查询用于从涉及所述的网关列表的列表中检索附加信息。
37.根据权利要求32至36中的一个权利要求的方法,包括步骤:
—如果涉及网关列表的同一行的并且是由所述的查询数据库步骤确定的索引或一组的索引没有唯一识别所述的网关列表的行,则确定网关列表的一行或多行与所述的索引相关的唯一标识符。
38根据权利要求12至37中的一个权利要求的方法,其中用于评估初始查询的部分查询至少部分地在所述的评估进程中动态生成。
39根据权利要求1至38中的一个权利要求的方法,其中结果是由面向对象的表示方法来表示。
40根据权利要求39的方法,其中所述初始查询的结果表达为通过对象关系映射的方法得来的对象。
41根据权利要求1至40中的一个权利要求的方法,其中对所述查询的所述评估是在对象管理器的控制下执行的,所述对象管理器包括一组由计算机***执行的命令。
42根据权利要求41的方法,其中所述的对象管理器处理对象,该对象代表将被查询的一个或多个数据库的概要或部分概要。
43根据权利要求41或42的方法,其中所述的对象管理器确定动态生成并例示的类。
44用于控制对包含有关系数据库的查询的评估的数据处理***,其中所述关系数据库包括关系数据库管理***(RDBMS),所述的查询涉及所述关系数据库的至少一个列表,包括:
用来确定列表集合的装置,包括查询中引用的列表,其中所述集合中的每个列表与至少一个其它列表相连,这样,在数据库中的图表表示中,其中列表用节点表示,且连接列表的关键字用节点间的线表示,它们形成了对应查询中涉及的列表的连接节点的链接图表,用于在与初级查询相当的所述集合上执行或引起执行查询的装置,其中,在所述集合上执行的所述查询包括了执行串行部分查询,其中,在前查询的结果用作在后查询的输入,
用来将所述部分查询的结果结合或引起结合来获得初级查询的结果的装置。
45根据权利要求40的数据处理***,包括用于通过一个或多个数据处理***控制权利要求1至43中的一个权利要求的方法的执行的装置。
46计算机程序,使得当其在计算机或计算机***上执行时,计算机或计算机***来执行权利要求1至43中的一个权利要求的方法的步骤。
47.计算机可读取的存储介质,包括根据权利要求46所述的程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02007416A EP1349081A1 (en) | 2002-03-28 | 2002-03-28 | Method and apparatus for querying relational databases |
EP02007416.7 | 2002-03-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1647076A true CN1647076A (zh) | 2005-07-27 |
Family
ID=27798836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA038077086A Pending CN1647076A (zh) | 2002-03-28 | 2003-03-28 | 查询关系数据库的方法和设备 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20060074858A1 (zh) |
EP (1) | EP1349081A1 (zh) |
JP (1) | JP2005521954A (zh) |
CN (1) | CN1647076A (zh) |
AU (1) | AU2003222784A1 (zh) |
CA (1) | CA2480688A1 (zh) |
RU (1) | RU2004131666A (zh) |
WO (1) | WO2003083713A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101371220B (zh) * | 2006-01-10 | 2010-11-10 | Unz.Org有限责任公司 | 用于传送和显示分层数据的设备以及机器实现方法 |
CN102214214A (zh) * | 2011-06-02 | 2011-10-12 | 广州市动景计算机科技有限公司 | 数据关系的处理方法、装置及移动通讯终端 |
CN102236662A (zh) * | 2010-04-23 | 2011-11-09 | 广州市西美信息科技有限公司 | 数据库查询和控制方法 |
CN104303180A (zh) * | 2012-05-15 | 2015-01-21 | 微软公司 | 对结构数据基于场景的洞察 |
CN110168515A (zh) * | 2016-09-15 | 2019-08-23 | 英国天然气控股有限公司 | 用于分析数据关系以支持查询执行的*** |
CN110178128A (zh) * | 2017-03-15 | 2019-08-27 | 国际商业机器公司 | 使用优化的位图表示来管理大规模关联集 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1614255B1 (en) * | 2003-04-04 | 2014-09-03 | CA, Inc. | Method and system for discovery of remote agents |
US7188090B2 (en) * | 2003-06-30 | 2007-03-06 | Microsoft Corporation | Drill-through queries from data mining model content |
US8108375B2 (en) * | 2003-10-30 | 2012-01-31 | International Business Machines Corporation | Processing database queries by returning results of a first query to subsequent queries |
US20050097083A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Apparatus and method for processing database queries |
US20050210023A1 (en) * | 2004-03-18 | 2005-09-22 | Renato Barrera | Query optimizer using implied predicates |
US7974978B2 (en) * | 2004-04-30 | 2011-07-05 | International Business Machines Corporation | System and method for graph indexing |
US7624092B2 (en) * | 2004-11-19 | 2009-11-24 | Sap Aktiengesellschaft | Concept-based content architecture |
CN100440803C (zh) * | 2005-12-26 | 2008-12-03 | 北京航空航天大学 | 模型化处理网格信息的方法 |
US7725453B1 (en) | 2006-12-29 | 2010-05-25 | Google Inc. | Custom search index |
US20080243799A1 (en) * | 2007-03-30 | 2008-10-02 | Innography, Inc. | System and method of generating a set of search results |
US9715438B2 (en) * | 2007-06-29 | 2017-07-25 | International Business Machines Corporation | Static execution of statements in a program |
US8271477B2 (en) * | 2007-07-20 | 2012-09-18 | Informatica Corporation | Methods and systems for accessing data |
US7873598B2 (en) * | 2008-04-15 | 2011-01-18 | Microsoft Corporation | Slicing of relational databases |
US8943087B2 (en) * | 2008-07-25 | 2015-01-27 | International Business Machines Corporation | Processing data from diverse databases |
US9110970B2 (en) * | 2008-07-25 | 2015-08-18 | International Business Machines Corporation | Destructuring and restructuring relational data |
US9229982B2 (en) * | 2008-12-23 | 2016-01-05 | SAP France S.A. | Processing queries using oriented query paths |
US8812490B1 (en) * | 2009-10-30 | 2014-08-19 | Microstrategy Incorporated | Data source joins |
ES2490693T3 (es) * | 2011-02-23 | 2014-09-04 | Zerogroup Holding Oü | Sistema de control y método de emparejamiento para un sistema de control |
US8725681B1 (en) * | 2011-04-23 | 2014-05-13 | Infoblox Inc. | Synthesized identifiers for system information database |
US8799329B2 (en) * | 2012-06-13 | 2014-08-05 | Microsoft Corporation | Asynchronously flattening graphs in relational stores |
CN102880813A (zh) * | 2012-10-19 | 2013-01-16 | 万俊松 | 污染成分琥珀腈降解微生物根瘤菌usda 110及其同属物种密码子库 |
US20140282356A1 (en) * | 2013-03-15 | 2014-09-18 | SimuQuest, Inc. | System Integration Techniques |
US9785660B2 (en) * | 2014-09-25 | 2017-10-10 | Sap Se | Detection and quantifying of data redundancy in column-oriented in-memory databases |
US10282485B2 (en) * | 2014-10-22 | 2019-05-07 | International Business Machines Corporation | Node relevance scoring in linked data graphs |
US10762037B2 (en) * | 2016-03-25 | 2020-09-01 | Hitachi, Ltd | Data processing system |
RU2649793C2 (ru) | 2016-08-03 | 2018-04-04 | ООО "Группа АйБи" | Способ и система выявления удаленного подключения при работе на страницах веб-ресурса |
RU2634209C1 (ru) | 2016-09-19 | 2017-10-24 | Общество с ограниченной ответственностью "Группа АйБи ТДС" | Система и способ автогенерации решающих правил для систем обнаружения вторжений с обратной связью |
RU2671991C2 (ru) | 2016-12-29 | 2018-11-08 | Общество с ограниченной ответственностью "Траст" | Система и способ сбора информации для обнаружения фишинга |
RU2637477C1 (ru) | 2016-12-29 | 2017-12-04 | Общество с ограниченной ответственностью "Траст" | Система и способ обнаружения фишинговых веб-страниц |
US11243949B2 (en) * | 2017-04-21 | 2022-02-08 | Microsoft Technology Licensing, Llc | Query execution across multiple graphs |
US11017038B2 (en) | 2017-09-29 | 2021-05-25 | International Business Machines Corporation | Identification and evaluation white space target entity for transaction operations |
RU2689816C2 (ru) | 2017-11-21 | 2019-05-29 | ООО "Группа АйБи" | Способ для классифицирования последовательности действий пользователя (варианты) |
RU2680736C1 (ru) | 2018-01-17 | 2019-02-26 | Общество с ограниченной ответственностью "Группа АйБи ТДС" | Сервер и способ для определения вредоносных файлов в сетевом трафике |
RU2677368C1 (ru) | 2018-01-17 | 2019-01-16 | Общество С Ограниченной Ответственностью "Группа Айби" | Способ и система для автоматического определения нечетких дубликатов видеоконтента |
RU2677361C1 (ru) | 2018-01-17 | 2019-01-16 | Общество с ограниченной ответственностью "Траст" | Способ и система децентрализованной идентификации вредоносных программ |
RU2676247C1 (ru) | 2018-01-17 | 2018-12-26 | Общество С Ограниченной Ответственностью "Группа Айби" | Способ и компьютерное устройство для кластеризации веб-ресурсов |
RU2668710C1 (ru) | 2018-01-17 | 2018-10-02 | Общество с ограниченной ответственностью "Группа АйБи ТДС" | Вычислительное устройство и способ для обнаружения вредоносных доменных имен в сетевом трафике |
RU2681699C1 (ru) | 2018-02-13 | 2019-03-12 | Общество с ограниченной ответственностью "Траст" | Способ и сервер для поиска связанных сетевых ресурсов |
RU2708508C1 (ru) | 2018-12-17 | 2019-12-09 | Общество с ограниченной ответственностью "Траст" | Способ и вычислительное устройство для выявления подозрительных пользователей в системах обмена сообщениями |
RU2701040C1 (ru) | 2018-12-28 | 2019-09-24 | Общество с ограниченной ответственностью "Траст" | Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах |
SG11202101624WA (en) | 2019-02-27 | 2021-03-30 | Group Ib Ltd | Method and system for user identification by keystroke dynamics |
RU2728497C1 (ru) | 2019-12-05 | 2020-07-29 | Общество с ограниченной ответственностью "Группа АйБи ТДС" | Способ и система определения принадлежности программного обеспечения по его машинному коду |
RU2728498C1 (ru) | 2019-12-05 | 2020-07-29 | Общество с ограниченной ответственностью "Группа АйБи ТДС" | Способ и система определения принадлежности программного обеспечения по его исходному коду |
RU2743974C1 (ru) | 2019-12-19 | 2021-03-01 | Общество с ограниченной ответственностью "Группа АйБи ТДС" | Система и способ сканирования защищенности элементов сетевой архитектуры |
SG10202001963TA (en) | 2020-03-04 | 2021-10-28 | Group Ib Global Private Ltd | System and method for brand protection based on the search results |
US11263195B2 (en) * | 2020-05-11 | 2022-03-01 | Servicenow, Inc. | Text-based search of tree-structured tables |
US11475090B2 (en) | 2020-07-15 | 2022-10-18 | Group-Ib Global Private Limited | Method and system for identifying clusters of affiliated web resources |
RU2743619C1 (ru) | 2020-08-06 | 2021-02-20 | Общество с ограниченной ответственностью "Группа АйБи ТДС" | Способ и система генерации списка индикаторов компрометации |
US11947572B2 (en) | 2021-03-29 | 2024-04-02 | Group IB TDS, Ltd | Method and system for clustering executable files |
NL2030861B1 (en) | 2021-06-01 | 2023-03-14 | Trust Ltd | System and method for external monitoring a cyberattack surface |
CN114996297B (zh) * | 2022-04-14 | 2023-09-26 | 建信金融科技有限责任公司 | 数据处理方法、装置、设备及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1029050C (zh) * | 1989-10-13 | 1995-06-21 | 国际商业机器公司 | 在数据库***中强化实施参照约束 |
US5241648A (en) * | 1990-02-13 | 1993-08-31 | International Business Machines Corporation | Hybrid technique for joining tables |
US5287493A (en) * | 1990-08-31 | 1994-02-15 | International Business Machines Corporation | Database interactive prompted query system having named database tables linked together by a user through join statements |
US5560005A (en) * | 1994-02-25 | 1996-09-24 | Actamed Corp. | Methods and systems for object-based relational distributed databases |
US5799309A (en) * | 1994-12-29 | 1998-08-25 | International Business Machines Corporation | Generating an optimized set of relational queries fetching data in an object-relational database |
US5701460A (en) * | 1996-05-23 | 1997-12-23 | Microsoft Corporation | Intelligent joining system for a relational database |
AU774973B2 (en) * | 1999-06-29 | 2004-07-15 | Gene Logic, Inc. | Biological data processing |
-
2002
- 2002-03-28 EP EP02007416A patent/EP1349081A1/en not_active Withdrawn
-
2003
- 2003-03-28 US US10/509,525 patent/US20060074858A1/en not_active Abandoned
- 2003-03-28 RU RU2004131666/09A patent/RU2004131666A/ru not_active Application Discontinuation
- 2003-03-28 AU AU2003222784A patent/AU2003222784A1/en not_active Abandoned
- 2003-03-28 CN CNA038077086A patent/CN1647076A/zh active Pending
- 2003-03-28 CA CA002480688A patent/CA2480688A1/en not_active Abandoned
- 2003-03-28 WO PCT/EP2003/003280 patent/WO2003083713A1/en active Application Filing
- 2003-03-28 JP JP2003581066A patent/JP2005521954A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101371220B (zh) * | 2006-01-10 | 2010-11-10 | Unz.Org有限责任公司 | 用于传送和显示分层数据的设备以及机器实现方法 |
CN102236662A (zh) * | 2010-04-23 | 2011-11-09 | 广州市西美信息科技有限公司 | 数据库查询和控制方法 |
CN102236662B (zh) * | 2010-04-23 | 2013-09-25 | 广州市西美信息科技有限公司 | 数据库查询和控制方法 |
CN102214214A (zh) * | 2011-06-02 | 2011-10-12 | 广州市动景计算机科技有限公司 | 数据关系的处理方法、装置及移动通讯终端 |
CN102214214B (zh) * | 2011-06-02 | 2013-09-04 | 广州市动景计算机科技有限公司 | 数据关系的处理方法、装置及移动通讯终端 |
CN104303180A (zh) * | 2012-05-15 | 2015-01-21 | 微软公司 | 对结构数据基于场景的洞察 |
US10853361B2 (en) | 2012-05-15 | 2020-12-01 | Microsoft Technology Licensing, Llc | Scenario based insights into structure data |
CN110168515A (zh) * | 2016-09-15 | 2019-08-23 | 英国天然气控股有限公司 | 用于分析数据关系以支持查询执行的*** |
CN110168515B (zh) * | 2016-09-15 | 2023-10-20 | 日立数据管理有限公司 | 用于分析数据关系以支持查询执行的*** |
CN110178128A (zh) * | 2017-03-15 | 2019-08-27 | 国际商业机器公司 | 使用优化的位图表示来管理大规模关联集 |
CN110178128B (zh) * | 2017-03-15 | 2023-05-12 | 国际商业机器公司 | 使用优化的位图表示来管理大规模关联集 |
Also Published As
Publication number | Publication date |
---|---|
RU2004131666A (ru) | 2006-02-10 |
JP2005521954A (ja) | 2005-07-21 |
AU2003222784A1 (en) | 2003-10-13 |
WO2003083713A1 (en) | 2003-10-09 |
CA2480688A1 (en) | 2003-10-09 |
EP1349081A1 (en) | 2003-10-01 |
US20060074858A1 (en) | 2006-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1647076A (zh) | 查询关系数据库的方法和设备 | |
CN1198220C (zh) | 用于在单聚集过程中载入多数据集市的方法 | |
CN1284107C (zh) | 用于搜索一组信息项的信息检索设备和方法 | |
CN1882943A (zh) | 使用超单元的搜索处理的***和方法 | |
CN1823335A (zh) | 抽象数据链接和联接接口 | |
CN1306437C (zh) | 用于链接表格式数据的方法以及表现链接的表格式数据的方法 | |
US8285707B2 (en) | Method of querying relational database management systems | |
CN1759397A (zh) | 对数据的函数应用的结果进行结构化索引 | |
CN1768325A (zh) | 公开内容的抽象数据库抽象中的规则应用管理 | |
CN1653452A (zh) | 管理数据库***中的表达式 | |
CN101064641A (zh) | 对Web服务资源的基于属性的索引和/或查询方法及*** | |
CN1573753A (zh) | 数据库对象脚本生成方法和*** | |
CN1361890A (zh) | 观察改变索引对查询优化方案的影响的数据库*** | |
CN1647075A (zh) | 用于查询关系数据库的方法及装置 | |
CN1310824A (zh) | 用于数据仓库的选择聚集层和交叉产品层的方法和装置 | |
CN1556482A (zh) | 一种用于实现数据库多表查询的数据处理方法 | |
CN1278345A (zh) | 在线数据库挖掘 | |
CN1705945A (zh) | 全局查询相关属性 | |
CN1864159A (zh) | 通过查询结果扩充和结果数据反馈的迭代数据分析过程 | |
CN101036141A (zh) | 具有持久性、用户可访问的位图值的数据库管理*** | |
CN1924858A (zh) | 一种获取新词的方法、装置以及一种输入法*** | |
CN1682217A (zh) | 媒体资料合成 | |
CN1722138A (zh) | 结构化文档管理设备、搜索设备、存储和搜索方法及程序 | |
CN1568469A (zh) | 用于信息检索的分层数据驱动导航***及方法 | |
JP4207438B2 (ja) | Xml文書格納/検索装置及びそれに用いるxml文書格納/検索方法並びにそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |