1. A computer system comprising: (a) at least one processor; (b) at least one memory, wherein the at least one memory includes a relation store for storing a plurality of algebraic relations; (c) a storage system, including a data store for storing a plurality of data sets; and (d) at least one program module, the program module stored in the memory and configured to be executed by the processor, including: instructions for composing a plurality of algebraic relations between data sets; instructions for storing the plurality of algebraic relations in the relation store; instructions for receiving a first statement referencing a first data set and a second data set; instructions for determining whether the first statement specifies at least one constituent of the first data set for restricting the second data set, wherein the constituent is not included in the second data set; instructions for determining whether a condition for indirect partitioning of the second data set based on the constituent of the first data set is satisfied; instructions for automatically defining component data sets if the condition for indirect partitioning is satisfied, wherein each component data set includes a distinct component of the second data set defined, at least in part, by a selection criteria based on the constituent of the first data set; instructions for storing in the relation store, for each component data set, at least one algebraic relation referencing the respective component data set; instructions for receiving a second statement that requests a requested data set; and instructions for providing the requested data set, including: instructions for composing a collection of algebraic relations defining a result equal to the requested data set, including at least one algebraic relation from the relation store that references at least one of the component data sets; and instructions for calculating the requested data set using the collection of algebraic relations.