A major challenge still facing the designers and implementors of database programming languages (DBPLs) is that of query optimisation. We investigate algebraic query optimisation for DBPLs in the context of a purely declarative functional language that supports sets as first-class objects. Since the language is computationally complete issues such as non-termination of expressions and construction of infinite data structures can be investigated, whilst its declarative nature allows the issue of side effects to be avoided and a rich set of equivalences to be developed. The language has a well-defined semantics which permits us to reason formally about the properties of expressions, such as their equivalence with other expressions and their termination. The support of a set bulk data type enables much prior work on the optimisation of relational languages to be utilised. In the paper we first give the syntax of an archetypal DBPL and briefly discuss its semantics. We then de...
|
1122
|
Introduction to Functional Programming
– Bird, Wadler
- 1988
|
|
937
|
Principles of Database and knowledge-base systems, volume 2
– Ullman
- 1988
|
|
503
|
A transformation system for developing recursive programs
– Burstall, Darlington
- 1977
|
|
385
|
Comprehending monads
– WADLER
- 1992
|
|
179
|
Introduction to Combinators and *-Calculus
– Hindley, Seldin
- 1986
|
|
171
|
A powerdomain construction
– Plotkin
- 1976
|
|
143
|
Logic and Computation: Interactive Proof with Cambridge LCF, volume Cambridge Tracts in Theoretical Computer Science 2
– Paulson
- 1987
|
|
111
|
Efficient compilation of lazy evaluation
– Johnsson
- 1984
|
|
99
|
The Implementation of Functional Programming Languages
– Peyton-Jones
- 1987
|
|
96
|
Structural recursion as a query language
– Breazu-Tannen, Buneman, et al.
- 1991
|
|
83
|
Database programming in machiavelli - a polymorphic language with static type inference
– Ohori, Buneman, et al.
- 1989
|
|
80
|
A compiler for lazy ML
– AUGUSTSSON
- 1984
|
|
73
|
A general framework for the optimization of object-oriented queries
– Cluet, Delohel
- 1992
|
|
67
|
Algebraic Support for Complex Objects with Arrays, Identity, and Inheritance
– Vandenberg, DeWitt
|
|
64
|
FAD, a powerful and simple database language
– Bancilhon, Briggs, et al.
- 1987
|
|
49
|
Algebraic optimization of objectoriented query languages
– Beeri, Kornatzky
- 1990
|
|
41
|
Algebraic properties of bag data types
– Albert
- 1991
|
|
38
|
Some properties of query languages for bags
– Libkin, Wong
- 1993
|
|
34
|
Strictness analysis | a practical approach
– Clack, Jones
- 1985
|
|
31
|
Managing persistent objects in a multi-level storage
– Stonebraker
- 1991
|
|
21
|
Translating Relational Queries into Iterative Programs
– Freytag
- 1985
|
|
19
|
A Functional Database
– Trinder
- 1989
|
|
16
|
A Functional DBPL Revealing High Level Optimizations
– Erwig, Lipeck
- 1991
|
|
14
|
Functional and predicative programming in oodb's
– Beeri, Milo
- 1992
|
|
13
|
Optimising and Executing DAPLEX Queries using Prolog
– Paton, Gray
- 1990
|
|
9
|
A Transformation Based Approach to Optimizing Loops in Database Programming Languages
– Lieuwen, DeWitt
- 1992
|
|
8
|
A Transformation-Based Approach to Optimizing Loops in database Programming Languages
– Lieuwen, DeWitt
- 1992
|
|
6
|
List Comprehensions in AGNA, a Parallel Persistent Object System
– Nikhil, Heytens
- 1991
|
|
5
|
Principles of Database and Knowledge-Base Systems
– JD
- 1988
|
|
4
|
Logic and Computation: Interactive Proof with Cambridge LCF, vol 2 of Cambridge Tracts
– LC
- 1987
|
|
4
|
The Implementation of Functional Programming Languages
– SL
- 1987
|
|
3
|
The Mechanical Transformation Of Data Types
– Harrison, Khoshnevisan
- 1992
|
|
3
|
Query optimisation in database systems
– Jarke, Koch
- 1984
|
|
2
|
Including group-by in query optimisation
– Chaudhuri, Shim
- 1994
|
|
2
|
Algebraic query optimisation in the CoOMS structurally object-oriented database system
– Demuth, Gorchs, et al.
- 1994
|
|
2
|
A domain-theoretic approach to integrating logic and functional database languages
– Poulovassilis, Small
- 1993
|
|
2
|
An object oriented query algebra
– Shaw, Zdonik
- 1989
|
|
2
|
Gorchs T
– Demuth, Geppert
- 1994
|
|
2
|
A functional database, D.Phil Thesis
– Trinder
- 1989
|
|
1
|
Strictness analysis -- a practical approach. In: Jouannaud J-P (ed) Functional Programming Languages and Computer Architecture: proceedings. (Lecture notes in computer science, vol 201
– Clack, Peyton-Jones
- 1985
|
|
1
|
Delobel C
– Cluet
- 1992
|
|
1
|
Zaniolo C
– Ganguly, Greco
- 1991
|
|
1
|
Introduction to combinators and #- calculus
– JR, JP
- 1986
|
|
1
|
Some properties of query languages for bags. In: Beeri C, Ohori A, Shasha D (eds
– Libkin, Wong
- 1993
|
|
1
|
Optimising and executing DAPLEX queries using Prolog
– NW, PMD
- 1990
|
|
1
|
Denotational semantics. Allyn and
– DA
- 1986
|
|
1
|
Zdonik SB
– GB
- 1989
|
|
1
|
Algebraic support for complex objects with arrays, identity and inheritance
– SL, DJ
- 1991
|