×

Group joins to navigate data relationships

  • US 7,899,840 B2
  • Filed: 03/29/2007
  • Issued: 03/01/2011
  • Est. Priority Date: 03/29/2007
  • Status: Active Grant
First Claim
Patent Images

1. A data retrieval system, comprising:

  • a processor;

    a component implemented by the processor that acquires a plurality of data collections, wherein the data collections are specified in accordance with a nested or hierarchical data model;

    a join component configured to allow remote execution by a user that performs the following;

    identifies a group join query from a query syntax, wherein the group join query comprises a query that is directed to at least two different data collections, the group join query being configured to combine data rows of the different data collections, the group join query comprising a group join operator that allocates and returns an enumerable object that captures one or more arguments passed to the group join operator, wherein the arguments specify functions that extract join key values from elements of both outer and inner sequences, and wherein a hash join is employed to combine the data of the two different data collections;

    traverses the plurality of data collections to locate and combine data across the collections that satisfy one or more group join arguments of a query, wherein the data is automatically made available to the join component based on the group join arguments and wherein the join component preserves the order of any outer sequence elements and, for each outer sequence element, preserves the order of any matching inner sequence elements, wherein the traversal includes implementing a superset of inner joins and left outer joins which are each written in terms of grouped joins; and

    based on the traversal, returns a hierarchical result;

    a hash component that executes a hash join function over join keys of both the inner and the outer sequences, wherein the hash join modifies the group join to increase group join performance by combining outer and inner sequence elements;

    an identifier component that discovers and identifies abbreviated queries among the group queries, wherein a join is inferred from the abbreviated query syntax; and

    a translation component that receives identification information from the identifier component identifying abbreviated code and translates the abbreviated code into an expanded format for implementation by the join component.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×