Applications and libraries/Database interfaces/HaskellDB
(Integrating HaskellDB page)
m (Libraries and tools/Database interfaces/HaskellDB moved to Applications and libraries/Database interfaces/HaskellDB)
Revision as of 15:09, 3 May 2007
A combinator library for declarative, type safe database management. A domain specific embedded language, containing the concept of extensible record and a special Query monad (among other powerful ideas, see #Related concepts).
All the queries and operations are completely expressed within Haskell, no embedded (SQL) commands are needed.
It makes possible to use Haskell's typecheck system for a type-safe, declarative database management -- a combinator library. It can prevent the user even from using multiple labels in the same record, but the price for this: it needs a special extension of Haskell called Trex (providing extensible records).
HaskellDB was originally developed by Daan Leijen, and is described in the paper Domain Specific Embedded Compilers, Daan Leijen and Erik Meijer. 2nd USENIX Conference on Domain-Specific Languages (DSL), Austin, USA, October 1999.
2.2 Chalmers version
A student project by Björn Bringert, Anders Höckersten, Conny Andersson, Martin Andersson, Mary Bergman, Victor Blomqvist, Torbjörn Martin.
It works well with the most common Haskell implementations, because extensible records (without check for multiple labels) are implemented in a way which does not need the Trex extension of Haskell.
See also Björn Bringert's slides HaskellDB -- Type safe declarative database combinators.
3 Other materials
3.1 ICS Wiki
ICS Wiki is a huge resource of Haskell materials (among others).
- Database programming with HaskellDB -- a PDF file (slides). A webpage containing a link to it (among others): the bottom (attachment part) of the Domain Specific Languages page of ICS Wiki.
- There are other links to HaskellDB materials in the HaskellDB section of the same page.
HList --- a Haskell library for strongly typed heterogeneous collections includes also extensible records. Its relatedness to database programming is described in the articles, see also its possible relatedness to HaskellDB project.
5 Related concepts
Concepts which are concerned by the papers of the two official HaskellDB homes