We investigate the problem of using materialized views to answer SQL querie
s. We focus on modern decision-support queries, which involve joins, arithm
etic operations and other (possibly user-defined) functions, aggregation (o
ften along multiple dimensions), and nested subqueries. Given the complexit
y of such queries, the vast amounts of data upon which they operate, and th
e requirement for interactive response times, the use of materialized views
(MVs) of similar complexity is often mandatory for acceptable performance.
We present a novel algorithm that is able to rewrite a user query so that
it will access one or more of the available MVs instead of the base tables.
The algorithm extends prior work by addressing the new sources of complexi
ty mentioned above, that is, complex expressions, multidimensional aggregat
ion, and nested subqueries. It does so by relying on a graphical representa
tion of queries and a bottomup, pair-wise matching of nodes from the query
and MV graphs. This approach offers great modularity and extensibility, all
owing for the rewriting of a large class of queries.