1. A computer system implemented method for providing a requested data set based on a first schema, the computer system comprising at least one processor, memory and a data store, the method comprising: providing a mapping in the memory between the first schema based on a first data model and a second schema based on a second data model, wherein the first data model is a different data model than the second data model; providing a relation store in the memory; receiving a first plurality of statements based on the first schema and the first data model requesting a first plurality of data sets; composing a first plurality of algebraic relations between data sets based on the first plurality of statements, wherein each of the algebraic relations in the first plurality of algebraic relations comprises a respective first expression including a symbolic representation of at least a first respective data set, a respective second expression including a symbolic representation of at least a second respective data set, and a relational operator symbolically defining a mathematical relationship between the respective first expression and the respective second expression; storing the first plurality of algebraic relations between data sets in the relation store; receiving a second plurality of statements based on the second schema and the second data model requesting a second plurality of data sets; composing a second plurality of algebraic relations between data sets based on the second plurality of statements, wherein each of the algebraic relations in the second plurality of algebraic relations comprises a respective first expression including a symbolic representation of at least a first respective data set, a respective second expression including a symbolic representation of at least a second respective data set, and a relational operator symbolically defining a mathematical relationship between the respective first expression and the respective second expression; storing the second plurality of algebraic relations between data sets in the relation store; retrieving at least one algebraic relation from the first plurality of algebraic relations from the relation store, and retrieving at least one algebraic relation from the second plurality of algebraic relations from the relation store; composing an algebraic relation defining a result equal to the requested data set based, at least in part, on the at least one algebraic relation from the first plurality of algebraic relations and the at least one algebraic relation from the second plurality of algebraic relations; and using the algebraic relation defining a result equal to the requested data set and the mapping between the first schema and the second schema to provide the requested data set.