  Previous work has demonstrated that categories are useful and expressive
models for databases. In the present paper we build on that model, showing that
certain queries and constraints correspond to lifting problems, as found in
modern approaches to algebraic topology. In our formulation, each so-called
SPARQL graph pattern query corresponds to a category-theoretic lifting problem,
whereby the set of solutions to the query is precisely the set of lifts. We
interpret constraints within the same formalism and then investigate some basic
properties of queries and constraints. In particular, to any database $\pi$ we
can associate a certain derived database $\Qry(\pi)$ of queries on $\pi$. As an
application, we explain how giving users access to certain parts of
$\Qry(\pi)$, rather than direct access to $\pi$, improves ones ability to
manage the impact of schema evolution.
