Personal tools

Applications and libraries/Database interfaces

From HaskellWiki

< Applications and libraries(Difference between revisions)
Jump to: navigation, search
(Current: edit for consistent formatting with the rest of the entries)
(Update HaskellDB links.)

Revision as of 18:32, 28 January 2013


1 Libraries

1.1 Current

A library to interface to Oracle, Sqlite, and Postgres, with an API based on a left-fold enumerator. Now hosted at (Takusen in Hackage)
Database Supported Haskell
DSH is a Haskell library for database-supported program execution. Using this library a relational database management system (RDBMS) can be used as a coprocessor for the Haskell programming language, especially for those program fragments that carry out data-intensive and data-parallel computation.
HDBC is modeled loosely on Perl's DBI interface, though it has also been influenced by Python's DB-API v2, JDBC in Java, and HSQL in Haskell. Supports SQLite3, PostgreSQL, ODBC (including MySQL). (HDBC in Hackage)

HaskellDB is a combinator library for expressing queries and other operations on relational databases in a type safe and declarative way. All the queries and operations are completely expressed within Haskell, no embedded (SQL) commands are needed.

Both the original version from :Daan Leijen's HaskellDB and the HaskellDB more up-to-date GitHub version (works with latest GHC versions) are relatively platform-independent.

This close integration makes it possible to do arbitrary computations on the database (like computing the transitive closure). (HaskellDB in Hackage)

Berkeley DB/DB XML binding
See BerkeleyDBXML in Hackage
HSQL is a simple library which provides an interface to multiple databases. MySQL, PostgreSQL, ODBC, SQLite and Oracle are currently supported. It is part of HToolkit. (HSQL in Hackage)
mysql-simple, postgresql-simple, sqlite-simple
The *-simple packages provide a mid-level database interface to MySQL, PostgreSQL and SQLite. They each have a similar API but do not attempt to generalize to cover multiple database implementations under a single library. This enables each library to expose database-specific features. These libraries rely on SQL queries embedded as strings but do support automatically converting fields to/from the database to Haskell types.

1.2 Non-current

Move these to [#Current] if they are updated.

1.3 Discontinued

PURe See a separate Haskell Wiki page on it. It is another type safe and declarative approach to database managament in Haskell. (Development discontinued in 2006)

PURe VooDooM reads VDM-SL specifications and applies transformation rules to the datatypes that are defined in them to obtain a relational representation for these datatypes. The relational representation can be exported as VDM-SL datatypes (inserted back into the original specification) or SQL table definitions (which can be fed to a relational DBMS). (Development discontinued in 2006)

HaSQL is a Haskell to ODBC interface. HaSQL allows Haskell program to run SQL queries against an ODBC compliant database. Queries with parameters are supported. Data is retrieved from the database as a lazy list. (Development dicontinued.)
MySQL-HS is an interface to the MySQL database.
Note: Development was discontinued on 2004-09-21.

2 Hackage

3 Related concepts

Relational algebra

This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.