Improving Join Reorderability with Compensation Operators
Query graphs, implementing trees, and freely-reorderable outerjoins