Strictness analysis—a practical approach
Proc. of a conference on Functional programming languages and computer architecture
Introduction to combinators and &lgr;-calculus
Introduction to combinators and &lgr;-calculus
Logic and computation: interactive proof with Cambridge LCF
Logic and computation: interactive proof with Cambridge LCF
On the translation of relational queries into iterative programs
ACM Transactions on Database Systems (TODS)
Database programming in Machiavelli—a polymorphic language with static type inference
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
An object-oriented query algebras
Proceedings of the second international workshop on Database programming languages
Optimizing and executing DAPLEX queries using Prolog
The Computer Journal - On concurrent logic programming
Algebraic optimization of object-oriented query languages
ICDT '90 Proceedings of the third international conference on database theory on Database theory
Minimum and maximum predicates in logic programming
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
An introduction to functional programming
An introduction to functional programming
Managing persistent objects in a multi-level store
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Algebraic support for complex objects with arrays, identity, and inheritance
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
List comprehensions in Agna, a parallel persistent object system
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
A transformation-based approach to optimizing loops in database programming languages
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
A general framework for the optimization of object-oriented queries
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
The mechanical transformation of data types
The Computer Journal - Special issue on database programming paradigms
Structural recursion as a query language
DBPL3 Proceedings of the third international workshop on Database programming languages : bulk types & persistent data: bulk types & persistent data
A functional DBPL revealing high level optimizations
DBPL3 Proceedings of the third international workshop on Database programming languages : bulk types & persistent data: bulk types & persistent data
Functional and predictive programming in OODB's
PODS '92 Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Query Optimization in Database Systems
ACM Computing Surveys (CSUR)
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
FAD, a Powerful and Simple Database Language
VLDB '87 Proceedings of the 13th International Conference on Very Large Data Bases
Algebraic Properties of Bag Data Types
VLDB '91 Proceedings of the 17th International Conference on Very Large Data Bases
A Domain-theoretic Approach to Integrating Functional and Logic Database Languages
VLDB '93 Proceedings of the 19th International Conference on Very Large Data Bases
Including Group-By in Query Optimization
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
Some Properties of Query Languages for Bags
DBLP-4 Proceedings of the Fourth International Workshop on Database Programming Languages - Object Models and Languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
A functional database (databases)
A functional database (databases)
How to Comprehend Queries Functionally
Journal of Intelligent Information Systems - Special issue on functional approach to intelligent information systems
Abstract Interpretation for Termination Analysis in Functional Active Databases
Journal of Intelligent Information Systems - Special issue on functional approach to intelligent information systems
A Framework for the Investigation of Aggregate Functions in Database Queries
ICDT '99 Proceedings of the 7th International Conference on Database Theory
Future Generation Computer Systems
Hi-index | 0.00 |
A major challenge still facing the designers and implementors of database programming languages (DBPLs) is that of query optimisation. We investigate algebraic query optimisation techniques 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 richer 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 our archetypal DBPL and briefly discuss its semantics. We then define a small but powerful algebra of operators over the set data type, provide some key equivalences for expressions in these operators, and list transformation principles for optimising expressions. Along the way, we identify some caveats to well-known equivalences for non-deductive database languages. We next extend our language with two higher level constructs commonly found in functional DBPLs: set comprehensions and functions with known inverses. Some key equivalences for these constructs are provided, as are transformation principles for expressions in them. Finally, we investigate extending our equivalences for the set operators to the analogous operators over bags. Although developed and formally proved in the context of a functional language, our findings are directly applicable to other DBPLs of similar expressiveness.