A common approach to data analysis involves understanding and manipulating
succinct representations of data. In earlier work, we put forward a succinct
representation system for relational data called factorised databases and
reported on the main-memory query engine FDB for select-project-join queries on
such databases.
In this paper, we extend FDB to support a larger class of practical queries
with aggregates and ordering. This requires novel optimisation and evaluation
techniques. We show how factorisation coupled with partial aggregation can
effectively reduce the number of operations needed for query evaluation. We
also show how factorisations of query results can support enumeration of tuples
in desired orders as efficiently as listing them from the unfactorised, sorted
results.
We experimentally observe that FDB can outperform off-the-shelf relational
engines by orders of magnitude.Comment: 12 pages, 8 figure