Relational Operators
Introduction
The relational operators are implemented as
iterators, i.e.,
they support a get-next-tuple interface.
Selections are implemented as part of file-scan iterators
or index-scan iterators; projections (with no selection)
are always file-scan iterators.
Selections on single relations are combined with projections.
Whenever possible, selections are combined with joins
by applying the (non-join) selection conditions to
the tuples in the join result. Similarly, any unwanted
attributes are projected out as part of the join operators.
Each join method defines a new kind of iterator.
Sorting is implemented as a separate iterator, and is used
internally by the sort-merge join operator. It can also be
used for GROUP-BY, ORDER-BY and DISTINCT.
Design Decisions
Back to the List of Components
Back to the Minibase Home Page
|