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 topos of which the classical "relational algebra" is a fragment. These ideas thus create a new denotational semantics for database theory. Contents
David I. Spivak