HackerPapers

arXiv:1009.1166cs.DB

Functorial Data Migration

David I. Spivak

Abstract

In this paper we present a simple database definition language: that of categories and functors. A database schema is a small category and an instance is a set-valued functor on it. We show that morphisms of schemas induce three "data migration functors", which translate instances from one schema to the other in canonical ways. These functors parameterize projections, unions, and joins over all tables simultaneously and can be used in place of conjunctive and disjunctive queries. We also show how to connect a database and a functional programming language by introducing a functorial connection between the schema and the category of types for that language. We begin the paper with a multitude of examples to motivate the definitions, and near the end we provide a dictionary whereby one can translate database concepts into category-theoretic concepts and vice-versa.

arXiv comments
30 pages
Journal reference
DOI
Subjects
cs.DBDatabases math.CTCategory Theory

On Hacker News

Linked by 3 identifiable commenters in 3 comments across 3 threads, from May 2016 to Sep 2023.

Comments linking this paper, per year.

Discussed in comments3 threads

  1. Applied Category Theory Course 1 comment
    • I've quite literally spent the last month trying to read, digest, and apply the above to a record layer I'm writing for FoundationDB. Dr. Spivak's work has been absolutely beyond helpful and insightful. There's no way I'd even be able to approach the subject with his efforts.…

      rubyn00bieView on HNParent context

    • I wonder about this too. It seems like some ideas from category theory and pure functional programming could really help here to provide an abstraction over the top of the (pseudo)relational model. While doing some research on an unrelated topic, I stumbled on some potentially…

      harveywiView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.