Personal tools

Applications and libraries/Database interfaces/CoddFish

From HaskellWiki

< Applications and libraries | Database interfaces(Difference between revisions)
Jump to: navigation, 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
It is a strongly-typed model of relational databases and operations
+
strongly-typed model that can be used to design and experiment with typed languages for modelling, programming, and migrating databases.
on them. In this model, table meta-data is represented
+
by type-level entities that guard the semantic correctness of all
+
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].
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
+
type inference statically computes functional dependencies on the
+
Unlike tools such as [[../HaskellDB|Haskell/DB]], the CoddFish library does not (at the moment) aim to support database connectivity.
result from those on the arguments.
+
The model can be used to design and experiment with typed languages
+
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].
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 23: Line 27:
 
* [[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

Contents


[edit] 1 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.

[edit] 2 Availability

CoddFish is available as part of the UMinho Haskell Libraries.

[edit] 3 Credits

[edit] 4 Related concepts