Difference between revisions of "Applications and libraries/Database interfaces/CoddFish"

From HaskellWiki
Jump to navigation Jump to search
m (update link)
 
(7 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
== Introduction ==
 
== Introduction ==
   
[http://wiki.di.uminho.pt/wiki/bin/view/PURe/CoddFish CoddFish] is contained by the Pure Project and written by [http://wiki.di.uminho.pt/wiki/bin/view/Xana/WebHome Alexandra Silva] and [http://wiki.di.uminho.pt/wiki/bin/view/Joost/WebHome Joost Visser].
+
[http://wiki.di.uminho.pt/twiki/bin/view/Research/PURe/CoddFish CoddFish] is a
 
strongly-typed model that can be used to design and experiment with typed languages for modelling, programming, and migrating databases.
It is a strongly-typed model of relational databases and operations
 
  +
on them. In this model, table meta-data is represented
 
  +
It is encoded in the functional programming language Haskell and it makes extensive use of typeclass bounded, parametric polymorphism and [http://homepages.cwi.nl/~ralf/HList/ heterogeneous collections]. See the: [http://darcs.haskell.org/HList/ HList darcs repos].
by type-level entities that guard the semantic correctness of all
 
  +
database operations at compile time. The model relies on typeclass
 
bounded and parametric polymorphism and it is encoded in the functional programming language Haskell.
 
 
Apart from the standard relational database operations, such as
 
Apart from the standard relational database operations, such as
 
selection and join, it contains functional dependencies, normal
 
selection and join, it contains functional dependencies, normal
forms, and operations for database transformation. Functional dependency information is represented at the type
+
forms, and operations for database transformation.
  +
level, and can be transported through operations. This means that
 
  +
Unlike tools such as [[../HaskellDB|Haskell/DB]], the CoddFish library does not (at the moment) aim to support database connectivity.
type inference statically computes functional dependencies on the
 
  +
result from those on the arguments.
 
  +
Further details can be found in the draft paper available from the [http://wiki.di.uminho.pt/twiki/bin/view/Research/PURe/CoddFish project webpage].
The model can be used to design and experiment with typed languages
 
  +
for modelling, programming, and migrating databases.
 
  +
== Availability ==
   
  +
CoddFish is available as part of the [http://wiki.di.uminho.pt/wiki/bin/view/PURe/PUReSoftware UMinho Haskell Libraries].
   
  +
== Credits ==
  +
* [http://wiki.di.uminho.pt/wiki/bin/view/Xana/WebHome Alexandra Silva]
  +
* [http://wiki.di.uminho.pt/wiki/bin/view/Joost/WebHome Joost Visser]
   
 
== Related concepts ==
 
== Related concepts ==
Line 24: Line 28:
 
* [[Extensible record]]
 
* [[Extensible record]]
 
* [[Relational algebra]]
 
* [[Relational algebra]]
  +
* [http://homepages.cwi.nl/~ralf/HList/ HList --- a Haskell library for strongly typed heterogeneous collections].

Latest revision as of 10:14, 6 May 2007

Introduction

CoddFish is a strongly-typed model that can be used to design and experiment with typed languages for modelling, programming, and migrating databases.

It is encoded in the functional programming language Haskell and it makes extensive use of typeclass bounded, parametric polymorphism and heterogeneous collections. See the: HList darcs repos.

Apart from the standard relational database operations, such as selection and join, it contains functional dependencies, normal forms, and operations for database transformation.

Unlike tools such as Haskell/DB, the CoddFish library does not (at the moment) aim to support database connectivity.

Further details can be found in the draft paper available from the project webpage.

Availability

CoddFish is available as part of the UMinho Haskell Libraries.

Credits

Related concepts