Query processing techniques for arrays
Loading...
Date
Authors
Marathe, Arunprasad Prabhakar
Advisor
Journal Title
Journal ISSN
Volume Title
Publisher
University of Waterloo
Abstract
Arrays are a common and important class of data. This thesis addresses the following questions: In a database management system for arrays, how should logical array manipulations be specified? How can such specifications be optimized? The two main contributions of this thesis are a language, called the Array Manipulation Language (AML), for expressing array manipulations, and a collection of optimization techniques for AML expressions.
AML defines a framework for array manipulation. The framework defines how arbitrary externally-defined functions can be applied to arrays in a structure manner. AML can be adapted to different application domains by choosing appropriate external function definitions. In this thesis, the digital image processing domain is used to demonstrate the utility of the AML framework.
AML queries can be treated declaratively and subjected to rewrite optimizations. Rewriting minimizes the number of application of potentially costly external functions required to compute a query result. AML queries can also be optimized for space. Query results are generated a piece at a time by pipelined execution plans, and the amount of memory required by a plan depends on the order in which pieces are generated. An optimizer can consider generating the pieces of the query result in a variety of orders, and can efficiently choose orders that require less space. An AML-based prototype array database system called ArrayDB has been built, and it is used to show the effectiveness of these optimization techniques.