Patent ID: 8204885
Filing Date: 2012-06-19
Classification: G06F

Abstract:
1. A non-transitory computer-readable storage medium storing a computer readable program of computer instructions, wherein the computer readable program, when executed on a data processing system, causes the data processing system to carry out operations to process a query against a database, the database storing information from a data dictionary that has been configured into one or more table groups, the operations comprising: (a) identifying a set of one or more table groups associated with the query (i) constructing a first graph comprising a set of one or more nodes, and one or more links among the one or more nodes, wherein a node in the first graph is associated with a table in the data dictionary, wherein a link is associated with a directional edge corresponding to a link between a primary key and a foreign key in the data dictionary; (ii) constructing a second graph comprising a set of one or more nodes, and one or more links among the one or more nodes, wherein a node in the second graph is associated with a table identified in the query, and wherein a link in the second graph is a join predicate in the query; and (iii) comparing the first and second graphs to determine which tables and relationships are common to both the first and second graphs; (b) for each table group, and until all table groups are evaluated: (i) selecting a table group from the set of one or more table groups; (ii) identifying one or more tables in the selected table group that are associated with the query; and (iii) generating an intermediate resultset for the selected table group; and (c) processing intermediate resultsets from the table groups to create a final result.