The integration of functional languages and relational databasess
File(s)DTR96-3.pdf (1.69 MB)
Technical report
Author(s)
Field, Anthony
Hutton, JAR
Type
Report
Abstract
The rapid increase in the use and size of relational databases is demanding increasingly fast and efficient database management systems. There is currently considerable research effort being directed towards the use of parallel processing to provide such performance improvements.
Here we extend the Haskell language and its compiler to support SQL database queries as the first step towards performing query processing in a parallel function environment. SQL queries are generated from the translation of Haskell list comprehensions at compile-time and are used to query a relational database at run-time thereby allowing a Haskell program to access and process data stored in a relational database. We shown that query processing can be partitioned between the SQL and Haskell domains and conclude that if query processing is migrated into the Haskell domain with both domains supported on the same hardware platform then access performance is reduced. However, it is proposed that if separate platforms, and in particular a parallel Haskell platform are used to support the two processing domains, then increased performance should be possible. Finally we explore some other areas of interest such as lazy database access and dynamic query construction that might be the subject further work.
Here we extend the Haskell language and its compiler to support SQL database queries as the first step towards performing query processing in a parallel function environment. SQL queries are generated from the translation of Haskell list comprehensions at compile-time and are used to query a relational database at run-time thereby allowing a Haskell program to access and process data stored in a relational database. We shown that query processing can be partitioned between the SQL and Haskell domains and conclude that if query processing is migrated into the Haskell domain with both domains supported on the same hardware platform then access performance is reduced. However, it is proposed that if separate platforms, and in particular a parallel Haskell platform are used to support the two processing domains, then increased performance should be possible. Finally we explore some other areas of interest such as lazy database access and dynamic query construction that might be the subject further work.
Date Issued
1996-05-22
Citation
Departmental Technical Report: 96/3, 1996, pp.1-18
Publisher
Department of Computing, Imperial College London
Start Page
1
End Page
18
Journal / Book Title
Departmental Technical Report: 96/3
Copyright Statement
© 1996 The Author(s) The . This report is available open access under a CC-BY-NC-ND (https://creativecommons.org/licenses/by-nc-nd/4.0/)
Publication Status
Published