Consider a relation R with some numeric attribute A taking values over an (ordered) domain D. A range query retrieves all tuples in R whose attribute A has values in the interval [low, high]. That is, low ≤ R.A ≤ high. To enable fast processing of range selection queries, an access method that maintains order is needed. Such an index has the form of a tree, where each node corresponds to a page. Leaf nodes contain (or index) the actual values of A, while index nodes provide ordered access to the nodes underneath. Examples of tree-based indexing are the B+-tree and the R-tree (for single- and multi-dimensional ranges, respectively).
A major performance goal of a database management system is to minimize the number of I/O’s (i.e., blocks or pages transferred) between the disk and main memory. One way to achieve this goal is to minimize the number of I/O’s when answering a query. Consider for example...