Systems and methods for data storage and retrieval using algebraic relations composed from query language statements
First Claim
1. A computer implemented method for providing a requested data set, the computer comprising at least one processor and at least one memory, the method comprising:
- (a) providing a relation store in the memory;
(b) receiving a plurality of query language statements;
(c) accumulating a first plurality of algebraic relations in the relation store over time as the query language statements are received, including for each respective query language statement;
(i) composing, by the computer, at least one algebraic relation from the respective query language statement, wherein the algebraic relation comprises a respective first expression including a symbolic representation of at least a first respective data set specified by the respective query language statement, a respective second expression including a symbolic representation of at least a second respective data set specified by the respective query language statement, and a relational operator symbolically defining a mathematical relationship between the respective first expression and the respective second expression; and
(ii) storing the algebraic relation in the relation store;
(d) composing, by the computer, a second plurality of algebraic relations based, at least in part, on a pattern of the query language statements that have been received;
(e) storing the second plurality of algebraic relations in the relation store;
(f) receiving a request for the requested data set;
(g) composing, by the computer, a plurality of collections of algebraic relations defining a result equal to the requested data set using at least some of the algebraic relations stored in the relation store, including at least one of the algebraic relations from the second plurality of algebraic relations;
(h) applying optimization criteria to select one of the collections of algebraic relations; and
(i) using the selected collection of algebraic relations to provide the requested data set.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for storing and accessing data. A query language statement may reference a plurality of data sets and a plurality of algebraic relations between the data sets may be composed from the query language statement. The algebraic relations may be used to define new data sets and to optimize access to data sets. A store of algebraic relations may be accumulated over time. Alternative collections of algebraic relations may be generated and evaluated to determine an optimized collection of algebraic relations to use in calculating and providing a requested data set. The optimization may be performed using the algebraic relations rather than retrieving underlying data sets from storage. As a result, optimization may be performed at processor speeds to minimize the amount of time required for data to be retrieved from slower storage.
66 Citations
22 Claims
-
1. A computer implemented method for providing a requested data set, the computer comprising at least one processor and at least one memory, the method comprising:
-
(a) providing a relation store in the memory; (b) receiving a plurality of query language statements; (c) accumulating a first plurality of algebraic relations in the relation store over time as the query language statements are received, including for each respective query language statement; (i) composing, by the computer, at least one algebraic relation from the respective query language statement, wherein the algebraic relation comprises a respective first expression including a symbolic representation of at least a first respective data set specified by the respective query language statement, a respective second expression including a symbolic representation of at least a second respective data set specified by the respective query language statement, and a relational operator symbolically defining a mathematical relationship between the respective first expression and the respective second expression; and (ii) storing the algebraic relation in the relation store; (d) composing, by the computer, a second plurality of algebraic relations based, at least in part, on a pattern of the query language statements that have been received; (e) storing the second plurality of algebraic relations in the relation store; (f) receiving a request for the requested data set; (g) composing, by the computer, a plurality of collections of algebraic relations defining a result equal to the requested data set using at least some of the algebraic relations stored in the relation store, including at least one of the algebraic relations from the second plurality of algebraic relations; (h) applying optimization criteria to select one of the collections of algebraic relations; and (i) using the selected collection of algebraic relations to provide the requested data set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer system comprising:
-
at least one processor; at least one memory, wherein the memory includes a relation store; computer program instructions stored in the memory and configured to be executed by the processor to provide a requested data set, including; (a) instructions for receiving a plurality of query language statements; (b) instructions for accumulating a first plurality of algebraic relations in the relation store over time as the query language statements are received, including for each respective query language statement; (i) composing at least one algebraic relation from the respective query language statement, wherein the algebraic relation comprises a respective first expression including a symbolic representation of at least a first respective data set specified by the respective query language statement, a respective second expression including a symbolic representation of at least a second respective data set specified by the respective query language statement, and a relational operator symbolically defining a mathematical relationship between the respective first expression and the respective second expression; and (ii) storing the algebraic relations in the relation store; (c) instructions for composing a second plurality of algebraic relations based, at least in part, on a pattern of the query language statements that have been received; (d) instructions for storing the second plurality of algebraic relations in the relation store; (e) instructions for receiving a request for a requested data set; (f) instructions for composing a plurality of collections of algebraic relations defining a result equal to the requested data set using at least some of the algebraic relations stored in the relation store, including at least one of the algebraic relations from the second plurality of algebraic relations; (g) instructions for applying optimization criteria to select one of the collections of algebraic relations; and (h) instructions for using the selected collection of algebraic relations to provide the requested data set. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification