Optimization of Nested Queries in a Distributed Relational Database

This paper describes how nested queries in the SQL language are processed by R*, an experimental adaptation to the distributed environment of the well-known centralized relational DBMS, System R. Nested queries are queries in which a predicate references the result of another query block (SELECT...FROM...WHERE...), called a subquery block (subQB). SubQBs may themselves contain one or more subQBs. Depending upon whether a subQB references values in other query blocks, it is processed differently, as either an Evaluate-at-Open or Evaluate-at-Application subQB type. Three tasks comprise execution of each query block: initiation, evaluation, and application. When the query’s tables are distributed among multiple sites, optimization of nested queries requires determining for each subQB: the site to perform each task, the protocols controlling interactions between those tasks, and the costs of each option, so that a minimal-cost plan can be chosen. R* optimizes each query block independently, “bottom up”, using only the cost, cardinal&y, and result site of the subQB in the optimization of its containing query block.

[1]  Dean Daniels,et al.  R*: An Overview of the Architecture , 1986, JCDKB.

[2]  Said Rahimi,et al.  Local query translation and optimization in a distributed system , 1899, AFIPS '83.

[3]  Eugene Wong,et al.  Query processing in a system for distributed databases (SDD-1) , 1981, TODS.

[4]  Patricia G. Selinger,et al.  Access Path Selection in Distributed Database Management Systems , 1980, ICOD.

[5]  Jo-Mei Chang A Heuristic Approach to Distributed Query Processing , 1982, VLDB.

[6]  Dean Daniels,et al.  An Introduction to Distributed Query Compilation in R* , 1982, DDB.

[7]  Michael Stonebraker,et al.  Distributed query processing in a relational data base system , 1978, SIGMOD Conference.

[8]  Patricia G. Selinger,et al.  Access path selection in a relational database management system , 1979, SIGMOD '79.

[9]  Eugene Wong,et al.  Decomposition—a strategy for query processing , 1976, TODS.

[10]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[11]  Irving L. Traiger,et al.  A history and evaluation of System R , 1981, CACM.

[12]  Larry Kerschberg,et al.  Query optimization in star computer networks , 1982, TODS.

[13]  Elisa Bertino,et al.  Research Direction in Query Optimization at the University of Maryland. , 1982 .

[14]  Patricia G. Selinger,et al.  Support for repetitive transactions and ad hoc queries in System R , 1981, TODS.

[15]  Michael Stonebraker,et al.  Analysis of Distributed Data Base Processing Strategies , 1980, VLDB.

[16]  Alan R. Hevner,et al.  Query Processing in Distributed Database System , 1979, IEEE Transactions on Software Engineering.

[17]  Arie Zvieli Query Processing in Database Systems , 1985 .

[18]  Won Kim,et al.  Performance of the System R Access Path Selection Mechanism , 1980, IFIP Congress.

[19]  Wesley W. Chu,et al.  Optimal Query Processing for Distributed Database Systems , 1982, IEEE Transactions on Computers.

[20]  Stephen Fox,et al.  Overview of an Ada compatible distributed database manager , 1983, SIGMOD '83.

[21]  Gia Toan Nguyen Decentralized Dynamic Query Decomposition for Distributed Database Systems , 1980, ACM Pacific.

[22]  S. B. Yao,et al.  Optimization of query evaluation algorithms , 1979, ACM Trans. Database Syst..

[23]  Won Kim,et al.  On optimizing an SQL-like nested query , 1982, TODS.

[24]  Clement T. Yu,et al.  On the design of a query processing strategy in a distributed database environment , 1983, SIGMOD '83.

[25]  S. B. Yao,et al.  Optimization Algorithms for Distributed Queries , 1986, IEEE Transactions on Software Engineering.