18. The method of claim 17, wherein eliminating tail vertices comprises: examining each vertex in a pass through the in graph, and if a vertex is a tail vertex, deleting the vertex and all edges adjacent to the vertex; and if any tail vertices were deleted during the pass through the join graph, making another pass through the join graph to delete tail vertices.
17. A computer-implemented method for estimating a cardinality of a multiple-join query of relational database tables, comprising: calculating data representing a join graph of the multiple-join query of the relational database tables, the join graph having a set of vertices and a set of edges, the set of vertices corresponding one-to-one with the relational database tables in the multiple-join query, the set of edges corresponding one-to-one with the join predicates expressed and implied in the multiple-join query; eliminating tail vertices from the join graph to form a reduced graph; and using data representing the reduced join graph to estimate the cardinality of the multiple-join query of the relational database tables to select a join order of the multiple-join query.