Personal tools

Applications and libraries/Database interfaces

From HaskellWiki

< Applications and libraries(Difference between revisions)
Jump to: navigation, search
(Current)
(Current)
Line 8: Line 8:
   
 
;[http://hackage.haskell.org/package/DSH Database Supported Haskell]
 
;[http://hackage.haskell.org/package/DSH Database Supported Haskell]
:DSH is a Haskell library for database-supported program execution. Using this
+
: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
library a relational database management system (RDBMS) can be used as a
+
fragments that carry out data-intensive and data-parallel computation. Database executable program fragments can be written using the list
coprocessor for the Haskell programming language, especially for those program
 
fragments that carry out data-intensive and data-parallel computation.
 
 
Database executable program fragments can be written using the list
 
 
comprehension notation (with modest syntax changes due to quasiquoting) and
 
comprehension notation (with modest syntax changes due to quasiquoting) and
 
list processing combinators from the Haskell list prelude. Note that rather
 
list processing combinators from the Haskell list prelude. Note that rather
 
than embedding a relational language into Haskell, we turn idiomatic Haskell
 
than embedding a relational language into Haskell, we turn idiomatic Haskell
programs into SQL queries.
+
programs into SQL queries. DSH faithfully represents list order and nesting, and compiles the list
 
DSH faithfully represents list order and nesting, and compiles the list
 
 
processing combinators into relational queries. The implementation avoids
 
processing combinators into relational queries. The implementation avoids
 
unnecessary data transfer and context switching between the database
 
unnecessary data transfer and context switching between the database
 
coprocessor and the Haskell runtime by ensuring that the number of generated
 
coprocessor and the Haskell runtime by ensuring that the number of generated
 
relational queries is only determined by the program fragment's type and not
 
relational queries is only determined by the program fragment's type and not
by the database size.
+
by the database size. DSH can be used to allow existing Haskell programs to operate on large scale
 
DSH can be used to allow existing Haskell programs to operate on large scale
 
 
data (e.g., larger than the available heap) or query existing database
 
data (e.g., larger than the available heap) or query existing database
 
resident data with Haskell.
 
resident data with Haskell.

Revision as of 18:23, 25 August 2011

Contents

1 Libraries

1.1 Current

Takusen
A library to interface to Oracle, Sqlite, and Postgres, with an API based on a left-fold enumerator. Now hosted at code.haskell.org. (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. Database executable program fragments can be written using the list comprehension notation (with modest syntax changes due to quasiquoting) and list processing combinators from the Haskell list prelude. Note that rather than embedding a relational language into Haskell, we turn idiomatic Haskell programs into SQL queries. DSH faithfully represents list order and nesting, and compiles the list processing combinators into relational queries. The implementation avoids unnecessary data transfer and context switching between the database coprocessor and the Haskell runtime by ensuring that the number of generated relational queries is only determined by the program fragment's type and not by the database size. DSH can be used to allow existing Haskell programs to operate on large scale data (e.g., larger than the available heap) or query existing database resident data with Haskell.

HDBC
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
Daan Leijen's original HaskellDB, and an updated version that works with current Haskell implementations and is relatively platform-independent. 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. 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

1.2 Non-current

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

HSQL
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's cabal package is not yet updated for GHC 6.8, but there are install instructions for GHC 6.8 . (HSQL in Hackage) (Package updated: 2007; Instructions updated: 2008)


1.3 Discontinued

CoddFish
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)


VooDooM
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
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
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 Libraries and tools.