a data retrieval system stores a plurality of objects having a multi - level hierarchical relationship , each object having a respective parent and a set of children . the system stores one or more base tables , the or each base table comprising a respective set of attributes associated with a sub - set of objects in the system , and generates for the or each base table a respective complementary table , the or each complementary table comprising a set of attributes excluding the attributes of the associated base table . the system further includes an expression optimiser adapted to interpret a query comprising an expression including one or more operations , each operation having a respective operator and one or more associated operands . the optimser tracks a number of objects associated with the or each operation and any attributes associated with the operation ; and re - formulates the expression accordingly .