Building Blocks
•Algebraic transformations (many and wacky).
•Statistical model: estimating costs and sizes.
•Finding the best join trees:
–Bottom-up (dynamic programming): System-R
•Newer architectures:
–Starburst: rewrite and then tree find
–Volcano: all at once, top-down.