We designed a logical framework for SQC in which caches are formally defined and by which one can determine when a query can be answered via cache. We specified the conditions to determine when answers, or partial answers, to a query are present in cache, and whether they can be retrieved from cache. These tests are complete in that all answers that can be retrieved through any combination of cache expressions will, in fact, be found. Based on this framework, we explore algorithmic solutions for the case when a query, possibly involving view predicates, is answerable entirely from cache. We are also interested in extending this framework to several new applications of SQC.