Book 261

This book investigates the problem of translating relational queries into iterative programs using methods and techniques from the areas of functional programming and program transformation. The first part presents two algorithms which generate iterative programs from algebra-based query specifications. While the first algorithm is based on the transformation of recursive programs, the second uses functional expressions to generate the final iterative form. In the second part the same techniques generate efficient programs for the evaluation of aggregate functions in relational database systems. In several steps, programs which perform aggregation after sorting, are transformed into programs which perform aggregation while sorting. The third part then investigates the Lisp-dialect T as a possible implementation language for database systems. The book describes all transformations by transformation rules. The reader can expect a formal treatment of the proposed transformations which provide the basis for proving the correctness of the algorithms and, at the same time, give important insight into the techniques and methods developed for the transformation. Additionally, the high-level, detailed description of the algorithms immediately leads to their implementation and allows their extension to meet new requirements. Overall, the use of transformation rules and transformation methods introduces a new approach to query processing in relational database systems.