Data Management

Kleisli Database Instances

Download Now Date Added: Sep 2012
Format: PDF

The authors use monads to relax the atomicity requirement for data in a database. Depending on the choice of monad, the database fields may contain generalized values such as lists or sets of values, or they may contain exceptions such as various types of nulls. The return operation for monads ensures that any ordinary database instance will count as one of these generalized instances, and the bind operation ensures that generalized values behave well under joins of foreign key sequences. Different monads allow for vastly different types of information to be stored in the database. For example, they show that classical concepts like Markov chains, graphs, and finite state automata are each perfectly captured by a different monad on the same schema.