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.
Contents: Introduction.- Data Models and Rewriting Systems.- A Transformation System based on Recursive Programs.- Query Transformation based on Map Expressions.- The Transformation of Aggregate Functions.- The Implementation of Database Systems in T.- Conclusion and Future Work.- Appendix: Measurements of T and C Functions.- Bibliography.- List of Figures.- List of Tables.
Series: Lecture Notes in Computer Science
Number Of Pages: 134
Published: 24th June 1987
Publisher: SPRINGER VERLAG GMBH
Country of Publication: DE
Dimensions (cm): 23.39 x 15.6
Weight (kg): 0.22