In this paper we present a simple database definition language: that of
categories and functors. A database schema is a category and a state is a
set-valued functor. We show that morphisms of schemas induce three "data
migration functors" that translate states from one schema to the other in
canonical ways. Database states form a boolean topos of which the classical
"relational algebra" is a fragment. These ideas thus create a new denotational
semantics for database theory.