HW 6: Advanced Topics

To practice on these problems, ask 🤖 to generate some random queries for you.

Make sure you know how to draw the predicate graph of a query:

Make sure you know how to check if two join queries are equivalent:

Make sure you know how to draw the complete predicate graph of a query:

Make sure you know how to check if a given query is acyclic:

Make sure you know how to draw the hypergraph representing a query.

Make sure you know how to test acyclicity of the hypergraph by ear reduction.

Implement the instance-optimal join algorithm on the example shown in class, and compare its performance with an algorithm using pari-wise hash join.

Challenge: the general algorithm is called TreeTracker Join (TTJ), and works on any acyclic query. Implement the TTJ algorithm from this paper.