Top-level Taxonomy

At the top level, the taxonomy is divided into two orthogonal parts, namely a part where queries are categorized according to their output component and a part where the categorization is based on the selection component. Thus, a category is described by two components, as illustrated in Figure [*].

Figure: Top-level Description of Benchmark Taxonomy
\begin{figure}{\small
\begin{displaymath}
\{ <\mbox{output component}> \}
\times
\{ <\mbox{selection component}> \}
\end{displaymath}}
\end{figure}

This top-level design reflects the SQL template (i.e., SELECT ...FROM ...WHERE ...). The first component categorizes the contents of the SELECT clause, and the second component categorizes the contents of the WHERE clause. No component is needed to reflect the FROM clause where tuple variables are defined. The two components are orthogonal only in the same sense that the WHERE and SELECT clauses of a particular query are orthogonal.