1. A method comprising: receiving inputs that represent a query and that, applied to a database, define independent snowflake schemas in which each snowflake schema includes one or more pairs of join tables from the query; generating a subquery for each snowflake schema in which the subquery contains one or more join predicates that involve one or more attributes from one or more join tables of the snowflake schema; computing, by a computing system, for each of the generated subqueries, an access plan for obtaining from one or more tables of the subquery's snowflake schema data requested by the subquery; executing the access plans to obtain each subquery's results; generating an anchor query that joins the results produced by the generated subqueries into a result equivalent to a result produced by the query; and generating a logical plan for the anchor query that uses the results of the generated subqueries as table inputs of the logical plan.