Special Topics in Database Systems: Query Optimization

Course ID 15799

Description This course is a hands-on exploration of the most challenging problem in computer science: database query optimization. It will cover the classical and state-of-the-art methods and algorithms for converting SQL statements into physical query plans. Additional topics include cost models, feedback mechanisms, and adaptive query optimization. All class projects will be in the context of an open-source query optimizer service using real-world queries. The course is appropriate for graduate students in software systems and advanced undergraduates with nasty programming skills that are pursuing a database-centric lifestyle.

Key Topics
cost-based query optimization, top-down vs. bottom-up algorithms, cost models, cardinality estimations, adaptive query optimization

Required Background Knowledge
Databases, Systems

Course Relevance
CS major, MS, PhD

Course Goals
This is an upper-level course on the internals of database management systems. This course has a heavy emphasis on programming projects. There are also readings assigned for each class. Upon successful completion of this course, the student should be able to:
* Design and implement a database query optimizer.
* Understand how queries are processed and identify why queries execute fast or slow.
* Understand, compare, and implement the query optimization transformation rules.
* Identify trade-offs among query optimization techniques and contrast alternative approaches for transaction processing and analytical workloads.
* Interpret and comparatively criticize database system architectures.

Learning Resources
There is no book prerequisite, material will be based on Computer Security and the Internet, research papers.

Assessment Structure
Grading will be based on a set of programming assignments and a class project.

Extra Time Commitment
n/a

Course Link
https://15799.courses.cs.cmu.edu/