Abstract
The ability to optimize—that is, to rewrite an expression that describes an information requirement into another equivalent expression that is better suited for efficient evaluation—is a fundamental strength of DBMSs. The course will cover the main advances enabling optimization: join ordering, adaptive optimization, techniques specific to in-memory databases, optimization in a cloud environment, and machine learning-based optimization. Finally, we will show how to move beyond the “surface-level” variety of data models to optimize a “common core” of operations on heterogeneous data (different data models) as well as to optimize heterogeneous computations (queries in the traditional sense of databases, as well as matrix computations specific to ML computing pipelines).