  Databases have been studied category-theoretically for decades. The database
schema---whose purpose is to arrange high-level conceptual entities---is
generally modeled as a category or sketch. The data itself, often called an
instance, is generally modeled as a set-valued functor, assigning to each
conceptual entity a set of examples. While mathematically elegant, these
categorical models have typically struggled with representing concrete data
such as integers or strings.
  In the present work, we propose an extension of the set-valued functor model,
making use of multisorted algebraic theories (a.k.a. Lawvere theories) to
incorporate concrete data in a principled way. This also allows constraints and
queries to make use of operations on data, such as multiplication or comparison
of numbers, helping to bridge the gap between traditional databases and
programming languages.
  We also show how all of the components of our model---including schemas,
instances, change-of-schema functors, and queries - fit into a single double
categorical structure called a proarrow equipment (a.k.a. framed bicategory).
